![]() |
Delphi и sqlite
Дружим Delphi и SQLite. Глава первая: инструменты.
Совершенно недавно озадачился по поводу выбора БД для нового проекта. Раньше всегда использовал стандартный BDE, что было не всегда удобно, так как BDE требует установки на компьютер специального программного обеспечения. Можно конечно обойти это, но в любом случае вместе с приложением придется таскать за собой все библиотеки BDE. А на этот раз тем более требовалось написать приложение, работающее с диска, т.е. без установки. Рассмотрев все варианты, выбор я свой остановил на SQLite по нескольким причинам: • бесплатная; • быстрая; • открытый исходный код; • все функции в одной dll; • возможность работать в режиме "только для чтения"; • никаких записей в реестр и на диск (кроме dll и файла базы данных), никаких настроек сетевых протоколов; • синтаксис SQL достаточно хорошо соответствует стандарту – вы можете взять любую книгу, где описывается ANSI SQL 92 и пользоваться. Хотя есть и свои минусы, разумеется: Не советуют использовать для многопользовательских баз (хотя это и предусмотрено в SQLite). Все типы кроме автоинкремента эмулируются через строки. Казалось бы, по такой «золотой» базе должно быть море материалов, но мне было очень сложно найти хоть что-то, что подсказало бы мне как связать Delphi и эту базу. Именно поэтому у меня и возникло желание написать нормальную человеческую статью. Весь инструментарий для работы с базой: • Delphi • Sqlite (сама dll, можно качнуть с www.sqlite.org) • Программу для редактирования БД (для проверки нашей программы) качаем с sqlitebrowser.sourceforge.net Классы для работы с SQLite. Можно работать, разумеется, напрямую, но лучше взять готовое решение. Заметьте, что НЕ КОМПОНЕНТ, а именно обертка из классов. При желании можете легко переделать эти классы под себя. Нам понадобиться всего два файла: sqlite3.pas и sqliteTable3.pas. Качнуть их можно отсюда - www.delphi.int.ru/download/file/287/ -, там сразу архив со всеми нужными нам программами и сама dll. Продолжение следует… Xann.ru © 2009 |
Вторая часть
Дружим Delphi и SQLite. Глава вторая: настраиваемся на работу.
Для начала создаем новый проект в Delphi. Затем кидаем sqlite3.pas, sqliteTable3.pas и sqlite3.dll в папку с нашей программой. Теперь мы должны получить возможность использовать эти классы. Для этого подключаем их в проект: File – Use unit и в открывшимся окне выбираем поочередно sqlite3.pas и sqliteTable3.pas. Все. Поздравляю. Заготовка под проект готова. Осталось добавить только сам объект, который и будет работать с базой. Добавляется он так: ищем строчку {$R *.dfm} и после нее дописываем Var sqldb: TSQLiteDatabase. Продолжение следует… В следующей главе мы рассмотрим запись данных в БД. Xann.ru © 2009 |
Третья часть
Дружим Delphi и SQLite. Глава третья: запись данных в БД.
Проект у нас создан. Объект готов. Приступим. Для начала создадим базу данных: Код:
sqldb := TSQLiteDatabase.Create('base.db');Не забудьте в конце программы (допустим в FormDestroy) освободить память. Код:
sqldb.Free;Код:
sqldb.ExecSQL('CREATE TABLE DemoTable (ID INTEGER PRIMARY KEY, TEXTDB TEXT, BLOBDB BLOB)');Код:
if not sqldb.TableExists(' DemoTable') thenКод:
sqldb.ExecSQL('insert into DemoTable (TEXTDB) values("Наша первая запись")');Код:
VAR f:TfileStream;Продолжение следует… В следующей главе мы рассмотрим чтение данных из БД. Xann.ru © 2009 |
Последняя часть
Дружим Delphi и SQLite. Глава четвертая: чтение данных из БД.
Ну вот и подошло время для заключительной статьи по Delphi и SQLite. Сейчас мы научимся извлекать на свет из недр базы данных нужную нам информацию. Начнем как обычно с текстовых полей. Для начала нам потребуется еще одна переменная - ее можно сделать локальной, то есть объявить непосредственно в процедуре. Код:
sltb:TSQLiteTable;Код:
sltb := sldb.GetTable('SELECT TEXTDB, BLOBDB FROM DemoTable where ID=1');Код:
TextString:=sltb.FieldAsString(0); // В переменную TextString заносим значение поля TEXTDBКод:
Procedure loadbitm(sql:string;image:Tobject);Код:
loadbitm('SELECT BLOBDB FROM DemoTable WHERE ID=1',Form1.image1);Вот мы и научились работать с SQLite базой данных. На основе нее очень просто создавать приложения, тем более скорость работы у нее достаточно большая по сравнению с аналогами. Если вы в чем то затрудняетесь или что-то не поняли - обращайтесь в асю: 44(ноль)5577(ноль)8 Xann.ru © 2009 |
Эм... а есть компоненты...
Кряченые тут: http://torrents.ru/forum/viewtopic.php?t=1959907 Или ищем у разработчика: http://www.devart.com/ru/dac.html Позволяет много с чем работать, но я использую только под мускул, то есть юзаю MyDAC :) Хотя, если разработка твоя буит патентоваться, и так далее, то с крячеными компонентами не напатентуешься... да и дельфю нуна лиц... А пока у меня и дельфи, и Rad Studio кряченые, то и компоненты юзать не кряченые не буду... так что рекомендую вам то, что юзаю сам... |
Крячили, крячим и будем крякать )))
Просто не всегда удобно юзать компоненты. Допустим для консольных программ. Мало ли какие делишки нужно будет провернуть нашей консольной програмке, а компоненты к тому же прибавят размер... |
| Время: 10:04 |