(FireDAC) 连接定义

Defining Connection (FireDAC)

连接定义就是应用程序使用特定的FireDAC驱动连接数据库的参数集合。相当于BDE的别名,ADO的UDL,或者ODBC的DSN。

For the list of supported database management systems and corresponding parameters, see FireDAC Database Connectivity.

FireDAC支持三种连接定义:


Type


Description


Pros


Cons


Persistent

固定连接


1.有个唯一名称,

2.由FDManager负责管理,

3.保存在一个连接定义文件中。


可能定义一次并在多个应用程序中交叉重复使用。可以被用于连接池


(server address, DB name, 等)参数公共可见并且可能随时改变。FDManager必须重新激活或者重启IDE以使新加的连接定义在设计时可见.


Private

私有连接


1.有个唯一名称,

2.由FDManager负责管理,

3.不保存在连接定义文件中。


定义连接的参数在应用程序之外不可见。可用于连接池。


当每个程序重启后,应用程序需要建立个私有连接,其它程序不能共享。不能在设计时建立.


Temporary

临时连接


1.没有唯一名称,

2.不由FDManager管理

3.不保存在连接定义文件中。


最简易建立连接定义的方法,通过填写 TFDConnection.Params 属性来完成. 可以在设计时通过TFDConnection component editor 输入参数来完成连接定义.


私有连接简单,不能用名称引用,不能用于连接池。

Connection Definition File

固定连接保存在一个外部文件 - 连接定义文件中。

此文件是标准的INI文本文件,可首先选择用 FDExplorer 或 FDAdministrator 实用程序来编辑, 也可手动或用代码来编辑。. 系统默认文件是C:\Users\Public\Documents\Embarcadero\Studio\14.0\FireDAC\FDConnectionDefs.ini.

注意:当你使用 FDExplorer or FDAdministrator 建立一个固定连接,且当RAD Studio IDE 运行中, 会看不到 FireDAC 设计时代码. 要刷新连接定义列表,你需要重启 FDManager 或 RAD Studio IDE.

Sample content of this file:

[Oracle_Demo]

DriverID=Ora

Database=ORA_920_APP

User_Name=ADDemo

Password=a

MetaDefSchema=ADDemo

;MonitorBy=Remote

[MSSQL_Demo]

DriverID=MSSQL

Server=127.0.0.1

Database=Northwind

User_Name=sa

Password=

MetaDefSchema=dbo

MetaDefCatalog=Northwind

MonitorBy=Remote

应用程序可在 FDManager.ConnectionDefFileName 属性中指定连接定义文件名.

FireDAC 在下面位置搜索连接定义文件:

·指定了连接定义文件名:

·文件名不带路径时,在应用程序文件夹下搜索该文件名。

·带路径的文件名则直接搜索它。

·没有指定连接定义文件名:

·在应用程序文件夹中搜索FDConnectionDefs.ini 文件。

·如果文件没有找到,则搜索 HKCU\Software\Embarcadero\FireDAC\ConnectionDefFile. 默认是 C:\Users\Public\Documents\Embarcadero\Studio\14.0\FireDAC\FDConnectionDefs.ini.

注意: 在设计时期 FireDAC 忽略  FDManager.ConnectionDefFileName的值, 只在RAD Studio Bin 文件夹或registry指定位置寻找, 如果找不到文件,抛出异常。

如果FDManager.ConnectionDefFileAutoLoad 为 True, 自动调用连接定义文件,否则,必须在第一个连接定义信息使用之前用FDManager.LoadConnectionDefFile方法来调用文件。例如设定TFDConnection.Connected 为 True之前.

Creating a Persistent Connection Definition

建立固定连接定义

可以使用 FDExplorer or FDAdministrator建立固定连接定义。 这是如何在代码中实现。可以看例子 FireDAC\Samples\Comp Layer\TFDConnection\ConnectionDefs.

下面代码段建立一个名为 "MSSQL_Connection"的连接定义,带所有所需参数连接到 Microsoft SQL Server 本地连接, 使用了 OS authentication (SSPI):

uses

