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

📄 subject_36465.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:36465 发表者:A-bird 发表日期:2003-04-15 19:56:51
<br>主题:数据库查询难题,答对有奖!!!
<br>内容:我定义想对一个ACCESS库进行查询,里面只有一张表。我先从CRecordset中派生一个类CMyRecordset,然后<BR>CMyRecordset *m_pSet;<BR>m_pSet= new CMyRecordset;<BR>m_pSet-&gt;m_strFilter="SELECT * FROM table1 WHERE m_strStatus='等待'";<BR>m_pSet-&gt;Requery();<BR><BR>该代码在编译时没有任何错误。但生成可执行文件后,点击调用它的时候就会跳出一个语法错误。指说这个SELECT子句出错!哪位大哥解释一下!!<BR><BR>m_pSet-&gt;m_strFilter="SELECT * FROM table1 WHERE m_strStatus='等待'";这么个小句子能有啥错误呢????????想不通??????<BR><BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:阿志 回复日期:2003-04-15 20:15:16
<br>内容:m_pSet-&gt;m_strFilter="SELECT * FROM table1 WHERE m_strStatus=\'等待\'";<BR><BR>HEHE ,转义字符最容易出错了
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:A-bird 回复日期:2003-04-16 19:19:42
<br>内容:大哥啊!!不行啊!!!我试过了,加了那个\号一样不行,不知道为什么?<BR><BR>另外&nbsp;&nbsp;我把<BR>m_pSet-&gt;m_strFilter="m_strStatus=\'等待\';<BR>却跳出另外一个错误 “参数不足期待为2”<BR><BR>why?????????
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:阿志 回复日期:2003-04-16 19:55:59
<br>内容:m_strStatus是个什么?是c++变量的话,要改,比如m_strStatus是一个CString 的话,应该<BR>m_pSet-&gt;m_strFilter=m_strStatus+"=\'等待\'";
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:木一 回复日期:2003-04-17 06:11:33
<br>内容:<BR><BR>加不加\都一样,后续的应该是 m_pSet-&gt;Open(...)吧。<BR><BR>最上面的错误正如阿志说的,m_strFilter应该是它本来的字串。<BR><BR>SQL在C/C++里,全是按字符串来理解的。<BR> 这样的语句,"SELECT * FROM table1 WHERE m_strStatus='等待'";只能表示有一个列名(字段)叫m_strStatus,<BR>建议在调试时,执行sql之前先把sql 字串显示出来看看,就明白了。<BR><BR>像这样:<BR>CString strSQL;<BR>strSQL.Format("SELECT * FROM table1 WHERE [%s] = '等待'",m_strStatus);<BR>// <BR>#ifdef _DEBUG<BR>AfxMessageBox(strSQL)<BR>#endif<BR><BR>这样,所有sql语句在执行前,都可以看得明明白白的,我们常常觉得没问题的sql语句,会少引号,少类型转换函数。<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>
回复者:二进制 回复日期:2003-04-17 16:14:00
<br>内容:&nbsp;&nbsp;&nbsp;&nbsp;4楼的说的对。你的这个变量m_strStatus 由常见的命名规则来看不象是一个数据库的字段名,语法规则是这样:<BR>m_pSet-&gt;m_strFilter="m_strStatus='等待'";<BR>这里m_strStatus必须是你的数据库的字段名。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:A-bird 回复日期:2003-04-17 20:11:58
<br>内容:我的数据库相对于这个变量m_strStatus的列名叫'下载状态'。<BR>我也这样写过<BR>m_pSet-&gt;m_strFilter="SELECT * FROM table1 WHERE 下载状态=‘等待’“;<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>
回复者:木一 回复日期:2003-04-17 20:22:00
<br>内容:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vctutor98/html/_gs_setting_up_the_filter.asp<BR>上面是msdn的例子<BR><BR>改为:<BR>m_pSet-&gt;m_strFilter= "[下载状态]= '等待'";<BR>m_pSet-&gt;Open()
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:A-bird 回复日期:2003-04-17 20:47:59
<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>
回复者:二进制 回复日期:2003-04-18 08:14:30
<br>内容:关于m_strFilter的用法在MSDN中是这样说的:<BR>Contains a CString that specifies a Structured Query Language (SQL) WHERE clause. Used as a filter to select only those records that meet certain criteria。<BR>所以看来你写成:<BR>m_pSet-&gt;m_strFilter="下载状态='等待'";<BR>就行了。有的地方要写成:<BR>m_pSet-&gt;m_strFilter= "[下载状态]= '等待'";<BR>try 一 try<BR>2003-4-18 16:50:25

⌨️ 快捷键说明

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