Collection Contents 上一页 下一页 PDF

MobiLink 和远程数据访问的 ODBC 驱动程序

iAnywhere Solutions ODBC Driver for Sybase Adaptive Server Enterprise

使用连接字符串连接到数据源


如果应用程序要求使用连接字符串连接到数据源,则必须指定数据源名称,告诉驱动程序使用系统信息中的哪一部分作为缺省连接信息。或者,也可以在连接字符串中指定 attribute=value 对,替换在系统信息中存储的缺省值。不会将这些值写入系统信息中。

可以在连接字符串中指定长名称或短名称。连接字符串的格式为:

DSN=data_source_name[;attribute=value[;attribute=value]...]

Adaptive Server Enterprise 的连接字符串的示例如下:

DSN=SYS11 TABLES;SRVR=QESRVR;DB=PAYROLL;UID=JOHN;PWD=XYZZY

下表给出了每个属性的长名称和短名称以及说明。要在 UNIX 环境中配置数据源,您必须编辑系统信息文件。此文件只接受属性的长名称。

有关编辑此文件的信息,请参见 UNIX 快速入门

如果在连接字符串或系统信息内的数据源定义中未指定任何值,则使用表中列出的初始缺省值。如果在配置数据源时指定了该属性的值,则将该值作为缺省值。

大多数设置可保留其缺省值。有关使用 MobiLink 时的关键驱动程序设置的列表,请参见 MobiLink 和 Adaptive Server Enterprise 的关键设置

属性 说明
AppCodePage (ACP) AppCodePage 已由 IANAAppCodePage (IACP) 替代。请参见以下内容。
ApplicationName (APP) Sybase 用于标识应用程序的名称。
ApplicationUsingThreads (AUT) ApplicationUsingThreads={0|1}。确保该驱动程序可在多线程应用程序中正常工作。

在设置为 1(初始缺省值)时,该驱动程序是线程安全的。

在单线程应用程序中使用该驱动程序时,可将此选项设置为 0,以避免 ODBC 线程安全标准所需要的额外处理。

ArraySize (AS) 驱动程序从服务器检索时一次读取的行数。这不是提供给用户的行数。它可以减少网络通信量,从而提高性能。

初始缺省值为 50 行。

Charset (CS) 字符集的名称。此字符集必须安装在 Sybase 服务器上。缺省值为 Sybase 服务器上的设置。要使此驱动程序支持 Unicode,必须将该属性设置为 UTF-8。有关有效字符集名称的列表,请参见 Sybase 服务器文档。
CursorCacheSize (CCS) 连接高速缓存可以容纳的连接数。若要设置连接高速缓存,必须将 SelectMethod attribute 设置为 1。增加连接高速缓存可以提高一些应用程序的性能,但需要额外的数据库资源。

初始缺省值为 1(一个游标)。

Database (DB) 要连接到的数据库的名称。
DataSourceName (DSN) 标识与 Sybase 数据库的单一连接的字符串。示例包括"Accounting"或"Sys10-Serv1"。
DefaultLongDataBuffLen (DLDBL) 一个大小为 1024 字节的倍数的整数值,用于指定从 TEXT 或 IMAGE 列读取的数据的最大长度。如果任何长数据的总大小超过 1 MB,则需要增大此值。

缺省值为 1024。

DistributedTransactionModel (DTM) DistributedTransactionModel={XA Protocol0 21| Native OLE}。决定分布式事务支持使用的模型。初始缺省值为 XA Protocol。

请将此选项保留为缺省设置。

EnableDescribeParam (EDP) EnableDescribeParam={0|1}。决定是否启用 ODBC API 函数 SQLDescribeParam。

设置为 0(初始缺省值)时,禁用 SQLDescribeParam。

设置为 1 时,启用 SQLDescribeParam,此时允许应用程序在 SQL 语句和存储过程调用中描述参数。若要使用此选项,必须将 OptimizePrepare 设置为 0 或 1,并且 SQL 语句一定不能包含长参数。使用 Microsoft Remote Data Objects (RDO) 访问数据时,应将此属性设置为 1。