FireDAC.Comp.Client, FireDAC.Stan.Intf;

var

oDef: IFDStanConnectionDef;

begin

oDef := FDManager.ConnectionDefs.AddConnectionDef;

oDef.Name := ‘MSSQL_Connection‘;

oDef.DriverID := ‘MSSQL‘;

oDef.Server := ‘127.0.0.1‘;

oDef.Database := ‘Northwind‘;

oDef.OSAuthent := True;

oDef.MarkPersistent;

oDef.Apply;

.....................

FDConnection1.ConnectionDefName := ‘MSSQL_Connection‘;

FDConnection1.Connected := True;

FDManager 在 FireDAC连接管理中是一个全局对象. 其属性 FDManager.ConnectionDefs: IFDStanConnectionDefs 是在固定连接和私有连接中的一个集合。 AddConnectionDef 方法添加一个新连接定义。 MarkPersistent 方法标记连接定义为固定连接定义。 Apply 方法保存连接定义到连接定义文件中。没有调用MarkPersistent ,表示是私有连接定义。.

Creating a Private Connection Definition

私有连接定义只能用代码建立。和上面的代码类似,只是不必调用MarkPersistent 即可。

Also, you can use a technique similar to BDE:

你也可类似BDE的使用方法:

var

oParams: TStrings;

begin

oParams := TStringList.Create;

oParams.Add(‘Server=127.0.0.1‘);

oParams.Add(‘Database=Northwind‘);

oParams.Add(‘OSAuthent=Yes‘);

FDManager.AddConnectionDef(‘MSSQL_Connection‘, ‘MSSQL‘, oParams);

.....................

FDConnection1.ConnectionDefName := ‘MSSQL_Connection‘;

FDConnection1.Connected := True;

Creating a Temporary Connection Definition

临时连接可以在设计期用FireDAC Connection Editor来建立. 双击 TFDConnection 即可打开:

Or at run time in code by filling the TFDConnection.Params property.

或者在运行时填充参数,这是最简单的建立连接定义的方法。

FDConnection1.DriverName := ‘MSSQL‘;

FDConnection1.Params.Add(‘Server=127.0.0.1‘);

FDConnection1.Params.Add(‘Database=Northwind‘);

FDConnection1.Params.Add(‘User_name=sa‘);

FDConnection1.Connected := True;

另外的选择是在设计期指定一个连接字符串,填到 TFDConnection.ConnectionString 属性。 A connection string may be a convenient way to specify connection definition parameters for certain types of applications. 在应用程序已知类型的连接参数情况下,使用连接字符串定义连接会是一个不错的方法。For example:

FDConnection1.ConnectionString := ‘DriverID=MSSQL;Server=127.0.0.1;Database=Northwind;User_name=sa‘;

FDConnection1.Connected := True;

Editing a Connection Definition

应用程序可能需要在运行时使用标准FireDAC编辑对话框建立和编辑连接定义的能力,来编辑保存在TFDConnection中的临时连接定义,使用以下代码::

uses

FireDAC.VCLUI.ConnEdit;

...

if TfrmFDGUIxFormsConnEdit.Execute(FDConnection1, ‘‘) then

FDConnection1.Connected := True;

To edit a connection definition represented as a FireDAC connection string, use the code:

uses

FireDAC.VCLUI.ConnEdit;

...

var

sConnStr: String;

...

sConnStr := FDConnection1.ResultConnectionDef.BuildString();

if TfrmFDGUIxFormsConnEdit.Execute(sConnStr, ‘‘) then begin

FDConnection1.ResultConnectionDef.ParseString(sConnStr);

FDConnection1.Connected := True;

end;

[cpp] view plain copy

  1. #include <FireDAC.VCLUI.ConnEdit.hpp>
  2. TfrmFDGUIxFormsConnEdit * f = new TfrmFDGUIxFormsConnEdit(this);
  3. String sConnStr = DSServerModule1->FDConnection1->ResultConnectionDef->BuildString();
  4. if(f->Execute(sConnStr, ""))
  5. {
  6. DSServerModule1->FDConnection1->ResultConnectionDef->ParseString(sConnStr);
  7. DSServerModule1->FDConnection1->Connected = True;
  8. }

