Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > SQLite


Автор: Poseidon 27.9.2010, 14:18
Осваиваю данную БД. Ничего в общем сложного, но "не компилиццо" ))

Во всех статьях пишут что нужно создавать объект БД следующим образом:

Код

procedure TMainForm.FormCreate(Sender: TObject);
begin
  DataBase:= TSQLiteDatabase.Create('base.db');
end;
 

И тут начинаются НО. Компилятор ругается на большое количество параметров. Разбираемся... И в правду, в Create параметры не предусмотрены. Как же тогда связать файл базы и объект? Разбираемся... Есть метод Open с параметром FileName. Видать то, что нам нужно. Пробуем:

Код

procedure TMainForm.FormCreate(Sender: TObject);
begin
  DataBase:= TSQLiteDatabase.Create;
  DataBase.Open('base.db');
end;


Компилятор не ругается, но при попытке запустить программу вылетает ошибка (что-то на иероглифах и "pragma synchronous = off"). Разбираемся... Оказывается данную ошибку выдает как-раз Open. 

Так вот и вопрос, а как, собственно, подключить БД на Delphi 2010? 

PS. Все необходимые файлы были скачаны http://www.delphi.int.ru/articles/43/, т.к. с офф. сайта что-то не тянется.

Автор: AnalogXP 29.9.2010, 00:43
Poseidon, у меня база создается без вопросов, но метода Open нету.

Вот как я работаю с базой:
Код

var PlacesSqlite: TSQLiteDatabase;
      DBRoots: TSQLIteTable;
begin
      PlacesSqlite := TSQLiteDatabase.Create( filename );
     
      DBRoots := PlacesSqlite.GetTable('SELECT * FROM TableName where X="XXX"');

      if DBRoots.Count > 0 then
      begin
            while not DBRoots.EOF do
            begin
                iID := DBRoots.FieldAsString(DBRoots.FieldIndex['id']);
                iTitle := UTF8ToString( DBRoots.FieldAsString(DBRoots .FieldIndex['title']) );
                iType := DBRoots.FieldAsString(DBRoots.FieldIndex['type']);
            end;
      end;

end;

Автор: Poseidon 29.9.2010, 14:04
В общем, вышел я в итоге на офф. сайт и скачал оттуда файлики. С ними все заработало. Видать на сайте, ссылку на который я привел выше, какую-то шнягу выложили. Даже разбираться не стал.

Автор: AnalogXP 3.10.2010, 17:57
Poseidon, надеюсь Вы взяли http://www.ararat.cz/doku.php/en:sqlitewrap врапер. Отличная штука.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)