(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;
- #include <FireDAC.VCLUI.ConnEdit.hpp>
- TfrmFDGUIxFormsConnEdit * f = new TfrmFDGUIxFormsConnEdit(this);
- String sConnStr = DSServerModule1->FDConnection1->ResultConnectionDef->BuildString();
- if(f->Execute(sConnStr, ""))
- {
- DSServerModule1->FDConnection1->ResultConnectionDef->ParseString(sConnStr);
- DSServerModule1->FDConnection1->Connected = True;
- }
(FireDAC) 连接定义的更多相关文章
- Delphi 的 FireDAC 连接管理与配置过程
Delphi 的 FireDAC 连接管理与配置过程: 使用 FireDAC 技术连接 数据库,主要是使用 TFDConnection ,其中有一参数是选择 ConnectionDefFile. ...
- win2008使用FireDac连接ORACLE数据库问题
2008上装DELPHI XE7,无论用FireDac 还是Ado都连不上ORACLE数据库 --------------------------- Debugger Exception Notifi ...
- 问题-FireDAC连接Sqlite3提示“unable to open database file”
相关资料:http://www.dfwlt.com/forum.php?mod=viewthread&tid=1497&extra= 问题现象:FireDAC连接Sqlite3在开发电 ...
- FIREDAC连接SQLITE乱码的解决
在好多群里面都碰到问“FIREDAC连接SQLITE乱码的”的问题的同仁,遂将解决方法贴出来: 如上图所示设置 stringFormat为unicode即可
- FIREDAC连接MSSQL 2000报不能支持连接MSSQL2000及更低版本的解决办法
FIREDAC连接MSSQL 2000的时候会报错,原因是MSSQL CLIENT11或MSSQL CLIENT10客户端驱动程序已经不支持连接MSSQL2000及更低版本的数据库. 解决办法: 设置 ...
- firedac连接WINDOWS的ORACLE
firedac连接WINDOWS的ORACLE 首先安装OCI FOR WINDOWS.OCI分WIN32和WIN64,且OCI的版本要和ORACLE的版本相一致才行. FIREDAC指定OCI驱动程 ...
- firedac连接linux的oracle
firedac连接linux的oracle 首先要下载并安装 oci for linux.OCI的版本要和ORACLE数据库的版本一致. centos7环境下安装OCI:https://blog.cs ...
- Delphi XE FireDac 连接池
在开发Datasnap三层中,使用FireDac 连接 MSSQL数据库. 实现过程如下: 1.在ServerMethods 单元中放入 FDManager.FDPhysMSSQLDriverLin ...
- Eplan如何添加“连接定义点”
Eplan如何添加“连接定义点” 参考文档:https://blog.csdn.net/txwtech/article/details/90510106
随机推荐
- [UE4]控件模板参数
创建的时候就会变成这样了.
- C#一年中有多少周方法和js一年中第几周
最近在做一个时间插件,用的是jquery-daterangepicker ,现在分享一下查询时间是一年中的第几周的js方法 和 一年中有多少周的C#后台方法,默认是按照周一为一周的开始,如果一年的第 ...
- JVM调优常用参数
JVM常用参数配置 -Xmx2048m 最大堆大小 -Xms1024m 初始堆大小 -Xmn1024m 年轻代大小 -XX:SurvivorRatio=8 Eden区与Survivor区的大小比值,设 ...
- Webbrowser中IHTMLElement、IHTMLElement2、IHTMLDocument2、IHTMLDocument2属性介绍
一.IHTMLElement接口 ele.click -----------点击事件 ele.setAttribute(const strAttributeName: WideStri ...
- time random sys os 模块
时间模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串: (1)时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日 ...
- 03-spark kafka
1.概念 Kafka是一个开源的消息系统.由Scala编写,它具备以下特点: ①消息持久化: 为了从大数据中获取有价值的信息,任何信息的丢失都是负担不起的.使用Kafka时,message会被存储并且 ...
- java 模拟浏览器发送post请求
java使用URLConnection发送post请求 /** * 向指定 URL 发送POST方法的请求 * * @param url * 发送请求的 URL * @param param * 请求 ...
- [work]Spring_Jdbc
封装Spring-RowMapper,使得使用更加灵活 import java.sql.ResultSet; import java.sql.SQLException; import java.uti ...
- android 实现一个简单纯文本的ListView
思维线路: 1.创建一个ListViewActivity,LinearLayout布局里写了一个ListView布局 2.创建一个TextView布局给ArrayAdapter适配器使用 3.将Tex ...
- 改变jupyter notebook默认初始文件路径 - 关于快捷方式
jupyter notebook home path changing - %USERFROFILE% and Configure file 如何改变jupyter notebook默认初始文件路径, ...