請問新增數值型態欄位資料,不知那有問題。 |
尚未結案
|
t0288542
中階會員 發表:216 回覆:254 積分:94 註冊:2004-10-06 發送簡訊給我 |
請問各位。
以下sql文,為什麼出現ADOQuery12.Parameter 'Temp2' not found. ADOQuery12.Close;
ADOQuery12.SQL.Clear;
ADOQuery12.SQL.Add(' Insert Into CBCST ');
ADOQuery12.SQL.Add(' (ST001,ST002,ST003,ST004,ST005,ST006,ST007, ');
ADOQuery12.SQL.Add(' ST008,ST009,ST010,ST011,ST012,ST013,ST014) ');
ADOQuery12.SQL.Add(' Values ');
ADOQuery12.SQL.Add(' (''' N6 ''',''' N7 ''',''' SR ''',:Temp2,:Temp3,''' T1 ''',''' T2 ''', ');
ADOQuery12.SQL.Add(' ''' T3 ''',''' T4 ''',0,''0'',''原料型態報廢'','''','''') ');
ADOQuery12.Parameters.ParamByName('Temp2').Value := T5;
ADOQuery12.Parameters.ParamByName('Temp3').Value := T6;
ADOQuery12.sql.SaveToFile('c:/Insert.txt');
ADOQuery12.ExecSQL;
ADOQuery12.Close; 麻煩大家。我找好久,就是不知道自己錯在那裡。
|
pillar62
資深會員 發表:9 回覆:324 積分:271 註冊:2002-04-15 發送簡訊給我 |
|
ko
資深會員 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
t0288542 你好:
引言: ... .. ADOQuery12.SQL.Add(' Values '); ADOQuery12.SQL.Add(' (''' N6 ''',''' N7 ''',''' SR ''',:Temp2,:Temp3,''' T1 ''',''' T2 ''', '); ADOQuery12.SQL.Add(' ''' T3 ''',''' T4 ''',0,''0'',''原料型態報廢'','''','''') '); ADOQuery12.Parameters.ParamByName('Temp2').Value := T5; ... .. .ADOQuery12.SQL.Add(' Values '); ADOQuery12.SQL.Add(' (' Quotedstr(N6) ',' Quotedstr(N7) ',' Quotedstr(SR) ',' //:Temp2,:Temp3,' Quotedstr(T5) ',' //* Quotedstr(T6) ',' //* Quotedstr(T1) ',' Quotedstr(T2) ',' Quotedstr(T3) ',' Quotedstr(T4) ',' Quotedstr('0') ',' Quotedstr('0') ',' Quotedstr('原料型態報廢') ',' Quotedstr('') ',' Quotedstr('') ')'); //*ADOQuery12.Parameters.ParamByName('Temp2').Value := T5; //*ADOQuery12.Parameters.ParamByName('Temp3').Value := T6; ADOQuery12.sql.SaveToFile('c:/Insert.txt');
------
====================== 昏睡~ 不昏睡~ 不由昏睡~ |
Arlung Miao
初階會員 發表:9 回覆:44 積分:25 註冊:2004-08-25 發送簡訊給我 |
我只是大概看了一下。同樣覺得可能是引號的問題。 遇到這類問題,我覺得首先應該將SQL Show出來看看是否符合語法,或者和自己的預期是否一致。我看到了代碼中ADOQuery12.sql.SaveToFile('c:/Insert.txt');但是,應該提前到Para賦值之前。 另外,我也建議使用系統提供的Quotedstr函數。而我自己則是寫了個函數,因爲非常的常用,所以將它命名為Q
function Q(cField: string ; lAddComma: Boolean = False): string; var cQuo: string; cMiddleQuo: string; begin cQuo := Chr(39); cMiddleQuo := cQuo ' Chr(39) ' cQuo; cField := AnsiReplaceStr(cField, cQuo, cMiddleQuo); Result := cQuo cField cQuo; if lAddComma then begin Result := Result ', '; end; end;所以你之前的程式改寫為: ... ADOQuery12.SQL.Clear; ADOQuery12.SQL.Add('Insert Into CBCST ' ' (ST001,ST002,ST003,ST004' ', ST005,ST006,ST007,ST008' ', ST009,ST010,ST011,ST012' ', ST013,ST014)' ' Values' ' (' ' ' Q(N6); ', ' Q(N7); ', ' Q(SR); ', ' Q(':Temp2'); ', ' Q(':Temp3'); ', ' Q(T1); ', ' Q(T2); ', ' Q(T3); ', ' Q(T4); ', ' '0'; ', ' Q('0'); ', ' Q('原料型態報廢'); ', ' Q(''); ', ' Q(''); ' )' ); ADOQuery12.Parameters.ParamByName('Temp2').Value := T5; ADOQuery12.Parameters.ParamByName('Temp3').Value := T6; ADOQuery12.ExecSQL; ... |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |