⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_37142.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:37142 发表者:whoami 发表日期:2003-04-22 11:35:25
<br>主题:CRecordSet类的Update返回为0的问题?
<br>内容:Add Class:CclassASet:CRecordSet。<BR>然后在另外一个Dialog类中定义一个CClassASet m_pSet;<BR>在OnInitDialog()中BOOL bRet = m_pSet.Open();//这里打开正常。<BR>新增记录:<BR>在OnAddNew()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //取Dialog中填入的数据放到m_pSet中<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_pSet.a = strA;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_pSet.b = strB;<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_pSet.AddNew();<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (m_pSet.CanUpdate())&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BOOL nRet = m_pSet.Update();//????这句返回的总是0。<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>}<BR>请问一下这样写是不是可以的。为什么都是更新不了数据库。而且用Edit()也是返回0。<BR>请帮我看一下,谢谢。
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:金枪鱼 回复日期:2003-04-22 20:18:42
<br>内容:顺序写错了,<BR>添加记录要先调用m_pSet.AddNew();<BR>然后才是字段赋值<BR><BR>另外Update()函数调用时必须保存数据有变化,否则会返回FALSE。添加记录时不存在,修改记录时就有这个问题,你必须在代码中判定是否真的有修改,否则就不调用Update()。<BR><BR>修改记录时也一样,m_pSet.Edit();必须先调用,然后才是对字段修改赋值。<BR><BR>另外,记录集定位为对话框的成员变量,好像没有初始化。<BR>CClassASet m_pSet;<BR>我一般定义为对话框的成员指针,采用new初始化。<BR><BR>记住关闭对话框时关闭和销毁这个指针,并避免野指针,否则内存会泄漏。<BR><BR>先保证数据库指针pDb打开<BR>比如我通过类向导添加了一个私有的记录集成员指针<BR>CClassAset *m_pSet;<BR>然后在对话框的构造函数中对其初始化<BR>m_pSet=new CClassAset(pDb);<BR>ASSERT(m_pRs!=NULL);<BR>这样就可以在对话框的其它函数操作(打开、滚动等)这个记录集了。<BR><BR>在对话框的退出函数中关闭合销毁<BR>void C×××::OnCancel() <BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;// TODO: Add extra cleanup here<BR>if(m_pSet-&gt;IsOpen()) m_pSet-&gt;Close();//如果没有关闭则关闭<BR>delete m_pSet;//销毁<BR>m_pSet=NULL;//避免野指针<BR>&nbsp;&nbsp;&nbsp;&nbsp;CDialog::OnCancel();<BR>}<BR>如果通过OK按钮退出对话框也同样处理。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:whoami 回复日期:2003-04-23 13:00:06
<br>内容:谢谢!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -