首先说一下直接访问Postgresql数据库的方法,单元需引用SynCommons,SynDB,SynDBPostgres。
连接数据库代码示例:
var
Conn: TSQLDBConnection;
Query: TSQLDBStatement;
Props: TSQLDBPostgresConnectionProperties;
F: TFileStream;
begin
with SynDBLog.Family do
begin
Level := LOG_VERBOSE;
AutoFlushTimeOut := 10;
HighResolutionTimeStamp := True;
end;
Props := TSQLDBPostgresConnectionProperties.Create('数据库IP:端口', '数据库名称', '用户名', '密码');
try
Conn := Props.NewConnection;
try
Conn.Connect;
Query := Conn.NewStatement;
try
Query.Execute('select * from public.test where usercodelike ?', True, ['10%']);
F := TFileStream.Create(ChangeFileExt(ExeVersion.ProgramFileName, '.json'), fmCreate);
try
Query.FetchAllToJSON(F, False);
finally
F.Free;
end;
finally
Query.Free;
end;
finally
Conn.Free;
end;
在windows系统访问postgresql用到的相关dll,最少要包括这3个libpq.dll,libintl-9.dll,libiconv-2.dll。
连接Oracle库
OraProps := TSQLDBOracleConnectionProperties.Create('//127.0.0.1:1521/服务名','', 'sysdba', 'password');
扩展:
对于其它数据库的访问说明,Oracle需要引用SynDBOracle.pas,Firebird需要引用SynDBFirebird.pas,访问MS server或者Access可以引用SynOleDB.pas。当然也可以使用第三方控件例如:FireDAC,UniDAC,ZeosDB。
例如使用ZeosDB,需引用单元SynDBZeos,可以遵循以下步骤:
-从https://dev.mysql.com/downloads/c-api/ 下载“Windows (x86, 32-bit), ZIP Archive”。-然后将压缩包解压:只需要libmysql.dll,放在可执行文件夹或系统目录中;
连接代码通常如下:
fConnection := TSQLDBZEOSConnectionProperties.Create(
'zdbc:mysql://192.168.2.60:3306/world?username=root;password=dev', '', '', '');
或者使用 URI() 方法:
fConnection := TSQLDBZEOSConnectionProperties.Create(
TSQLDBZEOSConnectionProperties.URI(dMySQL,'192.168.2.60:3306'),'root','dev');
对于PostgreSQL来说, Zeos仅需要libpq.dll和 libintl.dll这两个动态库,可以从
https://www.enterprisedb.com/products-services-training/pgbindownload下载
连接代码如下:
PropsPostgreSQL := TSQLDBZEOSConnectionProperties.Create(
TSQLDBZEOSConnectionProperties.URI(dPostgreSQL,'localhost:5432'),
'dbname','username','password');
同样你也可以使用 TSQLDBZEOSConnectionProperties.URI() 方法来设置 ZDBC的连接字符串:
PropsOracle := TSQLDBZEOSConnectionProperties.Create(
TSQLDBZEOSConnectionProperties.URI(dOracle,'','oci64\oci.dll'),
'tnsname','user','pass');
PropsFirebirdEmbedded := TSQLDBZEOSConnectionProperties.Create(
TSQLDBZEOSConnectionProperties.URI(dFirebird,'','Firebird\fbembed.dll')
'databasefilename','',');
PropsFirebirdRemote := TSQLDBZEOSConnectionProperties.Create(
TSQLDBZEOSConnectionProperties.URI(dFirebird,'192.168.1.10:3055',
'c:\Firebird_2_5\bin\fbclient.dll',false),
'3camadas', 'sysdba', 'masterkey');
Oracle的客户端下载地址https://www.oracle.com/database/technologies/instant-client/downloads.html
你可以参阅mORMot中相关TSQLDBZEOSConnectionProperties的章节,了解更多关于mORMot开源库的语法和可用的功能的信息(文档是相当的大,2500多页)。
还不快抢沙发