首先说一下直接访问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多页)。


本文由 王守红 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论