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

请教 Miss Right Quote!什么意思?不懂?

尚未結案
railgunman
初階會員


發表:59
回覆:121
積分:36
註冊:2003-03-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-28 16:16:49 IP:211.162.xxx.xxx 未訂閱
请教 Miss Right Quote!什么意思?不懂?程序远代码如下, with dm1.Q_Middle do begin close; sql.Clear; unprepare; sql.Add('insert workingdatabasic(y1,y4,y2,y6,y21,'); sql.Add(L_field 'a16)'); sql.Add('values("' e_1.Text '",' 'getdate()' ',' '"1",' L_y6_str ','); sql.Add('5,"'); sql.Add(L_value ',"' memo1.Text '")'); prepare; execsql; close; 当执行到prepare;时就报错。系统产生的sql语句为SQL Prepare: MSSQL - insert workingdatabasic(y1,y4,y2,y6,y21, y16,a1,a10,a9,a12,a16) values("200304280004",getdate(),"1",4, 5," "sad","010001","唐河","苗圃","1","") 应该说没有问题才对呀。各位高手是怎么一回事呢?
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-28 16:23:24 IP:211.23.xxx.xxx 未訂閱
Miss Right Quote 他的意思是說~~你少一個 ')' -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-28 16:34:55 IP:202.39.xxx.xxx 未訂閱
sql.Add('5,"'); // 這行的雙引號有問題 不過, 應該不是用一個雙引號, 而是要用兩個單引號吧!    --- 每個人都是一本書
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-28 16:57:18 IP:211.74.xxx.xxx 未訂閱
一堆單引號,雙引號,看不清楚,改這樣是看看..
with dm1.Q_Middle do
begin
close;
sql.Clear;
unprepare;
sql.Add('insert workingdatabasic(y1,y4,y2,y6,y21,');
sql.Add(L_field 'a16)');
sql.Add('values ( ' 
#39 e_1.Text #39 ',' 
#39 getdate() #39 ',' 
#39 '1' #39 ',' 
#39 L_y6_str #39 ',' 
#39 '5' #39 ',' 
#39 L_value #39 ',' 
#39 memo1.Text #39 
')');
prepare;
execsql;
close;
TRY TRY SEE
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-28 17:01:07 IP:211.23.xxx.xxx 未訂閱
引言: 一堆單引號,雙引號,看不清楚,改這樣是看看..
with dm1.Q_Middle do
begin
close;
sql.Clear;
unprepare;
sql.Add('insert workingdatabasic(y1,y4,y2,y6,y21,');
sql.Add(L_field 'a16)');
sql.Add('values ( ' 
#39 e_1.Text #39 ',' 
#39 getdate() #39 ',' 
#39 '1' #39 ',' 
#39 L_y6_str #39 ',' 
#39 '5' #39 ',' 
#39 L_value #39 ',' 
#39 memo1.Text #39 
')');
prepare;
execsql;
close;
TRY TRY SEE
兄弟~~#39是啥意思~~是空白嗎 -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-28 17:01:51 IP:211.21.xxx.xxx 未訂閱
引言: 请教 Miss Right Quote!什么意思?不懂?程序远代码如下, with dm1.Q_Middle do begin close; sql.Clear; unprepare; sql.Add('insert workingdatabasic(y1,y4,y2,y6,y21,'); sql.Add(L_field 'a16)'); sql.Add('values("' e_1.Text '",' 'getdate()' ',' '"1",' L_y6_str ','); sql.Add('5,"'); sql.Add(L_value ',"' memo1.Text '")'); prepare; execsql; close; 当执行到prepare;时就报错。系统产生的sql语句为SQL Prepare: MSSQL - insert workingdatabasic(y1,y4,y2,y6,y21, y16,a1,a10,a9,a12,a16) values("200304280004",getdate(),"1",4, 5," "sad","010001","唐河","苗圃","1","") 应该说没有问题才对呀。各位高手是怎么一回事呢?
您會不會覺得您這樣寫的程式碼很亂,不僅除錯困難,就算是您自已過了幾個月後,再來看這一段程式碼,可能連自已都搞不清楚,您可使用傳參數的方式來做,參考如下:
   with dm1.Q_Middle do
   begin
     Sql.Clear;
     Sql.Add('insert into workingdatabasic(y1,y4,y2,y6,y21,');
     Sql.Add(L_field ',a16)');
     Sql.Add('values(:y1,:y4,:y2,:y6,:y21');
     Sql.Add(':L_value,:a16)');
     ParamByName('y1').AsString := e_1.Text;
     ParamByName('y4').AsDateTime := Date;
     ParamByName('y2').AsString :='1' 
     ParamByName('y6').AsString := L_y6_str;
     ParamByName('y21').AsString := '5'
     ParamByName('L_value').AsString := L_value;
     ParamByName('a16').AsString := memo1.Text;
     ExecSQL;
   end;
您試試看吧.... ~小弟淺見,參考看看~
------
~小弟淺見,參考看看~
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-04-28 17:11:37 IP:211.74.xxx.xxx 未訂閱
hi...Jasonwong.. 一個#39是'(單引號),#39 e_1.Text #39 ,而2個的話就可以把中間的e_1.Text1包成字串丟到SQL語法中,我比較喜歡用#39,可以避免一堆單引號雙引號的看不清楚...
引言: 兄弟~~#39是啥意思~~是空白嗎 -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
發表人 - chih 於 2003/04/28 17:13:34
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-04-28 23:15:50 IP:61.70.xxx.xxx 未訂閱
引言: hi...Jasonwong.. 一個#39是'(單引號),#39 e_1.Text #39 ,而2個的話就可以把中間的e_1.Text1包成字串丟到SQL語法中,我比較喜歡用#39,可以避免一堆單引號雙引號的看不清楚...
哦哦~~學到一招了~~ -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
Perlman
一般會員


發表:0
回覆:5
積分:1
註冊:2002-03-14

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-04-29 00:02:49 IP:203.73.xxx.xxx 未訂閱
建議你可以試試看 QuotedStr 這個函數。 可以參考一下這個寫法: sql.Add('insert workingdatabasic(y1,y4,y2,y6,y21,'); sql.Add(L_field 'a16)'); sql.Add('values ( '+QuotedStr(e_1.Text) +','+QuotedStr(getdate()) ....... 不知道這樣看會不會比較清爽一些。 如果用 Parameter的方法也是很好,可是好像沒有辦法一次就抓到送到 Server 的 SQL指令。每次都要將 SQL 與 Parameter 一個一個對起來。有點給他累。 不會寫 Perl 的 Perlman
------
不會寫 Perl 的 Perlman
ctx62
一般會員


發表:4
回覆:28
積分:6
註冊:2002-12-12

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-04-29 09:20:47 IP:210.82.xxx.xxx 未訂閱
channel 兄的方法最好,最清楚,一目了然
系統時間:2024-05-14 20:45:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!