在用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();
以下是我的原代码:
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();
Open("drive={SQL Server};Server=127.0.0.1;DATABASE=databasename;UID=sa;PWD=password","","",adModeUnknown)
你把server改成数据库的IP或计算机名,DATABASE改成数据库名,PWD改成你的数据库sa的密码就可以连接了
/*********初始化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());
}
/************数据库连接成功********************/}
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.
这个是后来我自己解决了的。