CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

我的代码哪里错了?(关于adoquery查询)

楼主tflb(艺无止境)2003-08-04 14:44:52 在 Delphi / VCL组件开发及应用 提问

有两个combobox   一个edit,一个button(查询),一个dbgrid,我想实现  
  选择字段   zd_combox     选择关系   gx_combox         比较值       bjz_edit  
  想实现  
  选择字段     (姓名)             选择关系     (等于)             比较值     (某某)         (查询button)  
   
  我的代码如下  
  procedure   TF_main.BitBtn4Click(Sender:   TObject);  
  var  
      ZD_SQL_VAR,GX_SQL_VAR,BJZ_SQL_VAR:string;  
  begin  
      ZD_SQL_VAR:=ZD_Combox.Items[ZD_Combox.itemindex];  
      BJZ_SQL_VAR   :=BJZ_edit.Text;  
      if   GX_Combox.ItemIndex   =0   then   GX_SQL_VAR:='='  
      else   if   GX_Combox.itemIndex=1   then   GX_SQL_VAR:='<'  
      else   if   GX_Combox.itemIndex=2   then   GX_SQL_VAR:='>'  
      else   if   GX_Combox.itemIndex=3   then   GX_SQL_VAR:='<>'  
      else   if   GX_Combox.itemIndex=4   then  
      begin  
          GX_SQL_VAR:='like';  
          BJZ_SQL_VAR   :='%'+BJZ_edit.Text   +'%';  
      end;  
       
      adoQuery1.close;  
    adoQuery1.SQL.Clear;  
    adoQuery1.SQL.Add('select   *   from     学生表   where   '+ZD_SQL_VAR+'   '+GX_SQL_VAR+'   '+''''+BJZ_SQL_VAR+''''   );  
    adoQuery1.open;  
       
      //判断是否有记录可操作  
      if   adoQuery1.Eof   then  
      begin  
          label18.caption:='总计:0   条记录符合条件。';  
      end  
      else  
      begin  
          label18.caption:='总计:   '+inttostr(adoQuery1.RecordCount)+'   条记录符合条件。';  
      end;  
      PageControl1.OnChange   (self);  
  end;  
   
  错误提示:Access   violation   at   address   0000000   ,reat   of   address   0000000  
   
  请问我代码哪里不对呀!请帮助,急ing   !!! 问题点数:20、回复次数:17Top

1 楼noall()回复于 2003-08-04 14:59:54 得分 1

这个提示错误跟上面的没关系吧.  
   
  单步执行错在哪里?Top

2 楼Little2000(rainy)回复于 2003-08-04 15:02:52 得分 1

楼主的查询语句是什么呢?Top

3 楼tflb(艺无止境)回复于 2003-08-04 15:08:57 得分 0

adoQuery1.SQL.Add('select   *   from     学生表where   '+ZD_SQL_VAR+'   '+GX_SQL_VAR+'   '+''''+BJZ_SQL_VAR+''''   );  
   
  我想应该是这句有问题!!Top

4 楼tflb(艺无止境)回复于 2003-08-04 15:11:36 得分 0

能不能给一个例子,能实现上面说的就行!!Top

5 楼mc43(火猴)回复于 2003-08-04 15:11:47 得分 1

好像不是SQL语句的问题吧Top

6 楼IORILI(眼镜)回复于 2003-08-04 15:14:38 得分 2

BJZ_SQL_VAR裏面沒有值  
  再説了   你的程序怎麽寫得那麽複雜呢   我覺得用你一半的代碼就可以實現你要的功能了Top

7 楼tflb(艺无止境)回复于 2003-08-04 15:16:27 得分 0

楼上的,能不能帮我改一个呢!我是初学!在线等待!!Top

8 楼dtxipi(精灵古怪)回复于 2003-08-04 15:19:16 得分 1

错误提示好像是程序运行有问题了吧  
  不是sql的问题Top

9 楼IORILI(眼镜)回复于 2003-08-04 15:19:33 得分 2

procedure   TF_main.BitBtn4Click(Sender:   TObject);  
  var  
      ZD_SQL_VAR,GX_SQL_VAR,BJZ_SQL_VAR:string;  
  begin  
      ZD_SQL_VAR:=ZD_Combox.TEXT;  
      BJZ_SQL_VAR   :=BJZ_edit.Text;  
      end;  
   
   
      adoQuery1.close;  
    adoQuery1.SQL.Clear;  
    adoQuery1.SQL.Add('select   *   from     学生表   where   '+ZD_SQL_VAR+'   '+GX_Combox.TEXT+'   '+''''+BJZ_SQL_VAR+''''   );  
    adoQuery1.open;  
  //判断是否有记录可操作  
      if   adoQuery1.Eof   then  
      begin  
          label18.caption:='总计:0   条记录符合条件。';  
      end  
      else  
      begin  
          label18.caption:='总计:   '+inttostr(adoQuery1.RecordCount)+'   条记录符合条件。';  
      end;  
      PageControl1.OnChange   (self);  
  end;  
  Top

10 楼dickeybird888(小鸟)回复于 2003-08-04 15:20:13 得分 6

我实验了一下你的查询语句并没有错误,(查询语句是相对于字符行字段实用的);  
   
  我估计你出错误可能是因为PageControl1.OnChange   (self);,  
  在有一种可能就是以前的代码Top

11 楼IORILI(眼镜)回复于 2003-08-04 15:20:21 得分 4

是PageControl1.OnChange   (self);的錯誤吧Top

12 楼tflb(艺无止境)回复于 2003-08-04 15:34:32 得分 0

对了,是PageControl1.OnChange   (self);的事,先谢谢了!!  
  但现在为什么在  
  选择字段   zd_combox   ,   选择关系   gx_combox       选择了数据,点查询有数据,而  
    比较值       bjz_edit   输入任何数据都没做用呀!!  
  是不是SQL   部分也有问题呀!!  
   
  Top

13 楼IORILI(眼镜)回复于 2003-08-04 15:38:21 得分 2

你要在查询之前就要输入bjz_edit   ,然后才能把值传到SQL语句里Top

14 楼tflb(艺无止境)回复于 2003-08-04 15:42:56 得分 0

我是先把bjz_edit的数据输入了,可以什么数据都没有呀!  
  只有在gx_combox里选择了数据,dbgrid里才有数据呀!但和bjz_edit里的数据一点关系都没有!!Top

15 楼tflb(艺无止境)回复于 2003-08-04 15:48:08 得分 0

我还是用的原来的代码,因为我的gx_combox的items里面是'等于''大于'等!!Top

16 楼Englash(开始)回复于 2003-08-04 15:57:12 得分 0

procedure   TF_main.BitBtn4Click(Sender:   TObject);  
  var  
      ZD_SQL_VAR,GX_SQL_VAR,BJZ_SQL_VAR:string;  
  begin  
      ZD_SQL_VAR:=ZD_Combox.TEXT;  
      BJZ_SQL_VAR   :=BJZ_edit.Text;  
      end;  
   
   
      adoQuery1.close;  
    adoQuery1.SQL.Clear;  
    adoQuery1.SQL.Add('select   *   from     学生表   where   '+ZD_SQL_VAR+'   '+GX_Combox.TEXT+'   '+''''+BJZ_SQL_VAR+''''   );  
    adoQuery1.open;  
  //判断是否有记录可操作  
      if   adoQuery1.Eof   then  
      begin  
          label18.caption:='总计:0   条记录符合条件。';  
      end  
      else  
      begin  
          label18.caption:='总计:   '+inttostr(adoQuery1.RecordCount)+'   条记录符合条件。';  
      end;  
      PageControl1.OnChange   (self);  
  end;Top

17 楼IORILI(眼镜)回复于 2003-08-04 15:58:15 得分 0

哦   我说呢   呵呵Top

18 楼Englash(开始)回复于 2003-08-12 22:49:52 得分 0

这算什么~~  
  大部分都是抄人家的~~  
  那还开什么论坛~~~  
  发什么贴子  
  有本事自己做阿~~Top

相关问题

  • 有谁有Windows 错误代码表查询的工具
  • 以下查询代码错在什么地方?
  • sqlserver多表模糊查询代码有错在哪???
  • 这段查询代码为什么错误?
  • 急急!!!!adoquery查询时报错
  • 用Adoquery 查询出错的问题?
  • 如何在微软根据错误代码查询问题?win2000 adv系统
  • asp中查询数据库的一段代码,不知错在什么地方?
  • 深夜求助:为什么这段查询更新的代码会错??
  • ADOQuery查询,100分

关键词

  • 代码
  • 字段
  • 查询
  • 数据
  • 语句
  • 学生
  • 选择
  • bjz
  • adoquery1
  • combox

得分解答快速导航

  • 帖主:tflb
  • noall
  • Little2000
  • mc43
  • IORILI
  • dtxipi
  • IORILI
  • dickeybird888
  • IORILI
  • IORILI

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

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