VC数据库编程 孙鑫老师的《VC++深入详解》中第20章的例子程序出错 runtime error
VC数据库编程求助 孙鑫老师的《VC++深入详解》中第20章的例子程序出错 runtime error
编译顺利通过,运行时出错:
出错信息:
Runtime Error!
Program:F:\soft\VC\ADOTest\Release\ADOTest.exe
This application has requested the Runtime to terminate it in an unusual way.Please contact the application's support team for more information.
程序工程如下,建立一个MFC对话框工程,控件一个按钮和一个列表框,按钮空间ID设置
IDC_BTN_QUERY
程序代码:
1 、在stdafx.h中导入msado15.dll库
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename ("EOF","rsEOF")
2、在button空间的响应函数中添加如下:
void CADOTestDlg::OnBtnQuery()
{
CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset));
pConn->ConnectionString="Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=pubs";
pConn->Open(" "," "," ",adConnectUnspecified);
pRst=pConn->Execute("select * from authors",NULL,adCmdText);
while(!pRst->rsEOF)
{
((CListBox*)GetDlgItem(IDC_LIST1))->AddString((_bstr_t)pRst->GetCollect("au_lname"));
pRst->MoveNext();
}
pRst->Close();
pConn->Close();
pRst.Release();
pConn.Release();
CoUninitialize();
}
3、数据库用的是SQL自带的pubs数据库,WinXP操作系统
4、在孙鑫老师的书上有用VB访问的例子,我试过了,可以成功运行,也是用的这个数据库,不知道为什么在VC上就出现这个问题,我是刚开始学数据库方面的编程,请高手
帮忙。在这先谢谢了。
------解决方案--------------------
pConn- >Open(" "," "," ",adConnectUnspecified);
这个地方不对,第一个参数需要提供,是连接字符,
CString strText="Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=pubs";
pConn->Opne((_bstr_t)strText, "", "", adConnectUnspecified);
编译顺利通过,运行时出错:
出错信息:
Runtime Error!
Program:F:\soft\VC\ADOTest\Release\ADOTest.exe
This application has requested the Runtime to terminate it in an unusual way.Please contact the application's support team for more information.
程序工程如下,建立一个MFC对话框工程,控件一个按钮和一个列表框,按钮空间ID设置
IDC_BTN_QUERY
程序代码:
1 、在stdafx.h中导入msado15.dll库
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename ("EOF","rsEOF")
2、在button空间的响应函数中添加如下:
void CADOTestDlg::OnBtnQuery()
{
CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset));
pConn->ConnectionString="Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=pubs";
pConn->Open(" "," "," ",adConnectUnspecified);
pRst=pConn->Execute("select * from authors",NULL,adCmdText);
while(!pRst->rsEOF)
{
((CListBox*)GetDlgItem(IDC_LIST1))->AddString((_bstr_t)pRst->GetCollect("au_lname"));
pRst->MoveNext();
}
pRst->Close();
pConn->Close();
pRst.Release();
pConn.Release();
CoUninitialize();
}
3、数据库用的是SQL自带的pubs数据库,WinXP操作系统
4、在孙鑫老师的书上有用VB访问的例子,我试过了,可以成功运行,也是用的这个数据库,不知道为什么在VC上就出现这个问题,我是刚开始学数据库方面的编程,请高手
帮忙。在这先谢谢了。
------解决方案--------------------
pConn- >Open(" "," "," ",adConnectUnspecified);
这个地方不对,第一个参数需要提供,是连接字符,
CString strText="Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=pubs";
pConn->Opne((_bstr_t)strText, "", "", adConnectUnspecified);