探讨ODBC的API函数SQLBrowseConnect的使用
研究SQLBrowseConnect函数的使用,屡屡碰壁,希望可以在这里解决…
先贴代码,后上图片。首先,代码如下:
引用+声明:
#include <sqlext.h>#define BRWS_LEN 100
SQLHENV henv; SQLHDBC hdbc; SQLHSTMT hstmt; SQLRETURN rtcode; SQLCHAR szConnStrin[BRWS_LEN],szConnStrOut[BRWS_LEN]; SQLSMALLINT cbConnStrOut; //Allocate Environment Handle rtcode=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv); if (rtcode==SQL_SUCCESS||rtcode==SQL_SUCCESS_WITH_INFO) { //Environment Attribute Settings rtcode=SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,SQL_IS_INTEGER); if (rtcode==SQL_SUCCESS||rtcode==SQL_SUCCESS_WITH_INFO) { //Allocate Connect Handle rtcode=SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc); if (rtcode==SQL_SUCCESS||rtcode==SQL_SUCCESS_WITH_INFO) { //First Call SQLBrowseConnect rtcode=SQLBrowseConnect(hdbc,(SQLCHAR *)"Driver={SQL Server};",SQL_NTS, szConnStrOut,BRWS_LEN,&cbConnStrOut); if (rtcode==SQL_NEED_DATA) { MessageBox((char *)szConnStrOut,"Tips",MB_OK); } SQLDisconnect(hdbc); //Second Call SQLBrowseConnect rtcode=SQLBrowseConnect(hdbc,(SQLCHAR *)"Driver={SQL Server};SERVER=(local);UID=sa;PWD='';",SQL_NTS, szConnStrOut,BRWS_LEN,&cbConnStrOut); if (rtcode==SQL_NEED_DATA) { MessageBox((char *)szConnStrOut,"Tips",MB_OK); } if (rtcode==SQL_SUCCESS||rtcode==SQL_SUCCESS_WITH_INFO) { MessageBox("数据源连接成功!","信息提示",MB_OK); } SQLDisconnect(hdbc); } } SQLFreeHandle(SQL_HANDLE_DBC,hdbc); } SQLFreeHandle(SQL_HANDLE_ENV,henv);