Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Работа с SQLite в Delphi 7: Использование SQL-запросов без ORM mORMot

Delphi , Базы данных , SQL

Вопрос, поставленный пользователем, заключается в том, что он использует библиотеку Synopse mORMot для доступа к базе данных SQLite из среды разработки Delphi 7 и желает выполнить соединение с базой данных и выполнить SQL-запросы напрямую, без использования функционала ORM, предоставляемого mORMot.

Подтвержденный ответ

Для выполнения SQL-запросов без использования ORM в mORMot, можно воспользоваться классами, предназначенными для работы с базами данных, которые также используются в ORM, но могут быть применены отдельно. В частности, в библиотеке есть класс TQuery, обертка для работы с базой данных, которая хорошо работает с SQLite и позволяет использовать классический кодовый уровень программирования.

Вот пример кода на Object Pascal, который демонстрирует, как можно выполнить SQL-запрос без использования ORM:

procedure Test(Props: TSQLDBConnectionProperties);
var
  Customer: Variant;
begin
  with Props.Execute('select * from Customers where AccountNumber like ?',
    ['AW000001%'], @Customer) do
    while Step do
      Assert(Copy(Customer.AccountNumber, 1, 8) = 'AW000001');
end;

var
  Props: TSQLDBConnectionProperties;
begin
  Props := TSQLDBSQLite3ConnectionProperties.Create('databasefile.db3', '', '', '');
  try
    Test(Props);
  finally
    Props.Free;
  end;
end;

В этом коде создается объект TSQLDBConnectionProperties, который инициализируется с указанием пути к файлу базы данных SQLite. Затем вызывается процедура Test, которая выполняет SQL-запрос, получая данные из таблицы Customers с условием, что AccountNumber начинается на заданную строку. Результаты запроса обрабатываются по одной записи в цикле.

Альтернативный ответ

Также стоит отметить, что использование слоя SynDB.pas через классы SynDBSQLite3.pas позволит вашему коду быть более универсальным и работать в будущем с другими базами данных, доступными через OleDB / ODBC, или даже с прямым доступом, например, для Oracle.

В документации mORMot и связанных блогах на сайте synopse.info можно найти дополнительную информацию о том, как использовать эти классы для работы с базой данных без ORM. Несмотря на то, что эти классы разработаны для использования с ORM, они могут быть полезны и в "классическом" коде, который работает напрямую с базой данных.

Обратите внимание, что полного RAD-доступа с этими единицами не предусмотрено, и есть только некоторые TClientDataSet "заполнители". Это не было их первоначальной целью: они стремятся к быстрому и прямому доступу к базе данных на уровне кода, а не через UI-компоненты.

Создано по материалам из источника по ссылке.

Пользователь использует библиотеку mORMot для работы с SQLite в Delphi 7 и хочет выполнить прямые SQL-запросы, минуя функционал ORM.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: SQL ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-02-05 13:52:21/0.0048630237579346/1