ACIServerAttach()¶
-
ACIServerAttach()¶
作用:
为ACI操作创建数据源的访问路径,其实就是创建一个网络连接。本调用在神通数据库中不会创建真实的网络连接,仅仅是将连接字符串传入,做字符串合规性检查。
语法:
sword ACIServerAttach ( ACIServer *srvhp,
ACIError *errhp,
const OraText *dblink,
sb4 dblink_len,
ub4 mode );
参数:
- srvhp (IN/OUT)
一个未初始化的服务句柄,这个调用会将其初始化,如果传入一个已经初始化的服务句柄,将会报错。
- errhp (IN/OUT)
错误句柄,该接口调用失败时,错误信息会存在该句柄上,调用 ACIErrorGet 获得错误信息。
- dblink (IN)
默认模式要关联的数据库服务名。该TNS服务名需要在ACI的配置文件中配置。 连接池模式下,为接口 ACIConnectionPoolCreate 返回的连接池名。
如果NULL,则连接本地数据库:相当于连接:localhost:2003/osrdb
如果 mode=ACI_CPOOL,则这里传入的是用 ACIConnectionPoolCreate 创建的连接池的名称poolName,参数字符编码必须是 ACIEnvNlsCreate 调用指定的charset 参数字符集的字符串。
- dblink_len (IN)
dblink参数的字节长度,只能是非0值。
- mode (IN)
有以下mode可设置:
- ACI_DEFAULT
对于编码,该值告诉服务器句柄使用环境句柄中的设置。
- ACI_CPOOL
使用连接池.
因为可以为任何连接会话句柄设置附加的服务器句柄,所以这里的mode值不影响任何会话句柄.
说明:
此调用用于在ACI应用程序和特定服务器之间创建关联。
此调用假定在连接池生效时调用了 ACIConnectionPoolCreate ,并给出了poolName。
此调用初始化服务器上下文句柄,该句柄必须在调用 ACIHandleAlloc 之前分配。此调用初始化的服务器上下文句柄可以通过调用 ACIAttrSet 与服务上下文相关联。在建立关联之后,可以对服务器执行操作。
如果应用程序针对多个服务器运行,则可以维护多个服务器上下文句柄。ACI操作针对当前与服务上下文关联的服务器上下文执行。