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 писал(а):Спасибо.
Да не за что.