CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

简单的ado查询语句出错,解决就给分

楼主baby_zhx(郁闷)2002-05-22 11:31:07 在 VC/MFC / 基础类 提问

各位同僚,我的ado中有这么一句话,是想参数查询的,老是出错  
  strfact="test";  
  m_pRecordset->Open("SELECT   *   FROM   rule   where   detail=strfact",_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);  
      怎么老是在运行时候显示读取数据库失败阿  
  但是我要是改成"SELECT   *   FROM   rule   where   detail=test"就可以,怎么回事阿?我还是想参数查询怎么办? 问题点数:25、回复次数:8Top

1 楼baby_zhx(郁闷)回复于 2002-05-22 11:34:32 得分 0

写错了  
  是select   *   from   rule   where   detail='test'时就可以Top

2 楼sammon(努力学习)回复于 2002-05-22 11:44:26 得分 0

拼出来,"select   *   from   rule   where   detail='"   +   strfact+"'"Top

3 楼sammon(努力学习)回复于 2002-05-22 11:45:24 得分 7

拼出来"select   *   from   rule   where   detail='"+strfact+"'"Top

4 楼cityyokel(原来如此)回复于 2002-05-22 12:04:18 得分 7

可以在调用之前做一下工作:  
  CString   strQuery;  
  strQuery.Format("Select   *   from   rule   where   detail   like   '%s'",strfact)  
  Open(strQuery,...);  
  更具有通用性一点。Top

5 楼countrynew(吃的苦中苦,方为人上人!)回复于 2002-05-22 12:24:35 得分 4

同意楼上Top

6 楼storein(满天星)回复于 2002-05-22 12:55:18 得分 7

一般我们的SQL语句出现问题都回答  
  可以执行SQL语句的地方去看看是否SQL语句有问题  
  比如使用ACCESS  
  那么就用“查询”来检测SQL语句的问题在何处  
  象你上面的例子,就是查询字符串时要多加一个     '     '   对  
  将字符串包括起来,就可以了  
  然后才将正确的语句在程序中改写,或使用变量  
  或格式化Top

7 楼baby_zhx(郁闷)回复于 2002-05-22 16:49:32 得分 0

大哥阿,不行阿,报错如下阿  
  error   C2664:   'Open'   :   cannot   convert   parameter   1   from   'class   CString'   to   'const   class   _variant_t   &'  
                  Reason:   cannot   convert   from   'class   CString'   to   'const   class   _variant_t'  
                  No   constructor   could   take   the   source   type,   or   constructor   overload   resolution   was   ambiguousTop

8 楼baby_zhx(郁闷)回复于 2002-05-22 16:53:28 得分 0

而且,我即使是写成这样也不行  
  CString   strQuery;  
  strQuery="Select   *   from   rule   where   detail='test'";  
  m_pRecordset->Open(strQuery,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);  
   
  只能写成  
  m_pRecordset->Open("Select   *   from   rule   where   detail='test'",_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);  
  不知道是为什么阿?  
  Top

9 楼baby_zhx(郁闷)回复于 2002-05-22 18:16:22 得分 0

hehe谢谢大家,不过问题是解决了,除了大家所说的外,应该加上这么两句  
  _variant_t   sql;  
  sql=strQuery;  
  呵呵,要转化成ado认识的查询字符窜所规定的类型就是了  
  埃,ado真是的^_^Top

相关问题

  • 高手请进——查询语句出错
  • 用ADO执行SQL语句,语句太长了就会出错???
  • 为什么用sql语句中join 语句联合查询时会出错
  • sql查询语句出错,请各位指点!(急)
  • 关于 SetFilter 里查询语句出错的问题
  • ACCESS数据库查询语句有日期条件时出错!
  • 简单的查询语句,就是出错,郁闷死了?
  • 查询语句出错,两个记录查出三条结果?
  • SQL语句出错
  • sql语句出错

关键词

  • 语句
  • 查询
  • sql
  • strfact
  • strquery
  • detail
  • adcmdtext
  • adopenstatic
  • adlockoptimistic
  • theapp

得分解答快速导航

  • 帖主:baby_zhx
  • sammon
  • cityyokel
  • countrynew
  • storein

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo