Я использую Delphi 2010 с оболочкой Тима Андерсона для SQLite (версия Unicode)
Иметь базу данных SQLite3, которая в настоящее время содержит около тысячи записей.
Я пытаюсь реализовать функцию, в которой пользователь может просматривать базу данных с помощью кнопок «Следующая/Предыдущая», редактировать запись, если они этого хотят, а затем переходить к следующей записи.
Когда я обновляю одну из записей, текущая загруженная таблица действует как снимок, т. е. таблица показывает старые данные, пока я не перезапущу SQL-запрос для перезагрузки таблицы.
Вот код Delphi, который выполняет обновление.
procedure TForm1.btnUpdateClick(Sender: TObject);
var
slDBpath: string;
sldb: TSQLiteDatabase;
sSQL: String;
ts: TStringStream;
begin
slDBpath := ExtractFilepath(application.exename) + 'test.db';
sldb := TSQLiteDatabase.Create(slDBpath);
try
ts := TStringStream.Create(memNotes.Text, TEncoding.UTF8);
try
sldb.BeginTransaction;
sSQL := 'UPDATE testtable SET Name = "' + ebName.Text + '", Number = ' + ebNumber.Text + ' WHERE ID = '+ ebID.text +';';
sldb.execsql(sSQL);
sldb.Commit;
finally
ts.Free;
end;
finally
sldb.Free;
end;
end;
Есть ли способ обновить текущую загруженную таблицу? Или мне нужно повторно запустить исходный запрос и вернуться к текущей используемой записи?