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

這樣的sql語句怎麼寫

楼主afeizai()2003-12-02 13:59:19 在 Delphi / VCL组件开发及应用 提问

零件號2k03085-00-001,是零件表(partlist)的主鍵  
  案號是2003085,是案件表(orderlist)的主鍵,有wwDblookupCombo1來顯示該字段  
  它們都含'03085'這個相同的字符串  
  我要通過從零件號的第2到第6位置的子字串與案件號的第2到第6位置的子字串相等作為查詢條件來進行查詢.  
  adoquery1.sql.add('select   *   from   partlist   where   substr(零件號,2,6)=substr(wwDblookupComBo1.text,2,6)   ');  
  這樣的sql語句應該怎麼寫//////////???????  
   
  问题点数:0、回复次数:13Top

1 楼outer2000(天外流星)回复于 2003-12-02 14:03:04 得分 0

adoquery1.sql.add('select   *   from   partlist   where   substr(零件號,2,6)=:p1');  
  adoquery1.pamter.pamtervalues('p1'):=copy(wwDblookupComBo1.text,2,6);  
  Top

2 楼afeizai()回复于 2003-12-02 14:24:46 得分 0

可運行的時候報錯說'substr是未定義的函數'  
  怎麼回事  
  Top

3 楼JoeSong(蓝血人)回复于 2003-12-02 14:32:43 得分 0

我是照楼上的改的,不过应当可以解决问题:注意SQL中是subString啊  
   
  adoquery1.sql.add('select   *   from   partlist   where   substring(零件號,2,6)=:p1');  
  adoquery1.pamter.pamtervalues('p1'):=copy(wwDblookupComBo1.text,2,6);Top

4 楼afeizai()回复于 2003-12-02 14:41:19 得分 0

報錯'substr是未知的函數名';  
  substr可是標準函數啊  
  高手請指點一下.Top

5 楼afeizai()回复于 2003-12-02 15:12:37 得分 0

adoquery4.sql.add('select   *   from   partlist   where   substring(零件號,2,6)=:p1');  
  adoquery4.Parameters.ParamByName('p1').value:=copy(wwDblookupComBo13.text,2,6);  
   
  如上的寫法對嗎???  
  運行沒有除錯,可是返回結果是一條記錄都沒有.  
  跟預想的結果不一樣  
  Top

6 楼strongzp(strongzp)回复于 2003-12-02 15:27:15 得分 0

将SubStr   或   SubString   改成   Mid试试。Top

7 楼afeizai()回复于 2003-12-02 15:36:30 得分 0

改成midstr,加了strUtils到uses裡面  
  還是一樣不出錯,但沒有返回結果Top

8 楼zlyanyan(qhjcbb)回复于 2003-12-02 16:24:52 得分 0

老兄呀:  
  adoquery4.sql.add('select   *   from   partlist   where   substring(零件號,2,5)=:p1');  
  adoquery4.Parameters.ParamByName('p1').value:=copy(wwDblookupComBo13.text,2,5);  
   
   
  SUBSTRING   (   expression   ,   start   ,   length   ),是LENGTH!!!!!Top

9 楼afeizai()回复于 2003-12-02 17:14:01 得分 0

大哥  
  不懂你申麼意思/???  
  可以說明白點嗎Top

10 楼zlyanyan(qhjcbb)回复于 2003-12-03 08:24:15 得分 0

SUBSTRING   (   expression   ,   start   ,   length   )中的LENGTH是指从START开始,要截取的长度,而你的   2003085这个号你要读取第二位到第六位的话,就是截取了5位的长度,所以应该是  
  SUBSTRING   (   零件號   ,   2   ,   5   ),而你写的SUBSTRING   (   零件號   ,   2   ,   6),所以得到的是空值了。  
  明白了吗?去看看帮助。Top

11 楼afeizai()回复于 2003-12-03 09:38:48 得分 0

一樣沒有結果返回  
   
  我把substring()的參數改為substring(零件號,3,6),showmessage(copy(wwDblookupComBo13.text,3,6));顯示的是03085,如果是showmessage(copy(wwDblookupComBo13.text,2,5)),顯示的是00308,問題應該不在這裡的  
  Top

12 楼xiaoqiang123(xiaoqiang)回复于 2003-12-03 09:55:21 得分 0

呵呵,俺   菜鸟,来接分的,楼主不如在数据库版再开一张,请大力,邹健待高手帮忙,他们一定行!呵呵,随便俺也可学习一下Top

13 楼afeizai()回复于 2003-12-03 10:01:37 得分 0

可俺沒分了啊  
  問完啦Top

相关问题

  • 这句SQL 怎么写? (SQL SERVER)
  • 这句SQL 怎么写? (SQL SERVER)
  • sql语句怎么写?
  • 这句SQL怎么写?
  • SQL语句怎样写?
  • 这句SQL怎么写???
  • sql语句怎么写
  • SQL语句怎么写啊~~
  • 怎样执行sql语句?
  • 这句sql该怎样写

关键词

  • start
  • sql
  • wwdblookupcombo
  • 零件號
  • adoquery
  • substring
  • 函數
  • 結果
  • 顯示
  • copy

得分解答快速导航

  • 帖主:afeizai

相关链接

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

广告也精彩

反馈

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