artem78 писал(а):iskander писал(а): вопросы задаваемые про код без самого кода
Ещё в первом сообщении он был.
 
Ну, значит у меня не получилось достучаться.
Под кодом я понимаю то, что можно скомпилировать и запустить. Вот можно было из этого вашего "кода" понять, что речь идёт о TSqlite3Dataset?
А у него Locate() действительно падает с EVariantTypeCastError где-то в недрах TCustomSqliteDataset.
Можно попробовать обойтись как-нибудь без Locate:
- Код: Выделить всё
 procedure TTasksFrame.StopTrackingToolButtonClick(Sender: TObject);
var
  NullEndFound: Boolean = False;
begin
  with DataModule1.PeriodsDataset do
  begin
    First;
    while not EOF do begin
      if FieldByName('end').IsNull then begin
        NullEndFound := True;
        break;
      end;
      Next;
    end;
    if NullEndFound then begin
      Edit;
      FieldByName('end').AsDateTime := Now;
      Post;
      ApplyUpdates;
    end;
    //if Locate('end', Null(), []) then
    //begin
    //  Edit;
    //  FieldByName('end').AsDateTime := Now;
    //  Post;
    //  ApplyUpdates;
    //end;
  end;
end; 
artem78 писал(а):А что можете посоветовать из альтернатив? Я с БД в паскале раньше не работал.
Пожалуй, для Sqlite тоже проголосую за Sqldb.
artem78 писал(а):Спасибо.
Да не за что.