|
使用ODBCAPI编写数据库应用程序(6) StringLength2Ptr 返回的连接字符串中的字符数 DriverCompletion 额外连接信息,可能取值有:SQL_DRIVER_PROMPT, SQL_DRIVER_COMPLETE, SQL_DRIVER_COMPLETE_REQUIRED, or SQL_DRIVER_NOPROMPT. 返回值: SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR, or SQL_INVALID_HANDLE. 成功返回SQL_SUCCESS,如果返回值为SQL_ERROR或SQL_SUCCESS_WITH_INFO,可以用函数SQLGetDiagRec获取相应SQLSTATE的值。
SQLBrowseConnect 函数SQLBrowseConnect支持以一种迭代的方式获取到数据源的连接,直到最后建立连接。它是基于客房机/服务器的体系结构,因此,本地数据库不支持该函数。 一般,我们提供部分连接信息,如果足以建立到数据源的连接,则成功建立连接,否则返回SQL__NEED__DATA,并在OutConnectionString参数中返回所需要的信息。 函数格式: SQLRETURN SQLBrowseConnect(SQLHDBC ConnectionHandle,SQLCHAR* InConnectionString,SQLSAMLLINT StringLength1,SQLCHAR* OutConnectionString,SQLSMALLINT BufferLength,SQLSMALLINT *StringLength2Ptr); 参数: ConnectionHandle 连接句柄 InConnectionString 指向输出字符串的指针 StringLength1 输出字符串的指针长度 OutConnectionString 指向输出字符串的指针 BufferLength 用于存放输出字符串的缓冲区的长度 StringLength2Ptr 实际返回的字符串的长度
返回值: SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR, or SQL_INVALID_HANDLE. 成功返回SQL_SUCCESS,如果返回值为SQL_ERROR或SQL_SUCCESS_WITH_INFO,可以用函数SQLGetDiagRec获取相应SQLSTATE的值。
下面的代码讲述了如何使用ODBC API的SQLBrowseConnect函数建立同数据源的连接。
#define BRWS_LEN 100SQLHENV henv;SQLHDBC hdbc; SQLHSTMT hstmt; SQLRETURN retcode; SQLCHAR szConnStrIn[BRWS_LEN], szConnStrOut[BRWS_LEN]; SQLSMALLINT cbConnStrOut;/* Allocate the environment handle. */ retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv); if (retcode == SQL_SUCCESS ¦¦ retcode == SQL_SUCCESS_WITH_INFO) { /* Set the version environment attribute. */ retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, SQL_OV_ODBC3, 0); if (retcode == SQL_SUCCESS ¦¦ retcode == SQL_SUCCESS_WITH_INFO) { /* Allocate the connection handle. */ retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc); if (retcode == SQL_SUCCESS
|