如何枚举一个局域网中的SQL server 服务器

解决方案 »

  1.   

    classwizard->addclass->from type library 选择sqldmo.dll,sqldmo.hlp是帮助文件。
    程序如下:
    _Application goApp;
    HRESULT hr;
    if FAILED(hr=CoInitialize(NULL))
    {
    TRACE("³õʼ»¯SQLDMO×é¼þʧ°Ü£¡\n");
    return FALSE;
    }
    if(!goApp.CreateDispatch("SQLDMO.Application")){
    TRACE("´´½¨SQLDMO.Applicationʧ°Ü£¡\n");
    CoUninitialize();
    return FALSE;
    } NameList gonl(goApp.ListAvailableSQLServers());
    VARIANT v;
    v.vt=VT_I4;
    v.lVal = 2;
    for(int i=1;i<=gonl.GetCount();i++)
    {
    v.lVal=(long ) i;
    m_cmbServer.AddString(gonl.Item(v));
    }
    if (m_cmbServer.GetCount() == 0 )
    {
    m_cmbServer.AddString("(local)");
    }
    m_cmbServer.SetCurSel(0);
    gonl.ReleaseDispatch();
    goApp.ReleaseDispatch(); CoUninitialize();
    return TRUE;
      

  2.   

    classwizard->addclass->from type library 选择sqldmo.dll,sqldmo.hlp是帮助文件。
    程序如下:
    _Application goApp;
    HRESULT hr;
    if FAILED(hr=CoInitialize(NULL))
    {
    TRACE("&sup3;&otilde;&Ecirc;&frac14;&raquo;&macr;SQLDMO×é&frac14;&thorn;&Ecirc;§°&Uuml;&pound;&iexcl;\n");
    return FALSE;
    }
    if(!goApp.CreateDispatch("SQLDMO.Application")){
    TRACE("&acute;&acute;&frac12;¨SQLDMO.Application&Ecirc;§°&Uuml;&pound;&iexcl;\n");
    CoUninitialize();
    return FALSE;
    } NameList gonl(goApp.ListAvailableSQLServers());
    VARIANT v;
    v.vt=VT_I4;
    v.lVal = 2;
    for(int i=1;i<=gonl.GetCount();i++)
    {
    v.lVal=(long ) i;
    m_cmbServer.AddString(gonl.Item(v));
    }
    if (m_cmbServer.GetCount() == 0 )
    {
    m_cmbServer.AddString("(local)");
    }
    m_cmbServer.SetCurSel(0);
    gonl.ReleaseDispatch();
    goApp.ReleaseDispatch(); CoUninitialize();
    return TRUE;