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

📄 subject_59072.htm

📁 vc
💻 HTM
字号:
<p>
序号:59072 发表者:lixiaofei 发表日期:2003-11-05 19:01:25
<br>主题:VC+ODBC+WIN2K,为什么添加记录的时候,一次总是添加多个?
<br>内容:AddNew()之后,发现数据库中有两个一模一样的记录,这是为什么,请高手指点一下!
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:wjb 回复日期:2003-11-05 19:21:37
<br>内容:应该不会的。看看代码是否存在问题。<BR><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>
回复者:lixiaofei 回复日期:2003-11-05 21:02:30
<br>内容:不好意思,我没有说清楚,我用了在网上下载的CMyODBC和CODBCSet类(不知道你用过这两个类没有),我的代码如下,结果就增加了两条新纪录,再帮我看看,wjb,谢谢你!<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString strSql;<BR>&nbsp;&nbsp;&nbsp;&nbsp;strSql.Format(&#34;insert into login(权限,用户,密码)values (%d,'%s','%s')&#34;,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_power,m_user,m_newpwd1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;CMyODBC db;<BR>&nbsp;&nbsp;&nbsp;&nbsp;db.ConnectDB(&#34;MyDB&#34;,&#34;&#34;, &#34;&#34;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;CODBCSet set;<BR>&nbsp;&nbsp;&nbsp;&nbsp;db.PrepareSql(strSql, set);<BR>&nbsp;&nbsp;&nbsp;&nbsp;db.ExeSqlDirect(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>
回复者:wjb 回复日期:2003-11-05 22:11:07
<br>内容:就这些内容来看,不能确定问题所在。<BR>最好有CMyODBC的代码,才可以看到具体执行过程,确定问题。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:lixiaofei 回复日期:2003-11-06 12:41:52
<br>内容:后来我改用了直接使用如下所示的CRecordset(我参看了闻怡洋大侠的《单独使用CRecordset》),结果对了,不过我很觉得CMyODBC使用起来很方便<BR>&nbsp;&nbsp;&nbsp;&nbsp;CDatabase db;<BR>&nbsp;&nbsp;&nbsp;&nbsp;db.Open(&#34;MyDB&#34;);//,FALSE,FALSE,_T(&#34;ODBC&#34;),false);<BR>&nbsp;&nbsp;&nbsp;&nbsp;CRecordset set(&amp;db);<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString strSql;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;TRY<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strSql.Format(&#34;insert into login(权限,用户,密码)values (%d,'%s','%s')&#34;,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_power,m_user,m_newpwd1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;db.ExecuteSQL(strSql);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;CATCH(CDBException,e)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CString strMsg;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strMsg.LoadString(IDS_EXECUTE_SQL_FAILED);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strMsg+=strSql;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBox(strMsg,&#34;添加用户&#34;,MB_ICONWARNING);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;END_CATCH<BR><BR><BR>CMyODBC的源代码见附件,有空帮忙分析一下,多谢了!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:lixiaofei 回复日期:2003-11-06 14:57:07
<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>回复者:wjb 回复日期:2003-11-06 15:03:08
<br>内容:看了下,下面两个函数中都执行了sql语句,所以添加了两次。只需要一个就可以了。<BR>db.PrepareSql(strSql, set);<BR>db.ExeSqlDirect(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>
回复者:lixiaofei 回复日期:2003-11-06 15:40:38
<br>内容:一语惊醒梦中人!<BR>果然在BOOL CMyODBC::PrepareSql(const char *cpSql, CODBCSet &amp;rset)中有这么一句:<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_retcode = SQLExecDirect(m_hstmt, (unsigned char *)cpSql, SQL_NTS);<BR>我犯了想当然的错误,见名思意,以为PrepareSql只是准备SQL,就画蛇添足加了db.ExeSqlDirect(strSql);看来以后不敢生搬硬套从网上“抄来”的代码啊,给我上了很好的一课!wjb大哥,小弟对你真是佩服,非常感激你,我以前经常来看,没有发言,想不到第一次请教就得到你的热情指点,感动之极!以后一定会更加坚定的支持你,也希望和你交个朋友,还请多多关照!<BR><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>
回复者:wjb 回复日期:2003-11-06 15:58:08
<br>内容:不客气<BR>vchelp一家人<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 + -