使用 TSQLConnection 组件,如果我将驱动程序属性设置为 DataSnap ,是否有办法在代码中手动设置该驱动程序的属性?
e.g。 CommunicationProtocol 或 CommunicationIPVersion 。
任何帮助都将不胜感激。
谢谢,
答案 0 :(得分:7)
嗯,SilverWarior描述的并不是那么简单。问题是这些属性是特定于驱动程序的,不能直接从TSQLConnection访问。好的,这是一种方式:
var
dbxProps: TDBXDatasnapProperties;
begin
Assert(SQLConnection1.DriverName = 'DataSnap', 'Driver must be DataSnap');
dbxProps := SQLConnection1.ConnectionData.Properties as TDBXDatasnapProperties;
dbxProps.CommunicationProtocol := 'tcp/ip';
dbxProps.CommunicationIPVersion := 'IPv6';
end;
答案 1 :(得分:1)
您可以将TSQLConnection.Params
属性用于此目的:
列出连接参数。
Params 是列出连接参数的TStrings对象。字符串列表中的每个条目都具有
形式Name=Value
其中Name是参数的名称,Value是其值。如果使用命名连接配置(ConnectionName属性),则在设置
ConnectName
时,将从dbxconnections.ini文件加载每个参数的值。在设计时,您可以通过双击Object Inspector 中的Params属性,使用字符串列表编辑器设置参数值。您设置的任何新值都会覆盖设置ConnectionName时加载的值,除非您在运行时使用LoadParamsFromIniFile或LoadParamsOnConnect加载连接配置。
出现的特定参数取决于数据库服务器。当您设置
DriverName
属性时,Params属性被初始化为包含每个参数的字符串。所有服务器都需要一个特定参数Database
。它的值取决于您使用的服务器。例如,对于InterBase,Database
是.gdb文件的名称,而对于MySQL,它是由CREATE DATABASE
命令分配的数据库名称。
例如:
SQLConnection1.DriverName := 'DataSnap';
SQLConnection1.Params.Values['CommunicationProtocol'] := 'tcp/ip';
SQLConnection1.Params.Values['CommunicationIPVersion'] := 'IPv6';`