Пример 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.