Използвам Delphi 2010 с обвивката на SQLite на Тим Андерсън (уникод версия)
Имате база данни SQLite3, която в момента съдържа около хиляда записа.
Опитвам се да внедря функция, при която потребителят може да премине през базата данни с помощта на бутоните Next/Previous, да редактира запис, ако желае, след което да премине към следващия запис.
Когато актуализирам един от записите, текущо заредената таблица действа като моментна снимка, т.е. таблицата показва старите данни, докато не изпълня отново 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;
Има ли начин да обновя текущо заредената таблица? Или трябва да изпълня отново оригиналната заявка и да се върна обратно към текущия използван запис?