使用ado连接access数据库出现的有关问题。求教
使用ado连接access数据库出现的问题。求教
void conn()
{
AfxOleInit();//初始化
HRESULT hr;
try
{
hr=m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr))
{
m_pConnection->ConnectionTimeout=0;
hr=m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=spsp.mdb","", "", adModeUnknown);
//m_pConnection->PutDefaultDatabase ((_bstr_t)"DB");//设置默认数据库
m_pCommand.CreateInstance(__uuidof(Command));
m_pCommand->CommandTimeout=5;
m_pCommand->ActiveConnection=m_pConnection;
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
m_pConnection->put_ConnectionTimeout(long(5));
m_pRecordset.CreateInstance(__uuidof(Recordset));
try //第一个 Recordset对象
{
m_pRecordset->Open("SELECT * FROM a",//
m_pConnection.GetInterfacePtr(), //
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
try //第一个 Recordset对象
{
m_pRecordset->Open("SELECT * FROM a",//
m_pConnection.GetInterfacePtr(), //
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
由于功能上的需要,我需要2个recordset对象指定在一个数据库的同一个表上,互相操作不受影响,我就定义了2个RS对象,但是无法运行。。。报错 请问怎么办??
我必须要2个RS操作同一个表,并且相互之间互不影响(例如rs1的指针指到某一位置 不会因为rs2的移动而移动)!!!求教!!!!
------解决方案--------------------
你只建了一个m_pRecordset啊,建两个,如下
m_pRecordset_first.CreateInstance(__uuidof(Recordset));
m_pRecordset_second.CreateInstance(__uuidof(Recordset));
下同
...
void conn()
{
AfxOleInit();//初始化
HRESULT hr;
try
{
hr=m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr))
{
m_pConnection->ConnectionTimeout=0;
hr=m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=spsp.mdb","", "", adModeUnknown);
//m_pConnection->PutDefaultDatabase ((_bstr_t)"DB");//设置默认数据库
m_pCommand.CreateInstance(__uuidof(Command));
m_pCommand->CommandTimeout=5;
m_pCommand->ActiveConnection=m_pConnection;
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
m_pConnection->put_ConnectionTimeout(long(5));
m_pRecordset.CreateInstance(__uuidof(Recordset));
try //第一个 Recordset对象
{
m_pRecordset->Open("SELECT * FROM a",//
m_pConnection.GetInterfacePtr(), //
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
try //第一个 Recordset对象
{
m_pRecordset->Open("SELECT * FROM a",//
m_pConnection.GetInterfacePtr(), //
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
}
由于功能上的需要,我需要2个recordset对象指定在一个数据库的同一个表上,互相操作不受影响,我就定义了2个RS对象,但是无法运行。。。报错 请问怎么办??
我必须要2个RS操作同一个表,并且相互之间互不影响(例如rs1的指针指到某一位置 不会因为rs2的移动而移动)!!!求教!!!!
------解决方案--------------------
你只建了一个m_pRecordset啊,建两个,如下
m_pRecordset_first.CreateInstance(__uuidof(Recordset));
m_pRecordset_second.CreateInstance(__uuidof(Recordset));
下同
...