線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1576
推到 Plurk!
推到 Facebook!

用ado的sql语句,如何使用变量当列名?

尚未結案
ffprince
初階會員


發表:66
回覆:62
積分:25
註冊:2003-08-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-03 23:16:01 IP:218.85.xxx.xxx 未訂閱
各位大虾,小弟用adoquery作查询语句,想用变量作列名,如何操作?变量作表名呢?
ffprince
初階會員


發表:66
回覆:62
積分:25
註冊:2003-08-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-03 23:36:22 IP:218.85.xxx.xxx 未訂閱
比如有这样的程式,为何在BDE下可以,在ADO下不行? name:='number'; query1.sql.add('select ' name ' from table';);
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-04 00:53:13 IP:203.204.xxx.xxx 未訂閱
引言: 比如有这样的程式,为何在BDE下可以,在ADO下不行? name:='number'; query1.sql.add('select ' name ' from table';);
以上述程式碼來看,有一漏洞是 query1.sql.Clear;// 加上這行 確保SQL 是空的 query1.sql.add('select ' name ' from table';); // 為何多一個';'? 初步判斷可能出錯點在此,若不是的話,請再詳述問題...
johnny2212
初階會員


發表:34
回覆:65
積分:39
註冊:2003-04-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-04 07:20:32 IP:61.226.xxx.xxx 未訂閱
procedure TForm1.Button1Click(Sender: TObject); var aa: String; begin aa:='empno'; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select ' aa); ADOQuery1.SQL.add('from employee'); ADOQuery1.Open; //這樣比較容易看的懂 //你也可以寫成這樣 ADOQuery1.SQL.Clear; ADOQuery1.SQL.Text:='select ' aa ' from employee'; ADOQuery1.Open; end;
ffprince
初階會員


發表:66
回覆:62
積分:25
註冊:2003-08-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-04 09:46:36 IP:218.85.xxx.xxx 未訂閱
引言: procedure TForm1.Button1Click(Sender: TObject); var aa: String; begin aa:='empno'; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select ' aa); ADOQuery1.SQL.add('from employee'); ADOQuery1.Open; //這樣比較容易看的懂 //你也可以寫成這樣 ADOQuery1.SQL.Clear; ADOQuery1.SQL.Text:='select ' aa ' from employee'; ADOQuery1.Open; end;
请问我这么写有什么错误吗?运行时报错“ORA-00911:无效序列” day:string; day:='nowdate'; Query1.Close; query1.SQL.clear; query1.SQL.Text:='select ' day ' from table where ' day '=1'; query1.ExecSQL; query1.Open;
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-04 10:10:39 IP:210.65.xxx.xxx 未訂閱
Hi:    
    day:string;
    day:='nowdate';
    Query1.Close;
    query1.SQL.clear;
    query1.SQL.Text:='select ' day ' from table where ' day '=1';
    query1.ExecSQL;-->此行似乎是多餘的
    query1.Open;
-------------------------------- 小弟才疏學淺,若有謬誤請不吝指教 --------------------------------
------
Fishman
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-02-04 10:17:13 IP:211.22.xxx.xxx 未訂閱
您好: day:string; day:='nowdate'; Query1.Close; query1.SQL.clear; query1.SQL.Text:='select '+day+' from table where '+day+'=1'; 1.query1.ExecSQL;無回傳直 2.query1.Open;有回傳直 用1就不要用2,反之... 你這裡應適合用2 還有你的nowdate欄位型態是日期ㄇ,如果是' day '=1';要等於日期 ~~應無所住而生其心~~
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-02-04 10:17:32 IP:218.15.xxx.xxx 未訂閱
您好! 测试了一下在,BDE中运行可以通过,你查看下您表中有没有nowdate这个字段。 行径窄处,留一步与人行
系統時間:2024-11-25 16:44:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!