数据库:如何在一个程序里使用两个_CRecordset实例

wenson_lin 2002-10-07 09:30:26

我使用ADO,试过用一个
_ConnectionPtr m_pConnection;
两个
_RecordsetPtr m_pRecordset;
_RecordsetPtr m_pRecordset1;

然后这样连接
hr = m_pRecordset.CreateInstance("ADODB.Recordset");
hr = m_pRecordset->putref_ActiveConnection(m_pConnection);

hr = m_pRecordset1.CreateInstance("ADODB.Recordset1");
hr = m_pRecordset1->putref_ActiveConnection(m_pConnection);
编译和链接都没问题,但运行则有问题
我再创建一个 _ConnectionPtr m_pConnection1;
然后这样连接
hr = m_pRecordset.CreateInstance("ADODB.Recordset");
hr = m_pRecordset->putref_ActiveConnection(m_pConnection);
hr = m_pRecordset1.CreateInstance("ADODB.Recordset1");

hr = m_pRecordset1->putref_ActiveConnection(m_pConnection1);
问题依旧。我的两个_ConnectionPtr都是连到同一个数据库的。
我需要在一个数据库里用两个_RecordsetPtr,请问用什么办法解决 ?
...全文
116 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
fupinger 2002-10-17
  • 打赏
  • 举报
回复
_ConnectionPtr m_pConnection;
try
{
m_pConnection.CreateInstance("ADODB.Connection");
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MyDB.mdb","","",adModeUnknown);
}
catch(_com_error e)///捕捉异常
{
AfxMessageBox(e.ErrorMessage ());
}


_RecordsetPtr MySet_Ip,MySet_Port,MyRvoice,MyRchanel;
try
{
MySet_Ip.CreateInstance("ADODB.Recordset");
MySet_Ip=m_pConnection->Execute ("SELECT Server_Ip FROM t_Server_Config",&RecordsAffected,adCmdText);
MySet_Port.CreateInstance("ADODB.Recordset");
MySet_Port=m_pConnection->Execute ("SELECT Server_Port FROM t_Server_Config",&RecordsAffected,adCmdText);

MyRvoice.CreateInstance("ADODB.Recordset");
MyRvoice=m_pConnection->Execute ("SELECT Record_Voice FROM t_Record_Voice",&RecordsAffected,adCmdText);
MyRchanel.CreateInstance("ADODB.Recordset");
MyRchanel=m_pConnection->Execute ("SELECT Record_Chanel FROM t_Record_Voice",&RecordsAffected,adCmdText);
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());///显示错误信息
}

_variant_t Holder_Ip,Holder_Port,Holder_Rvoice,Holder_Rchanel;
try
{
handldata();
}
catch
{
AfxMessageBox(e.ErrorMessage());///显示错误信息
}

MySet_Ip->Close ();
MySet_Port->Close();

MyRvoice->MoveFirst ();
MyRchanel->MoveFirst ();
MyRvoice->Close ();
MyRchanel->Close();

m_pConnection->Close();

这是我完成的一个项目中的部分代码,全部调试通过,没有问题的。

wenson_lin 2002-10-08
  • 打赏
  • 举报
回复
我不是同时指向一个数据集的,只是用两个_RecordsetPtr 变量同时指向两个不同的表。
zlxcjy 2002-10-07
  • 打赏
  • 举报
回复
不太明白你想干什么,再说清楚些,出了什么问题?

两个_RecordsetPtr是否想指向不同记录?可以实现的,我用过。
Tasehouny 2002-10-07
  • 打赏
  • 举报
回复
m_pRecordset1.CreateInstance("ADODB.Recordset1"); ??
是不是有错?“ADODB.Recordset1” ??我觉得应该改成ADODB.Recordset
runnersun 2002-10-07
  • 打赏
  • 举报
回复
同时指向一个数据集不行,会发现数据操作违例。
wenson_lin 2002-10-07
  • 打赏
  • 举报
回复
是啊,指向两个不太的记录,你用的是什么方法啊,把代码和说明贴出来看一看好吗?
发帖
数据库

3986

社区成员

VC/MFC 数据库
社区管理员
  • 数据库
加入社区
帖子事件
创建了帖子
2002-10-07 09:30
社区公告
暂无公告