EnableQuotedIdentifiers (EQI) EnableQuotedIdentifiers={0|1}。启用以引号括起来的标识符。

设置为 0(初始缺省值)时,禁用以引号括起来的标识符。

设置为 1 时,启用以引号括起来的标识符。

FailoverNetworkAddress (FNA) 指定在发生连接丢失时所使用的高可用性 (HA) 故障切换服务器的地址。驱动程序会检测删除的连接,并自动重新连接到此属性指定的 HA 故障切换服务器。此属性仅对启用了高可用性故障切换功能的 Sybase 版本 12 或更高版本的服务器有效。

有关有效值的说明,请参见 NetworkAddress 属性的说明。

IANAAppCodePage (IACP) IANAAppCodePage 连接字符串属性的值中列出了此属性的有效值。指定的代码页必须与应用程序使用的代码页相同。UNIX 上的驱动程序通过按照以下顺序检查 IANAAppCodePage 的值来确定应用程序代码页的值:
  • 在连接字符串中

  • 在系统文件 (odbc.ini) 的 DataSource 部分

  • 在系统文件 (odbc.ini) 的 ODBC 部分

如果未找到 IANAAppCodePage 值,驱动程序将使用缺省值 4 (ISO 8859-1 Latin-1)。

注意:IANAAppCodePage 连接字符串属性替代了 Connect for ODBC 早期版本中的 AppCodePage 连接字符串属性。驱动程序向后兼容 AppCodePage 属性,但您现在必须使用 IANAAppCodePage 属性。

InitializationString (IS) InitializationString={Sybase set commands;...}。支持在连接时执行 Sybase 命令。多个命令之间必须以分号分隔。
InterfacesFile (IF) 指定接口文件的路径名。如果不为此属性指定值,但为 Interfaces File Server Name 属性指定值,驱动程序会在注册表的 HKEY_LOCAL_MACHINE\SOFTWARE\DataDirect\InterfacesFile 下查找接口文件的路径名。如果此注册表项的值为空,驱动程序将尝试打开在驱动程序所在的同一目录下找到的 SQL.INI 文件,并将其用作接口文件。
InterfacesFileServerName (IFSN) 指定接口文件中包含要访问的 Sybase 服务器的网络连接信息的部分的名称。此部分名称通常为包含要访问的 Sybase Server 的服务器的主机名。
Language (LANG) 本国语言。必须在 Sybase 服务器上安装此语言。

初始缺省值为 English。

LogonID (UID) 用于连接到 Sybase 数据库的缺省登录 ID。此 ID 区分大小写。只有在数据库上启用了安全机制的情况下,才需要登录 ID。如果是这样,请与您的系统管理员联系以获取您的登录 ID。
NetworkAddress (NA) 网络地址取决于在 [Network Library Name] 字段和 Sybase 服务器上选择的网络协议。如果选择的是 Winsock,则可按如下方式指定 IP 地址:"servername-or-IP-address, port-number"。例如,如果网络支持命名的服务器,可以指定类似"Sybaseserver, 5000"这样的地址。也可以将 IP 地址直接指定为类似"199.226.224.34, 5000"这样的地址。

如果选择了 NamedPipes 作为网络协议,则必须指定服务器的管道地址。例如,"\\machine1\sybase\pipe\query"

NetworkLibraryName (NLM) NetworkLibraryName={Winsock|NamedPipes}。网络库的名称。它指定所使用的网络协议。

初始缺省值为 Winsock。

此选项对 UNIX 无影响。在 UNIX 上,使用的是 TCP/IP。

OptimizePrepare (OP) OptimizePrepare={0|1|2|3}。决定是否在服务器上为调用 SQLPrepare 创建存储过程。

用于 MobiLink 时,请将此参数设置为 2。

设置为 0 时,将为对 SQLPrepare 的每个调用创建存储过程。在处理不包含参数的语句时,此设置会导致性能下降。

设置为 1(初始缺省值)时,驱动程序仅在语句包含参数时才创建存储过程。不过,语句会放在高速缓存中,且会在运行 SQLExecute 时直接执行。

如果设置为 2,则永远不会创建存储过程。驱动程序会将语句放在高速缓存中,且会在运行 SQLExecute 时直接执行它并报告任何语法或类似错误。

