为什么_RecordsetPtr 打开记录集时出错?
如:
//******************数据库初始化********************************************
::CoInitialize(NULL);
_ConnectionPtr pubCn; //ado全局数据库名字
_RecordsetPtr pubRs;
CString strSQL;
BSTR bstrSQL;
pubCn.CreateInstance(__uuidof(Connection));
pubCn->CursorLocation=adUseClient;
strSQL="Provider=MSDAORA.1;Password=space;User ID=SP_main;Data Source=SPMAIN;Persist Security Info=True";
pubCn->Open(_bstr_t(strSQL),"","",-1);
pubRs.CreateInstance(__uuidof(Recordset));
//pubRs->CursorLocation=adUseClient;
//pubRs->PutActiveConnection(pubCn.GetInterfacePtr());
//strSQL="select * from SP_MAIN.CAR_BASEINFO";
if(pubCn->State)
{
strSQL.Format("select * from SP_MAIN.CAR_BASEINFO");
bstrSQL=strSQL.AllocSysString();
pubRs->Open(bstrSQL,(IDispatch*)pubCn,adOpenDynamic,adLockOptimistic,adCmdText);
}
pubRs->Open(bstrSQL,(IDispatch*)pubCn,adOpenDynamic,adLockOptimistic,adCmdText);
就在这里打开记录集时出错,没有任何提示,请问是什么原因?
问题点数:0、回复次数:6Top
1 楼bobob(静思)回复于 2005-01-04 11:11:24 得分 0
那一行出错?Top
2 楼xianghai(想海)回复于 2005-01-04 11:20:56 得分 0
pubRs->Open(bstrSQL,(IDispatch*)pubCn,adOpenDynamic,adLockOptimistic,adCmdText);
就在这里打开记录集时出错,没有任何提示,请问是什么原因?
Top
3 楼hjunxu(hjun)回复于 2005-01-04 11:21:18 得分 0
加上
try{
}catch( _com_error &e)
{}
Top
4 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-01-04 11:38:05 得分 0
try catch捕捉一下错误Top
5 楼llm06(blacksheep)回复于 2005-01-04 12:16:22 得分 0
strSQL.Format("select * from SP_MAIN.CAR_BASEINFO");
这句话好像有问题
你既然已经使用了sp_main来连接数据库,那么不需要再添加sp_main.
strSQL.Format("select * from CAR_BASEINFO");Top
6 楼gooyan(超级替补)回复于 2005-01-07 23:24:53 得分 0
1.stdafx.h中加入
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
2。app文件的InitInstance中加入
if(S_OK!=OleInitialize(NULL))
{
AfxMessageBox("初始化COM组件库错误");
}
下面就是数据库操作
_ConnectionPtr pConn;
_RecordsetPtr pRs;
CString strSQL;
pConn.CreateInstance(__uuidof(Connection));
pConn->CursorLocation=adUseClient;
strSQL="Provider=SQLOLEDB;Server=Gooyan;DataBase=SkillsBox;UID=sa;PWD=aaaaaaaa";
pConn->Open(_bstr_t(strSQL),"","",-1);
pRs.CreateInstance(__uuidof(Recordset));
pRs->CursorLocation=adUseClient;
pRs->PutActiveConnection(pConn.GetInterfacePtr());
pRs1.CreateInstance(__uuidof(Recordset));
pRs1->CursorLocation=adUseClient;
pRs1->PutActiveConnection(pConn.GetInterfacePtr());
strSQL="select * from catalog order by cataid";
pRs->Open(_bstr_t(strSQL),vtMissing,adOpenDynamic,adLockBatchOptimistic,adCmdText);
Top




