use*_*626 5 database delphi sqlite delphi-7 mormot
我正在使用Synopse mORMot从Delphi 7访问SQLite数据库.我希望通过SQL直接建立连接和查询数据库,而无需使用mORMot的ORM(对象关系映射)功能.
您是否可以提供执行SQL查询而不依赖于mORMot的ORM功能的代码示例?
简而言之:最好通过其类使用SynDB.pas
层,因为它将允许您的代码在将来可以通过OleDB/ODBC访问任何数据库,甚至可以直接访问(例如,用于Oracle).SynSQLite3.pas
SynDBSQLite3.pas
例如,使用变量来保存列数据:
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;
Run Code Online (Sandbox Code Playgroud)
因此,对于您的问题,请阅读mORMot文档中与SynDB相关的部分以及所有相关的博客文章.这些类由ORM使用,但您可以使用没有ORM的类.
首先,有一个TQuery
包装器SynDB.pas
可以很好地与SQLite3配合使用,并允许"经典"的代码级编程.
但是这些单位没有100%的RAD直接访问权限.只是一些TClientDataSet"填充程序".这不是他们的目的:他们希望在代码中快速直接访问数据库,而不是通过UI管道.