(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Используем SQLite (AES-256) в Delphi.

Источник: rgblog
Руслан Гайсин

В прошлой статье мы научились варить эту самую библиотеку SQLite из исходников SQLCipher, для того, чтобы использовать шифрование в SQLite. Сейчас мы научимся какже все таки с этой библиотекой работать. Нам понадобится интерфейс, так сказать " обертка ". Можно конечно работать с библиотекой напрямую, но лучше использовать уже готовое решение. На просторах интернета нашел обертку из двух файлов SQLite3.pas и SQLiteTable3.pas. Внизу статьи прикладываю эти файлы.

Почему же все таки SQLite?

Тут все просто, основные причины выбора данной БД, заключается в следующем:

  • библиотека абсолютно бесплатная
  • быстрая
  • открытый исходный код
  • используется только одна dll и сам файл базы данных (без всяких драйверов)
  • синтаксис SQL практически соответствует стандартному

Создание проекта

Для начало создаем новый проект и сохраняем на диск. В папку с созданным проектам копируем файлы обертки (SQLite3.pas и SQLiteTable3.pas), саму библиотеку (sqlite3.dll), и библиотеку шифрования (libeay32.dll).

В созданном проекте, для работы с SQLite, подключаем обертку для работы с базой:

uses SQLite3, SQLiteTable3;

Теперь добавляем сам объект для работы с БД. Для этого объявляем вместе с переменными:

var mybase: TSQLiteDatabase;

Взаимодействие с базой данных

Подключение

Подключаем файл базы данных, если его нет, то файл создаться:

mybase := TSQLiteDatabase.Create('base.db');

здесь мы задали имя файла нашей базы.

После открытия задаем пароль для шифрования базы:

mybase.ExecSQL('PRAGMA key = "MY PASSWORD"');

Создание и добавление

Создадим в нашей базе таблицу, для этого выполним SQL запрос. Для этого используется команада:

if not mybase.TableExists('FirstTable') then mybase.ExecSQL('CREATE TABLE FirstTable (ID INTEGER PRIMARY KEY, MYTEXT TEXT, MYBLOB BLOB)');

Чтобы исключить ошибку, провевряем есть ли в базе таблица с таким же именем.

Добавление записей выполняется также через SQL запросы:

mybase.ExecSQL('insert into FirstTable (MYTEXT) values("Оно работает!")');

Для получения номера вставленной строки используется функция:

id := mybase.GetLastInsertRowID;

Теперь рассмотрим добавление файла в BLOB поле:

var f1: TFileStream; begin f1:= TFileStream.Create('pidgin.bmp',fmOpenRead); mybase.UpdateBlob('UPDATE FirstTable SET MYBLOB = ? WHERE ID = '+id, f1); f1.Free; end;

Получение данных

Для извлечения данных из нашей БД, необходимо объявить новую переменную:

var mytable: TSQLiteTable;

Получаем данные из таблицы

mytable := mybase.GetTable('SELECT MYTEXT, MYBLOB FROM FirstTable where ID='+id);

И теперь уже получаем значение из нужного нам поля полученной таблицы:

myvar:=mytable.FieldAsString(0); // значение поля MYTEXT

Загрузка изображение из базы выполняется следующим образом:

var ms:TMemoryStream; ms := TMemoryStream.Create; sql := 'SELECT MYBLOB FROM FirstTable WHERE ID='+id; if mybase.GetTable(sql).FieldAsString(0) <> '' then begin ms := mybase.GetTable(sql).FieldAsBlob(0); ms.Position := 0; (Form1.Image1 as Timage).Picture.Bitmap.LoadFromStream(ms); ms.Free;

После всех манипуляций освобождаем память:

mybase.Free;

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 22.07.2013 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Delphi Professional Named User
Enterprise Connectors (1 Year term)
SAP Crystal Reports 2008 INTL WIN NUL License
Microsoft 365 Business Basic (corporate)
IBM DOMINO ENTERPRISE CLIENT ACCESS LICENSE AUTHORIZED USER LICENSE + SW SUBSCRIPTION & SUPPORT 12 MONTHS
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
СУБД Oracle "с нуля"
Новые материалы
Вопросы и ответы по MS SQL Server
Утиль - лучший бесплатный софт для Windows
Краткие описания программ и ссылки на них
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100