zoukankan      html  css  js  c++  java
  • (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:UsersPublicDocumentsEmbarcaderoStudio14.0FireDACFDConnectionDefs.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 文件。

    ·如果文件没有找到,则搜索 HKCUSoftwareEmbarcaderoFireDACConnectionDefFile. 默认是 C:UsersPublicDocumentsEmbarcaderoStudio14.0FireDACFDConnectionDefs.ini.

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

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

    Creating a Persistent Connection Definition

    建立固定连接定义

    可以使用 FDExplorer or FDAdministrator建立固定连接定义。 这是如何在代码中实现。可以看例子 FireDACSamplesComp LayerTFDConnectionConnectionDefs.

    下面代码段建立一个名为 "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.   
    3.   
    4.   TfrmFDGUIxFormsConnEdit * f = new TfrmFDGUIxFormsConnEdit(this);  
    5.   String sConnStr = DSServerModule1->FDConnection1->ResultConnectionDef->BuildString();  
    6.   
    7. if(f->Execute(sConnStr, ""))  
    8. {  
    9.   DSServerModule1->FDConnection1->ResultConnectionDef->ParseString(sConnStr);  
    10.   DSServerModule1->FDConnection1->Connected = True;  
    11. }  
  • 相关阅读:
    sql server 2005的分页函数ROW_NUMBER
    Silverlight 皮肤(主题)动态切换
    Silverlight 地图导航
    WPF模板概述(数据模板)
    Silverlight MVVM Prism WCF RIA项目框架
    多线程通中的AutoResetEvent与ManualResetEvent
    Silverlight 图形报表 线形图 柱形图 饼图
    WPF 重要新概念读书笔记(转)
    Net基本概念和原理
    数据库辅助工具SqlDbx
  • 原文地址:https://www.cnblogs.com/Thenext/p/9715271.html
Copyright © 2011-2022 走看看