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

📄 subject_34697.htm

📁 vc
💻 HTM
字号:
<p>
序号:34697 发表者:范超 发表日期:2003-04-01 13:22:33
<br>主题:CRecordset的两个重要问题(大家一定要帮忙)
<br>内容:第一个问题:利用CRecordset对表格进行更新操作<BR>我开始使用<BR>CString strSQL;<BR>strSQL.Format("Update Table1 set field1= %d, field2 = %d where field3 = %d", nField1, nField2, nField3);<BR>p_Recordset-&gt;Open(CRecordset::dynaset, strSQL);<BR>p_Recordset-&gt;Close();<BR><BR>发现并没有进行对数据源进行更新;<BR>于是我改用了第二个方法:<BR>CString strSQL;<BR>strSQL.Format("select * from table1 where field3 = %d", nfield3);<BR>p_Recordset-&gt;Open(CRecordset::dynaset, strSQL);<BR>p_Recordset-&gt;Edit();<BR>p_Recordset-&gt;m_filed1 = nField1;<BR>p_Recordset-&gt;m_filed2 = nField2;<BR>p_Recordset-&gt;Update()<BR>p_Recordset-&gt;Close();<BR>数据已经更新了,但是我想请问大家看看还有哪些地方要多加留意或者没有更加简捷的和安全的方法;<BR><BR>第二个问题:利用CRecordset对表格进行插入操作<BR><BR>我尝试使用以下方法,可是没有解决~!望大家多多帮助<BR><BR>CString strSQL;<BR>strSQL.Format("Insert into Table1 (field1, field, field3) values('%d', '%d', '%d'", nField1, nField2, nField3);<BR>p_Recordset-&gt;Open(CRecordset::dynaset, strSQL);<BR>p_Recordset-&gt;Close();<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:lijing2001 回复日期:2003-04-01 22:06:34
<br>内容:p_Recordset-&gt;Open(CRecordset::dynaset, strSQL);<BR>p_Recordset-&gt;Close();<BR>改为<BR>p_Recordset-&gt;m_pDatabase-&gt;ExecuteSQL(strSQL)<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:金枪鱼 回复日期:2003-04-01 22:34:05
<br>内容:记录集对象无法直接执行SQL语句。<BR>一般更新记录有两种方法:<BR>1)构造SQL语句,使用数据库对象的ExecuteSQL()函数,不需要打开记录集,只需要打开数据库即可。<BR>&nbsp;&nbsp; CString str_SQL=_T("update......");<BR>&nbsp;&nbsp; CDatabase *pDb=new CDatabase();<BR>&nbsp;&nbsp; if(!pDb-&gt;IsOpen())<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pDb-&gt;OpenEx(.....);<BR>&nbsp;&nbsp; if(!pDb-&gt;IsOpen())<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //数据库没有打开<BR>&nbsp;&nbsp; if(pDb-&gt;IsOpen())<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp; pDb-&gt;ExcuteSQL(str_SQL);<BR>&nbsp;&nbsp; }<BR>//关闭<BR>&nbsp;&nbsp; if(pDb-&gt;IsOpen())<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pDb-&gt;Close();<BR>//销毁<BR>&nbsp;&nbsp; delete pDb;<BR>//避免野指针<BR>&nbsp;&nbsp; pDb=NULL;<BR><BR>2)使用记录集对象,打开后使用Edit()函数,然后Update()即可。<BR>刷新记录集前要判断是否可以刷新,注意如果记录集数据实际上没有变化的化,Update()会出错。<BR><BR>另外注意:<BR>A、一般记录集和数据库对象都定义为指针,并且是通过new来分配的(这样操作起来方便),使用完毕后要关闭、销毁和避免出现野指针。<BR>B、程序中一般将数据库对象定义为全局变量,程序运行时连接数据库,程序退出时关闭和销毁;记录集对象使用时才创建,用完就关闭和销毁。这样访问的速度快一些。<BR>2003-4-1 22:35:26

⌨️ 快捷键说明

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