利用SQLDemo列觉局域网内安装Sqlserver服务器问题???
如题,我想找到本机或者网络内安装有Sqlserver服务器实例的名称 列举出来 代码如下:
但是返回的个数总是为0,不知道为什么 源代码从CodeProject下载。
原因:程序需要启动时候连接Sqlserver服务器,但是填写服务器名称的时候,有的时候不是local 没有办法用IP等访问,
想通过下数方法得到Sqlserver实例列表,供用户选择登录。
try
{
_SQLServerPtr spSQLServer;
HRESULT hr2 = spSQLServer.CreateInstance(__uuidof(SQLServer));
if (SUCCEEDED(hr2))
{
try
{
// Get the Application Ptr
long lServerCount;
_ApplicationPtr pApplication = spSQLServer->GetApplication();
if (pApplication)
{
NameListPtr pServerNameList = pApplication->ListAvailableSQLServers();
if (pServerNameList)
{
lServerCount = pServerNameList->Count; //这一句返回的个数为0??
for (long i=0; i < lServerCount; i++)
{
_bstr_t bstrValue(pServerNameList->Item( i ));
CString sName((LPCSTR)bstrValue);
if (!sName.IsEmpty())
m_ctlComboBox.AddString(sName);
}
}
}
pApplication = NULL;
spSQLServer.Release();
}
catch (_com_error e)
{
spSQLServer.Release();
}
}
else
{
AfxMessageBox("Create Error.");
}
}
catch (_com_error e)
{
AfxMessageBox("Error");
}