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

我只是想问一问可不可以实现!

楼主ycheng(飞狼)2004-12-02 09:46:42 在 Delphi / 数据库相关 提问

现在我用ADOstoredproc查询出一张表!  
  品名               完工支数 折算系数 件数 单价 总金额  
  G-2101红                   10368 6912 1.5 0.3 0.45  
  G-2101红                   10368 6912 1.5 0.3 0.45  
  G-737针管乌 8640 1728 5 0.3 1.5  
  MINI针管乌 784512 1728 454 0.3 136.2  
  MINI针管兰 153792 1728 89 0.3 26.7  
  MINI针管红 248832 1728 144 0.3 43.2  
  MINI针管乌 784512 1728 454 0.3 136.2  
  MINI针管兰 153792 1728 89 0.3 26.7  
  MINI针管红 248832 1728 144 0.3 43.2  
  MINI大头乌 335232 1728 194 0.3 58.2  
  MINI大头兰 190080 1728 110 0.3 33  
  MINI大头红 103680 1728 60 0.3 18  
  现在我想模糊查询定位,  
   
  即:做一个编辑框:Edit,当输入‘大头’时,记录集自动指到符合的第一条记录!  
   
  我知道用local可以,但是它只能实现输入记录的前面的字符:比如输入‘M’,‘Mi’,‘MINI’,……,不能实现:输入后面或中间字符!注意:这里只是对ADOstoredproc取出的数据集定位,不要重新去取数据!!!  
  问题点数:100、回复次数:14Top

1 楼IwantFlay(小飞)回复于 2004-12-02 10:04:40 得分 15

可以实现,不要用locate.    
  用数据集控件本身带的filter功能,  
  就是要写控件的   onFilterRecord事件    
  在事件代码中用一些技巧,   比如说要实现你的功能.   可以这样实现  
   
  procedure   TForm1.ADOStoredProc1FilterRecord(DataSet:   TDataSet;  
      var   Accept:   Boolean);  
  begin  
      if   edit1.text   =   ''   then  
      begin  
          Accept   :=   true;  
          exit;  
      end;  
   
      if   pos(edit1.text,   dataSet.fieldByName('品名').asString)   >   0   then  
          Accept   =   true  
      else  
          Accept   =   false;  
  end;  
   
  procedure   TForm1.Edit1Change(Sender:   TObject);  
  begin  
      ADOStoredProc1.Filtered   :=   false;  
      ADOStoredProc1.Filtered   :=   true;  
  end;  
   
  edit1就可你输入'大头'的地方Top

2 楼ycheng(飞狼)回复于 2004-12-02 10:39:05 得分 0

大哥这个是过滤亚!!!输入后就剩下:  
  MINI大头乌 335232 1728 194 0.3 58.2  
  MINI大头兰 190080 1728 110 0.3 33  
  MINI大头红 103680 1728 60 0.3 18  
  了!!其他数据都屏蔽了Top

3 楼xufenglong(天天向上)回复于 2004-12-02 10:49:43 得分 2

SELECT   *  
  FROM   cumm7000  
  WHERE   (Company_Name_native_Code_M   LIKE   '%大头%')Top

4 楼ycheng(飞狼)回复于 2004-12-02 10:52:41 得分 0

注意:这里只是对ADOstoredproc取出的数据集定位,不要重新去取数据!!!  
  Top

5 楼leilu(Java)回复于 2004-12-02 10:57:27 得分 2

那你就使用临时表吧。Top

6 楼IwantFlay(小飞)回复于 2004-12-02 11:01:09 得分 0

那这样子的话,你就只能自已写一个函数了,  
   
  while   not   ADOstoredproc.eof   do  
  begin  
      判断是否符合你的条件;  
   
      ADOstoredproc.next;  
  end;  
   
  然后在你输入了   "大头"   后要调用这个函数Top

7 楼nyf1220(我是党员----不过听说最近风声紧,打算换名字)回复于 2004-12-02 11:10:44 得分 64

楼上的不错,  
  呵呵,我完善一下  
  在输入框的KEYPRESS里大概写如下:  
  if   key=#13//如果是回车,则查找  
  then  
  begin  
  while   not   ADOstoredproc.eof   do  
  begin  
      if   pos(Trim(Edit1.text),ADOstoredproc.FieldByName('品名'1).asstring)>0   then   Break  
      else  
      ADOstoredproc.next;  
  end;  
  差不多改改应该符合你了  
  Top

8 楼BigAngell(学而不思则罔 思而不学则殆)回复于 2004-12-02 11:36:01 得分 10

我只是想问一问可不可以实现!    
   
  /////////////////////////////////  
   
  呵呵,完全可以实现!  
   
  你用的DBGrid显示的数据集信息吗?那东东不爽呀,还有如用ListView,我想我已经说得很明确了。Top

9 楼ycheng(飞狼)回复于 2004-12-02 11:40:45 得分 0

谢谢哟!我去试试!Top

10 楼seekmydoom(靠灌水混日子)回复于 2004-12-02 11:42:12 得分 2

学西,呵呵,给我分呀Top

11 楼bmwyc(汗血宝马)回复于 2004-12-02 11:56:08 得分 3

用中间表来操作就好了  
  select……into……where……只是每次操作前记得要dropTop

12 楼ycheng(飞狼)回复于 2004-12-02 12:09:01 得分 0

好了!可以了!只是我想要再下一条,怎么做?!这个只能找到相符的第一条!Top

13 楼ycheng(飞狼)回复于 2004-12-02 12:11:48 得分 0

谢谢   nyf1220(我是党员--不过听说最近风声紧,打算换名字)   (Top

14 楼pengxuan(网虫先生)回复于 2004-12-02 12:29:00 得分 2

学习Top

相关问题

  • 请问可不可以不用fso实现文件操作?
  • 请问ASP可不可以实现关机操作?
  • 请问ASP可不可以实现关机操作?
  • 简单问题1:接口可不可以实现接口?
  • 问一下GEF可不可以实现代码编辑功能?
  • 可不可以实现定时共享?
  • 我没有问题 , 可不可以
  • 请问java可不可以这样:
  • 请问可不可以这样写~~
  • 请问,可不可以一次读入文件内全部字节?通过CFile如何实现?

关键词

  • mini
  • 数据
  • adostoredproc
  • 大头
  • 针管
  • 实现
  • 输入
  • 品名
  • 乌
  • 兰

得分解答快速导航

  • 帖主:ycheng
  • IwantFlay
  • xufenglong
  • leilu
  • nyf1220
  • BigAngell
  • seekmydoom
  • bmwyc
  • pengxuan

相关链接

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

广告也精彩

反馈

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