一个简单数据库问题,非常急,希望有人帮我
如下源代码
void CODBCDlg::OnOK()
{
// TODO: Add extra validation here
CDatabase db;
CRecordset rs;
db.Open("test");
rs.m_pDatabase=&db;
rs.Open(CRecordset::forwardOnly,_T("Select * from content"));
if(rs.GetRecordCount!=0)
AfxMessageBox("have");
CDialog::OnOK();
}
rs这个记录集已经显示有记录了,可是我不会增加记录
调用rs.AddNew()方法后该怎么写,望告知!
下面的是我所知道的一点,yourrecord是不是我创建的记录集rs?
xxx,yyy是不是表里面的字段名?
rs.AddNew();
yourRecord.xxx= dlg.xxx
yourRecord.yyy =dlg.yyy
...
yourRecord.Update();
纪录就加进去了
问题点数:0、回复次数:9Top
1 楼onlyforme()回复于 2003-06-03 18:05:41 得分 0
MFC CRecordset 要想实现AddNew 的话得先从你数据库表中派生一个CRecordset 类如CXXX,对个类实现CXXX AddNew才可以的。不能直接对CRecordset AddNew()
因些你还要一个ODBC连接劝你还是用智能指针吧!
Top
2 楼bm1408(向va_list学习~不用VC好多年~)回复于 2003-06-03 18:07:05 得分 0
思路混乱!
要把这几个类弄明白!Top
3 楼wannaqxy(晓宇)回复于 2003-06-03 22:40:48 得分 0
我试过的,重新从CRecordset类中派生出一个CMyRecordset类,也帮他连接了同样的数据源
以下是添加代码
void CTestDBDlg::OnAdd()
{
CMyRecord myro;
if( !myro.Open())
return;
if(!myro.CanAppend())
return;
myro.AddNew();
myro.m_id=10;
myro.n_name="cheng";
myro.m_old=21;
myro.m_address="China";
myro.Update();
myro.Close();
}
可是同样不能编译通过,CMyrecord不是类型,我不知道怎么写了,这个和书上一样的啊!
哪位高手再帮帮我啊!Top
4 楼jnxulei(石头)回复于 2003-06-04 08:13:17 得分 0
CMyRecord myro应改为:CMyRecordSet myro;Top
5 楼wucxpanglf(枫)回复于 2003-06-04 08:15:05 得分 0
CMyRecordset类的头文件加入了吗?Top
6 楼jemmylau(枕头)回复于 2003-06-04 08:32:39 得分 0
你也可以用Insert SQL语句来插入一条记录嘛,比这个简单写,且效率高一些,AddNew是效率最低的一中方法。Top
7 楼wannaqxy(晓宇)回复于 2003-06-04 21:54:27 得分 0
CMyRecordset是从CRecordset中派生出来的,头文件是不是afxdb.h??要是的话,我已经加了!Top
8 楼liu_f(彩云飞)回复于 2003-06-05 09:39:03 得分 0
用INSERT写吧,效率好多了Top
9 楼bysen()回复于 2003-06-05 10:30:05 得分 0
insert我一直用它,信我的没错的。
呵呵Top




