這樣的sql語句怎麼寫
零件號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




