- Код: Выделить всё
procedure TZAbstractDataset.InternalPost;
var
RowBuffer: PZRowBuffer;
{$IFDEF DELPHI12_UP}
BM: TBookMark;
{$ELSE}
BM:TBookMarkStr;
{$ENDIF}
begin
if (FSequenceField <> '') and Assigned(FSequence) then
begin
if FieldByName(FSequenceField).IsNull then
FieldByName(FSequenceField).Value := FSequence.GetNextValue;
end;
//inherited; //AVZ - Firebird defaults come through when this is commented out
if not GetActiveBuffer(RowBuffer) then
raise EZDatabaseError.Create(SInternalError);
Connection.ShowSqlHourGlass;
try
if State = dsInsert then
InternalAddRecord(RowBuffer, False)
else
InternalUpdate;
{BUG-FIX: bangfauzan addition}
if (SortedFields <> '') and not (doDontSortOnPost in Options) then
begin
FreeFieldBuffers;
SetState(dsBrowse);
Resync([]);
if BookmarkValid(@BM) Then
begin
InternalGotoBookmark(@BM); <-- Здесь вылетает ошибка
Resync([rmExact, rmCenter]);
end;
DisableControls;
InternalSort;
BookMark:=BM;
UpdateCursorPos;
EnableControls;
end;
{end of bangfauzan addition}
finally
Connection.HideSqlHourGlass;
end;
end;
при вызове InternalGotoBookmark ошибка, в процедуре следующий код
- Код: Выделить всё
if not GotoRow(PInteger(Bookmark)^) then
raise EZDatabaseError.Create(SBookmarkWasNotFound);
здесь не проходит проверку, почему не пойму... поискал в гугле ответ, нашёл описание бага и попытку решения аж от 2009 года, пока закомментировал данную строку, ошибка не повторяется естественно
скажите пожалуйста в чём может быть причина? заранее спасибо откликнувшимся...