問一個變量如何在SQL中加入 |
答題得分者是:P.D.
|
diashad
一般會員 發表:20 回覆:10 積分:6 註冊:2006-08-10 發送簡訊給我 |
例如:
VAR BU:STRING: BEGIN WITH ADOQUERY1 DO BEGIN CLOSE; SQL.CLEAR; SQL.ADD('SELECT * FROM TABLE 1 WHERE 1=1 AND BU=''' BU ''' AND 2=2'); END; END; 就是上面哪BU變量如何加放呢??
------
x 編輯記錄
dllee 重新編輯於 2007-04-21 19:00:50, 註解 修改文章分類由 無 -> 問題, 提問時, 請記得選擇 [問題] 分類, 才能把分數給辛苦答題的會員, 謝謝您的配合‧‧
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
你的SQL語法不是已經完成了嗎?
下列的BU變數值來源可以是從程式中得到的值,或者是從Edit中得到資料等等。。。 ===================引 用 diashad 文 章=================== 例如: var BU:STRING: BEGIN WITH ADOQUERY1 DO BEGIN CLOSE; SQL.CLEAR; SQL.ADD('SELECT * FROM TABLE 1 WHERE 1=1 AND BU=''' BU ''' AND 2=2'); SQL.OPEN; //還要這行來得到資料集,之後才能用 ADOQUERY1.FIELDBYNAME('你的資料欄').AsString等來得到資料 END; END; 就是上面哪BU變量如何加放呢?? |
diashad
一般會員 發表:20 回覆:10 積分:6 註冊:2006-08-10 發送簡訊給我 |
|
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
|
system72
中階會員 發表:15 回覆:114 積分:55 註冊:2005-08-17 發送簡訊給我 |
<textarea class="delphi" rows="10" cols="60" name="code">VAR
BU:STRING;
BEGIN
BU:=Edit1.Text; // 就如 Stallion說的, 比方,從form 的edit1 輸入. WITH ADOQUERY1 DO
BEGIN
CLOSE;
SQL.CLEAR;
SQL.ADD('SELECT * FROM table_a a WHERE (a.Column1=1) and (BU=''' BU ''') AND (a.Column2=2)');
SQL.ExecSQL;
END; END;
</textarea>
===================引 用 diashad 文 章=================== 例如: VAR? BU:STRING: BEGIN ? WITH ADOQUERY1 DO ? BEGIN ???? CLOSE; ???? SQL.CLEAR; ??? SQL.ADD('SELECT * FROM TABLE 1 WHERE 1=1 AND BU=''' BU ''' AND 2=2'); ? END; END; 就是上面哪BU變量如何加放呢?? |
hzfycdc
一般會員 發表:0 回覆:1 積分:0 註冊:2007-04-22 發送簡訊給我 |
1、SQL.ADD(Format('SELECT * FROM table_a a WHERE (a.Column1=1) and (%S=''%S'') AND (a.Column2=2)',[var1,var2]));
2、SQL.ADD('SELECT * FROM table_a a WHERE (a.Column1=1) and (:BU=:BU1) AND (a.Column2=2)'); Parameters.findparam('bu').value"=var1; Parameters.findparam('bu1').value"=var2; 再加OPen 不要使用 execsql |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
不知道有沒有誤會你的意思, 我舉兩個常用的方法
1.如果要直接加入, 建議使用 " 這個符號來做字串的含括 "字串" SQL.ADD('SELECT * FROM TABLE 1 WHERE 1=1 AND BU=' " ' BU ' " ' AND 2=2'); 但是因為 'SELECT 前面已有 ' 符號, 如果 BU=' 再出現 ', 會被認為字串結尾, 所以遇到這種情況, 我都會這樣寫 SQL.ADD('SELECT * FROM TABLE 1 WHERE 1=1 AND BU=' ' " ' BU ' " ' ' AND 2=2'); 註' " ', 這裡面沒有空白, 我是為了可以看的比較清楚, 所以加了空白 或者下列做法亦可 SQL.ADD('SELECT * FROM TABLE 1 WHERE 1=1 AND BU=' ' ' ' BU ' ' ' AND 2=2'); 註' ' ' ', 四個 ' 就等於 ' " ' 2.使用一個變數 :IBU 取代(建議使用本法會比較結構化) SQL.ADD('SELECT * FROM TABLE 1 WHERE 1=1 AND BU= :IBU AND 2=2'); SQL.ParamByName('IBU').Value:= xxxxx // 再用此段將要代入的值放進去 SQL.Open; ===================引 用 diashad 文 章=================== ??? SQL.ADD('SELECT * FROM TABLE 1 WHERE 1=1 AND BU=''' BU ''' AND 2=2'); 就是上面哪BU變量如何加放呢??
編輯記錄
P.D. 重新編輯於 2007-04-24 02:51:03, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |