在用VC连接sql server 2005时,出现如下错误:我跟踪查错了,就是在连接时出了问题,具体位置是在pConn->Open("","","",adConnectUnspecified);
以下是我的原代码:
CoInitialize(NULL);
_ConnectionPtr pConn=NULL;
pConn.CreateInstance(__uuidof(Connection));
_RecordsetPtr pRs=NULL;
pRs.CreateInstance(__uuidof(Recordset));
try
{
pConn->ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=denglu;Data Source=.";
pConn->Open("","","",adConnectUnspecified);//出错位置
pRs = pConn->Execute("select * from dbo.denglu",NULL,adCmdText);
while(!pRs->adoEOF)
{
((CListBox*)GetDlgItem(IDC_LIST1))->AddString((_bstr_t)pRs->GetCollect("UserName"));
pRs->MoveNext();
}
}
catch(_com_error e)
{
CString str;
str.Format("数据库连接失败!\r\n 错误信息 %s",e.ErrorMessage());
MessageBox(str,"错误信息",MB_OK);
pConn->Close();
pConn.Release();
pRs->Close();
pRs.Release();
}
pConn->Close();
pConn.Release();
pRs->Close();
pRs.Release();CoUninitialize();

解决方案 »

  1.   

    你都没有设置数据源,连接SQL Server 的Open函数原型是
    Open("drive={SQL Server};Server=127.0.0.1;DATABASE=databasename;UID=sa;PWD=password","","",adModeUnknown)
    你把server改成数据库的IP或计算机名,DATABASE改成数据库名,PWD改成你的数据库sa的密码就可以连接了
      

  2.   

    1.在工程的Cxx.cpp(在A工程中的CAApp类中)的InitInstance()函数中
      /*********初始化COM库***************/
      在MFC中可以用AfxOleInit();
      非MFC环境中用:     
      CoInitialize(NULL);   
      CoUnInitialize();   
    2.在StdAfx.h中
     #import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
    3.为程序添加数据库连接函数OnInitADOConn(),函数名可以任取
    void CDataConDlg::OnInitADOConn()
    {
    /***********连接数据库**************/
    try
    {
         m_pConnection.CreateInstance("ADODB.Connection");
                 /*****************Catalog为你的数据库的名称********************************/
         CString strConnect="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=FXL;Data Source=.;";
         m_pConnection->Open((_bstr_t)strConnect,"","",adModeUnknown);
            }
    catch(_com_error e)
    {
    AfxMessageBox(e.Description());
    }
    /************数据库连接成功********************/}
      

  3.   

    如果你用的是VS2008,可以在 tools->connect to database里试一下可以连接到数据库不,还有就是你的数据库安装时设置的验证模式,最好选混合模式,意思是可以windows验证也可以SA验证
      

  4.   

    这是我在调试时出现的一些信息,希望你们看了后能够帮帮小弟,小弟于遇到这个问题已经有半个多月了,一直没有得到解决:
    Loaded 'ntdll.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\kernel32.dll', no matching symbolic information found.
    Loaded symbols for 'C:\WINDOWS\system32\MFC42D.DLL'
    Loaded symbols for 'C:\WINDOWS\system32\MSVCRTD.DLL'
    Loaded 'C:\WINDOWS\system32\gdi32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\user32.dll', no matching symbolic information found.
    Loaded symbols for 'C:\WINDOWS\system32\MFCO42D.DLL'
    Loaded 'C:\WINDOWS\system32\ole32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\advapi32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\rpcrt4.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\secur32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\msvcrt.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\oleaut32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\imm32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\lpk.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\usp10.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\mfc42loc.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\comctl32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\uxtheme.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\MSCTF.dll', no matching symbolic information found.
    Loaded 'D:\安装软件\360\360safe\safemon\safemon.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\shell32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\shlwapi.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\msimg32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\wininet.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\crypt32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\msasn1.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\psapi.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\version.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\ws2_32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\ws2help.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\urlmon.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83\comctl32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\msctfime.ime', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\clbcatq.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\comres.dll', no matching symbolic information found.
    Loaded 'C:\Program Files\Common Files\System\ado\msado15.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\msdart.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\comdlg32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\xpsp2res.dll', no matching symbolic information found.
    Loaded 'C:\Program Files\Common Files\System\Ole DB\oledb32.dll', no matching symbolic information found.
    Loaded 'C:\Program Files\Common Files\System\Ole DB\oledb32r.dll', no matching symbolic information found.
    Loaded 'C:\Program Files\Common Files\System\Ole DB\sqloledb.dll', no matching symbolic information found.
    Loaded 'C:\Program Files\Common Files\System\Ole DB\msdatl3.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\netapi32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\mswstr10.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\mswdat10.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\comsvcs.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\colbact.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\mtxclu.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\wsock32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\clusapi.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\resutils.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\userenv.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\dbnetlib.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\security.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\msapsspc.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\msvcrt40.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\schannel.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\digest.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\msnsspc.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\msvcrt40.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\msv1_0.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\cryptdll.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\iphlpapi.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\ntdsapi.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\dnsapi.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\wldap32.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\mswsock.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\hnetcfg.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\wshtcpip.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\winrnr.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\rasadhlp.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\schannel.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\rsaenh.dll', no matching symbolic information found.
    Loaded 'C:\WINDOWS\system32\dssenh.dll', no matching symbolic information found.
    Loaded 'C:\Program Files\Common Files\System\Ole DB\sqloledb.rll', no matching symbolic information found.
    First-chance exception in Adotext.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.
      

  5.   

    如果你是用的VC2008的话,给个邮箱,和你SQL服务器地址及数据库名,我写好个测试工程给你发过去,看下是不是系统问题
      

  6.   

    我用的是VC6.0的,服务器名是senlinzhiwang,数据库名为denglu,系统是XP SP3的。邮箱是:[email protected]
      

  7.   

    新建个UDL文件,用这个文件连接数据库,然后连接字符串写为"File Name=xxx.udl"
      

  8.   

    这也不行,出现的是“Unknown error”;
      

  9.   

    出现这个问题,首先检查是不是代码的问题。如果不是代码的问题,那肯定就是数据库的问题了。数据库配置有问题。你配置一下数据库就行,主要是配置什么tcp/ip的那些端口。
    这个是后来我自己解决了的。