我正在使用同步mORMot从Delphi7访问一个SQLite数据库,我希望建立一个连接并通过SQL直接查询数据库,而不使用mORMot的对象关系映射( ORM )特性。
您能提供不依赖于mORMot的ORM功能而执行SQL查询的代码示例吗?
发布于 2012-10-14 23:28:28
简而言之:最好是通过SynDB.pas类在SynSQLite3.pas上使用SynDBSQLite3.pas层,因为它将允许您的代码在将来使用通过OleDB / ODBC甚至直接访问的任何数据库(例如对OleDB)进行访问。
例如,使用一个用于保存列数据的变体:
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“填充物”。这不是他们的目的:他们想要快速和直接访问DB的代码,而不是通过UI管道。
https://stackoverflow.com/questions/12884321
复制相似问题