以下都是在DELPHI XE10.2中测试通过
FireDAC supports three distinct options for connecting to your database. These are:
一、Temporary connections (临时)
1)通过控件FDConnection直接创建
通过从FIREDAC标签处拖入FDConnection到窗口中,效果如下图
双击FDConnection1,出下图
上图中需注意 必选 DRIVE ID ,DATABASE,PASEWORD,USER_NAME,SERVER
如是本机,SERVER处可填127.0.0.1;
按OK,即可。
2)、Defining a Temporary Connection Using FDConnection.Params(通过FDConnection.Params创建临时连接)
上例中添加TFDPhysMSSQLDriverLink中窗口中
在窗口CREATE中添加如下代码
procedure TForm1.FormCreate(Sender: TObject);
begin
{需添加TFDPhysMSSQLDriverLink到窗口中}
FDConnection1.Params.Add('Database=salesdb');
FDConnection1.Params.Add('password=123');
FDConnection1.Params.Add('User_Name=sa');
FDConnection1.Params.Add('Server=win7server');
FDConnection1.Params.Add('DriverID=mssql');
FDConnection1.Connected:=true;
FDQuery1.Open;
end;
或者采取如下代码
procedure TForm1.FormCreate(Sender: TObject);
begin
FDConnection1.ConnectionString := 'Database=' +
'salesdb;' +
'User_Name=sa;password=123;Server=win7server;DriverID=MSSQL';
FDConnection1.Connected:=true;
FDQuery1.Open;
end;
3)、Creating a Named Connection Definition Using the FireDAC Explorer(通过tools/FireDAC Explorer 创建连接)
在CONNECTION Definition右击选择connection Definition
支持对连接重命名(右击目标连接,选择重命名)
最后要注意,右击目标连接 APPLY 一次,保存之后,重启 DELPHI XE 10 ,在右侧
把连接名ConnectionDef1拖入空口即可,ConnectionDef1下的所有项目都支持拖动到窗口哟,然后Connected:=true 就好了。
二、Persistent connections (持久)
A persistent connection employs a named connection whose definition exists in an external ini file. This named connection may be created at either design time or at runtime.
可通过注册表或INI文件来创建;
(一)、用记事本创建一个新的文件,输入以下内容:
[conn.ini]
Encoding=UTF8
REM Connections not related to this discussion appear here
[MSsql]
DriverID=MSSQL
Protocol=TCPIP
Database=salesdb
User_Name=sa
Password=123
Server=win7server
CharacterSet=
ExtendedMetadata=Tru
然后别存为
把此CONN.INI文件复制到你的应用文件夹下
之后在窗口CREATE中输入以下代码
procedure TForm1.FormCreate(Sender: TObject);
begin
FDManager.ConnectionDefFileName :=
ExtractFilePath(ParamStr(0)) + 'conn.ini';
FDConnection1.ConnectionName := 'MSsql'; //跟CONN.INI中的第二个括号中的MSsqL一致
FDConnection1.Open;
FDQuery1.Active:=true;
end;
效果跟 前面的一致。(可以共享给其它程序用哟)
三、 Private connections (专用)
直接上代码
procedure TForm1.FormCreate(Sender: TObject);
var
Params: TStrings;
begin
Params := TStringList.Create;
try
Params.Add('Database=salesdb' );
Params.Add('User_Name=sa');
Params.Add('password=123');
Params.Add('Server=win7server');
Params.Add('Pooled=True');
Params.Add('DriverID=mssql');
FDManager.AddConnectionDef('mssql_test', 'mssql', Params);
{ mssql_test随便取名,MSSQL是MSSQL SERVER的驱动名称,我用的是 MSSQL SERVER ,所以用MSSQL;
如果你用的是INTEBASE的数据库,其结构类似如下:}
{Params.Add('Database=' +
'C:\Users\Public\Documents\Embarcadero\' +
'Studio\19.0\Samples\Data\EMPLOYEE.GDB');
Params.Add('User_Name=sysdba');
Params.Add('Server=127.0.0.1');
Params.Add('Pooled=True');
Params.Add('DriverID=IB');
FDManager.AddConnectionDef('IB_EMPLOYEE', 'IB', Params);}
finally
Params.Free;
end;
FDConnection1.ConnectionDefName := 'mssql_test';
FDConnection1.Connected := True;
FDQuery1.Active:=true;
end;