Пример SQL-запросов в mORMot

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

Не могли бы вы привести примеры кода, которые выполняют запросы SQL, не полагаясь на функциональность ORM в mORMot?

1 ответ

Короче говоря: лучше использовать SynDB.pas слой поверх SynSQLite3.pas через его SynDBSQLite3.pas классы, так как это позволит вашему коду работать в будущем с любой базой данных, доступной через OleDB / ODBC или даже прямой доступ (например, для Oracle).

Например, используя вариант для хранения данных столбца:

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;

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

Итак, по вашему вопросу прочитайте часть документации mORMot, касающуюся SynDB, и все соответствующие статьи блога. Эти классы используются ORM, но вы можете использовать их без ORM.

Для начала, есть TQuery обертка в SynDB.pas который очень хорошо работает с SQLite3 и допускает "классическое" программирование на уровне кода.

Но нет прямого доступа к этим устройствам на 100% RAD. Просто некоторые TClientDataSet "наполнители". Это не было их целью: им нужен быстрый и прямой доступ к БД в коде, а не через интерфейс UI.

Другие вопросы по тегам