Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

работа с 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;

?


Наверх

Титульная страница Поиск, карта сайта Написать письмо