原文地址:https://www.cnblogs.com/Thenext/p/9715271.html

时间: 2024-11-01 23:14:28

(FireDAC) 连接定义的相关文章

xe6+firedac 连接sybase

一.Win7 X64系统安装sybase odbc: 1.  下载对应包至c:\system_odbc(文件夹名自己取,在后面注册表内容需要用到),接着需要将该目录添加至path环境变量下: 2.  将值信息写入到注册表内: WindowsRegistry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\ODBCDrivers] "SYBASEASE ODBC Driver"=

问题-FireDAC连接Sqlite3提示“unable to open database file”

相关资料:http://www.dfwlt.com/forum.php?mod=viewthread&tid=1497&extra= 问题现象:FireDAC连接Sqlite3在开发电脑上没有问题,但将程序放在XP上就提示“unable to open database file”(后来发现别的WIN7也不行). 问题原因:可能是因为字符串编码问题. 问题处理:在FDConnection1控件上双击,出现的设置中,必须设置二项,"OpenMode=CreateUTF8"

FIREDAC连接MSSQL 2000报不能支持连接MSSQL2000及更低版本的解决办法

FIREDAC连接MSSQL 2000的时候会报错,原因是MSSQL CLIENT11或MSSQL CLIENT10客户端驱动程序已经不支持连接MSSQL2000及更低版本的数据库. 解决办法: 设置FDPhysSQLiteDriverLink1的ODBCDriver为“SQL Server”,这样FIREDAC将通过ODBC的方式连接上MSSQL2000数据库.

FIREDAC连接SQLITE乱码的解决

在好多群里面都碰到问“FIREDAC连接SQLITE乱码的”的问题的同仁,遂将解决方法贴出来: 如上图所示设置 stringFormat为unicode即可

Delphi东京版FireDAC连接MSSQL2000提示对象名 &#39;SYS.DATABASES&#39; 无效

在Delphi 10.2.1 东京 版中,FireDAC默认不兼容MSSQL2000,会提示"[FireDAC][Phys][ODBC][Microsoft][ODBC SQL Server Driver][SQL Server]对象名 'SYS.DATABASES' 无效."的错误,对此需要修改FireDAC.Phys.MSSQL.pas单元进行修复: 首先从delphi目录下把FireDAC.Phys.MSSQL.pas文件复制出来,然后打开它,注释掉 {$I FireDAC.in

Delphi XE FireDac 连接池

在开发Datasnap三层中,使用FireDac 连接  MSSQL数据库. 实现过程如下: 1.在ServerMethods 单元中放入 FDManager.FDPhysMSSQLDriverLink1.FDGUIxWaitCursor1等控件. 2.自定义过程: private var oParams: TStrings; procedure TSrvMethods.SetupFDManager; //加载数据库链接信息. begin //*****初始化***** oParams := T

xe6+firedac连接sybase

一.Win7 X64系统安装sybase odbc: 1.  下载对应包至c:\system_odbc(文件夹名自己取,在后面注册表内容需要用到): 2.  将值信息写入到注册表内: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\ODBC Drivers] "SYBASE ASE ODBC Driver"="Installed&qu

FireDAC 连接access MDB数据库的方法

Use Cases Open the Microsoft Access database. DriverID=MSAcc Database=c:\mydata.mdb Open the Microsoft Access database using the system database. DriverID=MSAcc Database=c:\mydata.mdb SystemDB=c:\system.mdb User_Name=usr Password=pwd Open the Microso

firedac连接linux的oracle

首先要下载并安装 oci for linux.OCI的版本要和ORACLE数据库的版本一致. centos7环境下安装OCI:https://blog.csdn.net/wjb123sw99/article/details/83863234 FIREDAC指定ORACLE的驱动程序: FDPhysOracleDriverLink1.VendorLib   := '/opt/oracle/instantclient_12_2/libclntsh.so'; 原文地址:https://www.cnbl