在SQL的表中查寻所有数据是否有一个特定字符串 |
缺席
|
wq236589
一般會員 發表:21 回覆:37 積分:16 註冊:2008-08-27 發送簡訊給我 |
XY表中有fa1.....fa15 15个字段。
我想在这15个字段中查找是否有'11111’这个字符串 [code delphi] with adoquery1 do begin close; sql.clear; sql.add('select * from xy where fa1=:mc or fa2=:mc or fa3=:mc or fa4=:mc or fa5=:mc or fa6=:mc or fa7=:mc or fa8=:mc or fa9=:mc or fa10=:mc or fa11=:mc or fa12=:mc or fa13=:mc or fa14=:mc or fa15=:mc'); Parameters.ParamByName('mc').Value := '11111'; open; end; [/code] 报错:当前提供程序不支持从单一执行返回多个记录集。 问题:为什么出这样的错误,怎么解决? 高手帮帮忙啊。 |
st33chen
尊榮會員 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
|
wq236589
一般會員 發表:21 回覆:37 積分:16 註冊:2008-08-27 發送簡訊給我 |
|
st33chen
尊榮會員 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
|
wq236589
一般會員 發表:21 回覆:37 積分:16 註冊:2008-08-27 發送簡訊給我 |
只要把
[code delphi] 'select * from xy where fa1=:mc or fa2=:mc or fa3=:mc or fa4=:mc or fa5=:mc or fa6=:mc or fa7=:mc or fa8=:mc or fa9=:mc or fa10=:mc or fa11=:mc or fa12=:mc or fa13=:mc or fa14=:mc or fa15=:mc' [/code] 换掉就一点错都没有了 但是我把这个SQL语句在数据库里直接运行一点问题都没有。 要是有其他的SQL语句更好我的语句可能adoquery不支持。
編輯記錄
wq236589 重新編輯於 2008-11-18 09:09:51, 註解 無‧
|
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
雖然您的 :mc 都等於 '11111', 但您要用15次, 便要分成15個 Parameter, 這是 Delphi 解譯 SQL 的機制.
sql.add('select * from xy where fa1=:mc1 or fa2=:mc2 or fa3=:mc3 or fa4=:mc4 or .....'); Parameters.ParamByName('mc1').Value := '11111'; ....... Parameters.ParamByName('mc15').Value := '11111'; 建議改寫為如下試試(for Oracle 語法, 其他 Database 可能不同): sql.add('select * from xy where :mc IN (fa1,fa2,fa3,....)'); Parameters.ParamByName('mc').Value := '11111'; 查一下您的元件 Property 設定, 看是否有限制只准接收一 Rowset 的設定. |
wq236589
一般會員 發表:21 回覆:37 積分:16 註冊:2008-08-27 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |