![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
работа с sqlite в xe3
dmitry87 © (2013-04-01 12:19:00)Создал таблицу:
CREATE TABLE "testtable" (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE, name TEXT);
Добавляю 100 записей:
procedure TForm11.Button1Click(Sender: TObject);
var
I: Int32;
T: Cardinal;
Transaction: TDBXSqliteTransaction;
begin
T := GetTickCount;
Transaction := SQLConnection1.BeginTransaction as TDBXSqliteTransaction;
for I := 1 to 100 do
SQLConnection1.Execute('INSERT INTO testtable (name) VALUES ("test")', nil);
SQLConnection1.CommitFreeAndNil(TDBXTransaction(Transaction)); // <- Invalid transaction object
ShowMessageFmt('%d sec.', [Round((GetTickCount - T) / 1024)]);
end;
получаю ошибку - "Invalid transaction object". Что не так? За пример взял статью: http://www.webdelphi.ru/2012/10/sqlite-v-delphi-xe3
O'ShinW (2013-04-02 10:44:00) [1]а я его - sqlite - пропустил, как неправильный сервер.
Либо сервер, либо файл. А этот микс какой то. Зачем вообще нужен..
Сервер - есть нормальный, есть express, если бесплатный (очень неплохи последние).
Файл - access или что иное, даже тупо dbf -
и ничего ставить не надо, и куча готовых решений уже есть.
Для чего нужен sqlite - загадка. Пойду в МС напишу о своей т.з., они поди ждут :)
KilkennyCat (2013-04-02 02:15:00) [2]а вот сточки зрения логики и производительности вообще, не лучше сформировать в цикле только запрос, а екзекуцию выполнить один раз? любопытно, а то я плохо скьюл знаю.
O'ShinW (2013-04-01 14:35:00) [3]не знаю, просто уточняю
а нельзя не юзать Transaction: TDBXSqliteTransaction;
и написать не
> SQLConnection1.CommitFreeAndNil(TDBXTransaction(Transaction));
> // <- Invalid transaction object
а что -то вроде
SQLConnection1.EndTransaction;
SQLConnection1.Commit;
?