如果设置为 3,则永远不会创建存储过程。除了任何语法或类似错误在运行 SQLPrepare(而非 SQLExecute)时返回外,这与值为 2 的情形相同。请仅在必须在运行 SQLPrepare 时报告语法错误的情况下使用此设置。

PacketSize (PS) 设置为 -1 时,驱动程序会在第一次连接到数据源时计算允许的最大包大小,并将计算结果保存在系统信息中。

设置为 0(初始缺省值)时,驱动程序使用在 Sybase 服务器配置中指定的缺省包大小。

设置为 x(从 1 到 1024 的整数)时,驱动程序使用 x 与 512 字节的乘积所代表的包大小。例如,PacketSize=6 意味着将包大小设置为 6 * 512 字节(3072 字节)。

若要利用此连接属性,为 Sybase 服务器配置的最大网络包大小必须大于或等于为 PacketSize 指定的值。例如:

sp_configure "maximum network packet size", 5120
reconfigure
Restart Sybase Server
注意:ODBC 规范指定的连接选项 SQL_PACKET_SIZE 提供了相同的功能。为避免与可能同时设置了连接字符串属性和 ODBC 连接选项的应用程序发生冲突,已将这两者定义为互相排斥。如果指定了 PacketSize,则在尝试调用 SQL_PACKET_SIZE 时,会收到消息 [驱动程序不支持]。如果不设置 PacketSize,则驱动程序会接受应用程序对 SQL_PACKET_SIZE 的调用。
Password (PWD) 口令,区分大小写。
RaiseErrorPositionBehavior (REPB) RaiseErrorPositionBehavior={0|1}。指定在遇到 raiserror 的情况下返回错误的时间和定位游标的位置。

设置为 0(初始缺省值)时,raiserror 与周围的语句分开处理。当 raiserror 通过 SQLExecute、SQLExecDirect 或 SQLMoreResults 处理时,返回错误。结果集是空的。

设置为 1(MS 兼容)时,raiserror 与下一条语句一起处理。处理下一条语句时返回错误,游标定位在产生的结果集的第一行。这可能导致一次执行返回多个 raiserror。

SelectMethod (SM) SelectMethod={0|1}。决定数据库游标是否用于 SELECT 语句。

设置为 0(初始缺省值)时,使用数据库游标。在一些情况下,在执行大量连续的 SELECT 语句时会降低性能,因为与创建数据库游标相关的开销量也会急剧增加。

设置为 1 时,SELECT 语句可在不使用数据库游标的情况下直接运行,而数据源限于一个活动语句。

若要设置连接高速缓存,必须将 SelectMethod 设置为 1。有关详细信息,请参见前面的 CursorCacheSize。

TightlyCoupled DistributedTransactions (TCDT) TightlyCoupledDistributedTransactions={0|1}。决定驱动程序在连接到 Adaptive Server Enterprise 版本 12 或更高版本的数据库时是否使用紧密结合的分布式事务。设置为 1(初始缺省值)时,驱动程序使用此类型的事务,且同一分布式事务中的多个连接不遵循彼此的锁。

设置为 0 时,驱动程序的整体性能较高,但同一分布式事务中的多个连接可能会互相挂起,因为这些连接不遵循彼此的锁。

此属性仅在驱动程序在分布式事务中被征用时或在驱动程序连接到 Sybase 版本 12 或更高版本的数据库时有效。其它情况下,此属性将被忽略。

WorkstationID (WKID) 客户端使用的工作站 ID。
XAOpenStringParameters (XAOSP) 指定跟踪文件名。使用语法 -Ltrace_filename,其中 trace_filename 指定要创建的两个跟踪文件的名称。第一个跟踪文件将跟踪所有的 XA 调用活动,其名称就是您指定的名称。第二个跟踪文件将跟踪所有征用过程和取消征用过程,其名称将是在您指定的名称后加"driver"扩展名。例如,如果指定 XAtrace 作为文件名,驱动程序将创建如下的两个跟踪文件:XAtrace 和 XAtrace.driver。

Collection Contents 上一页 下一页 PDF