描述:
如果我在客户端直接得到记录集指针,可以顺利
插入记录到数据库。如下:
//pRS记录集智能指针
pRS->AddNew();///添加新记录
pRS->PutCollect("D_No",_variant_t((long)(i_DNo)));
//..............
pRS->Update();
但是 如果将对数据库的操作函数放在服务器端,而在
客户端操作就会出现下面的问题:
客户端:
void CCOMADO::AddRStoS_Info
(
int i_No,
CString p_strName,
CString p_strSex,
CString p_strBirthday,
CString p_strClass,
CString p_strDepartment
)
{
pDBPtr->AddNew();///添加新记录,但是这条语句不能执行过去,
//如果注释掉,数据能够插入,但是只是
//覆盖掉了第一条记录。
AfxMessageBox("AddRStoS_Info");
long aa=0;
BSTR temp;
pDBPtr->PutCollect_8(aa,i_No);
aa++;
pDBPtr->PutCollect_22(aa,p_strName.AllocSysString());
// AfxMessageBox("name");
aa++;
//.........
}
服务器端:
STDMETHODIMP CCOMDB::PutCollect_8.....
//........
STDMETHODIMP CCOMDB::AddNew()
{
try
{ MessageBox(NULL,"1","1",MB_OK);
if (m_spADORecordset != NULL)
{ MessageBox(NULL,"2","2",MB_OK);
if (SUCCEEDED(m_spADORecordset->AddNew()))
{ m_spADORecordset->AddNew();
MessageBox(NULL,"CCOMDB::AddNew()","CCOMDB::AddNew()",MB_OK);
//return S_OK;
}
}
}
catch (_com_error e)
{
return E_FAIL;
}
return S_OK;
}
请问这个问题怎么解决?
先谢谢大家。