ado 访问access数据库,已与DataGrid控件绑定
欲实现:删除数据库中Table1中所有记录后,添加新记录
错误现象:
1) _RecordsetPtr pRecordset;
pRecordset->Delete(adAffectAll);//出错,为啥?
2)改变方法
_ConnectionPtr pConnection;
_varient_t RecordAffected;
pConnection->Execute((_bstr_t)("DELETE * FROM TABLE1"),&RecordAffected,adCmdText);
pRecordset->AddNew();
pRecordset->PutCollect("ID",(_variant_t)(long)(1);
结果:DataGrid控件并未删除原先表中记录,而是追加记录
3)另一种方法
pRecordset->Open((_bstr_t)("DELETE * FROM TABLE1"),(IDispatch*)pConnection,adOpenDynamic,adLockOptimistic,adCmdText);
pRecordset->AddNew();//出错,WHY?
以前未搞过数据库编程,以上方法纯属个人摸索,望高手指点具体原理
欲实现:删除数据库中Table1中所有记录后,添加新记录
错误现象:
1) _RecordsetPtr pRecordset;
pRecordset->Delete(adAffectAll);//出错,为啥?
2)改变方法
_ConnectionPtr pConnection;
_varient_t RecordAffected;
pConnection->Execute((_bstr_t)("DELETE * FROM TABLE1"),&RecordAffected,adCmdText);
pRecordset->AddNew();
pRecordset->PutCollect("ID",(_variant_t)(long)(1);
结果:DataGrid控件并未删除原先表中记录,而是追加记录
3)另一种方法
pRecordset->Open((_bstr_t)("DELETE * FROM TABLE1"),(IDispatch*)pConnection,adOpenDynamic,adLockOptimistic,adCmdText);
pRecordset->AddNew();//出错,WHY?
以前未搞过数据库编程,以上方法纯属个人摸索,望高手指点具体原理
#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);