您的位置:首页 > 其它

一个关于得到数据源总数以及名字的函数

2008-10-05 00:03 260 查看
////一个关于得到数据源总数以及名字的函数:

bool CMyOdbcBaseDlg::GetSoureServer(CStringArray &aServerList)
{
aServerList.RemoveAll();

SQLHENV _SqlENV;

SQLHDBC _SqlDBC;

short _ConnStrOut;

int iRet = 0;

bool isSuccesed = false;

///设置获取环境句柄
iRet = SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&_SqlENV);
if(iRet == SQL_SUCCESS || iRet == SQL_SUCCESS_WITH_INFO)
{
///设着 连接条件
iRet = SQLSetEnvAttr(_SqlENV,SQL_ATTR_ODBC_VERSION,(void *)SQL_OV_ODBC3,0);
if(iRet == SQL_SUCCESS || iRet == SQL_SUCCESS_WITH_INFO)
{
///设置 连接句柄
iRet = SQLAllocHandle(SQL_HANDLE_DBC,_SqlENV,&_SqlDBC);
if(iRet == SQL_SUCCESS || iRet == SQL_SUCCESS_WITH_INFO )
{
CString strConnStrOut;
////注意这里一点都不能错~!“{SQL Server}“ 当初就多了一个空格什么都找不出来哦

iRet = SQLBrowseConnect(_SqlDBC,_T("Driver={SQL Server}"),SQL_NTS, strConnStrOut.GetBuffer(4824),4824,&_ConnStrOut);

CString strSeps=_T("{}"),strServers,strServer,strToken;
int iFind = strConnStrOut.Find(_T("SERVER:Server="));

SQLDisconnect(_SqlDBC);
}
SQLFreeHandle(SQL_HANDLE_DBC, _SqlDBC);
}
SQLFreeHandle(SQL_HANDLE_ENV, _SqlENV);
}

return isSuccesed;
}

/////但是问题又出现了 这个方法 只能得到 局域网内的 数据源 本地的是得不到的 头痛啊。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