Имхо, такой подход удобнее стандартного компонента из LCL (хотя это дело вкуса
![Smile :)](./images/smilies/icon_smile.gif)
В общем, если вдруг кому пригодится - пользуйтесь
![Smile :)](./images/smilies/icon_smile.gif)
Модератор: Модераторы
modjo писал(а):Не подскажите как подцепится к существующей базе?
TSQLiteDataBase.Create('существующая база.db')
modjo писал(а):Если делать
DBase := TSQLiteDataBase.Create('test.db');
База будет переписана.
modjo писал(а):Документации, думаю, нет?
SQL_db := TSQLiteDatabase.Create(PatchDB.Text);
showmessage('test');
// Добавляем таблицы.
for i := 0 to SoftList.Items.Count - 1 do
begin
// Таблица cодержит только данные пользователя. Обязательна к созданию.
SQL_db.ExecSQL('CREATE TABLE IF NOT EXISTS [users] ([id] INTEGER PRIMARY KEY, [username] CHAR, [org] CHAR, [position] CHAR, [ncomp] CHAR, [compname] CHAR, [ipcomp] CHAR)');
// В этой таблице хранится чисто техническая информация для программы.
SQL_db.ExecSQL('CREATE TABLE IF NOT EXISTS [forprog] ([lastid] INTEGER)');
// Radmin.
if (SoftList.Checked[i] = True) and (SoftList.Items.Strings[i] = 'RAdmin') then
SQL_db.ExecSQL('CREATE TABLE IF NOT EXISTS [radmin] ([id] INTEGER PRIMARY KEY, [org] CHAR, [sn] CHAR, [number] INTEGER)');
// TheBat!
if (SoftList.Checked[i] = True) and (SoftList.Items.Strings[i] = 'The Bat!') then
SQL_db.ExecSQL('CREATE TABLE IF NOT EXISTS [thebat] ([id] INTEGER PRIMARY KEY, [org] CHAR, [sn] CHAR, [number] INTEGER)');
// Lingvo.
if (SoftList.Checked[i] = True) and (SoftList.Items.Strings[i] = 'Lingvo') then
SQL_db.ExecSQL('CREATE TABLE IF NOT EXISTS [lingvo] ([id] INTEGER PRIMARY KEY, [org] CHAR, [sn] CHAR)');
// NOD32.
if (SoftList.Checked[i] = True) and (SoftList.Items.Strings[i] = 'NOD32') then
SQL_db.ExecSQL('CREATE TABLE IF NOT EXISTS [nod32] ([id] INTEGER PRIMARY KEY, [org] CHAR, [sn] CHAR)');
end;
// Очищаем память.
SQL_db.Free
sql := tsqlitedatabase.Create('test.db');
sql.Free;
смотрю базу через sqlite datdbase browser - пустая...
Odyssey писал(а):modjo
Есть пара предложений по библиотеке:
1) SQLiteTable3.pas, строка 120, используется тип TDate. В текущем релизе FPC 2.4.0 этот тип не определён в модуле System. Он есть только в trunk/2.5.x. В результате на релизном FPC модуль не компилируется. Есть предложение изменить его на TDateTime, или объявить type TDate = type TDateTime, как сделали в Lazarus.
2) Там же, строка 173. UTF8String -- это тот же string, поэтому приведение типов в данном случае не даёт никакого результата. Есть предложение убрать приведение и временную переменную, чтобы не вводили в заблуждение.
if NOT DeleteFile(PatchDB.Text) then
Вернуться в Разработки на нашем сайте
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10