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