用vc连接本地数据库,源码如下: _bstr_t SqlserverConn=(LPCTSTR)constring;

try{
                   _ConnectionPtr con;
con.CreateInstance(_uuidof(Connection)); con->Open("Provider=SQLOLEDB;DRIVER=SQL Server;Data Source=local;Initial Catalog=test","123","123",NULL);
AfxMessageBox("opened");//test
con->Close();
}
catch(_com_error &e)
{
::MessageBox(NULL,e.Description(),"警告",MB_OK | MB_ICONWARNING);
} }
运行后,怎么都连不到数据库,可是我用查询器却可以登录,不知道怎么回事?

解决方案 »

  1.   

    记得加上CoInitialize(NULL);初始化连接Oracle
    strConnection.Format("Provider=SQLOLEDB;SERVER=%s;DATABASE=%s;UID=%s;PWD=%s", strDBServer, strDBName, strUserName, strPassword);
    try
    {
         m_pConnection->Open(strConnection.GetBuffer(0), "", "", -1);
    }
         catch(_com_error e)
    {
    }
      

  2.   

    hr=pConn->Open( "driver={SQL Server};Server=192.168.0.69;DATABASE=zwks;UID=sa;PWD=", "", "", adModeUnknown );将local换成自己的ip试试
      

  3.   

    程序初始化的时候加CoInitialize(NULL);
    程序退出的时候::CoUninitialize();释放程序占用的COM 资源。
      

  4.   

    to checkvc6:
    还是不行啊。
      

  5.   

    怎么没人理了???我觉得就是open这个函数有问题,因为在它之前加messagebox,可以显示出来,在之后加消息框函数,就跳出“无效指针”的错误消息。不知道哪里出现问题了。
      

  6.   

    参考
    http://expert.csdn.net/Expert/topic/2652/2652510.xml?temp=8.181399E-02