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

Query與update

 
jiannrong
一般會員


發表:58
回覆:36
積分:18
註冊:2002-05-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-07-05 01:00:36 IP:61.70.xxx.xxx 未訂閱
想請教一下 以下的程式片段 是指我讀取資料之後 放在edit1.text上 DM.Query1.close; DM.Query1.SQL.Clear; try DM.Query1.SQL.ADD('select * from first where title =''施工測量放樣'''); DM.Query1.Prepare; DM.Query1.Open; edit1.Text := inttostr(DM.Query1.FieldByName('People').Asinteger); edit9.Text := DM.Query1.FieldByName('Mission').AsString; //DateTimePicker1.Date := strtodate(DM.Query1.FieldByName('SDate').AsString); except on E: Exception do begin ShowMessage(E.Message); end; end; 而我在edit1.text作過修改之後 想要存入 作update的動作 此時 我的語法是 if checkbox9.Checked =true then begin DM.Query1.close; DM.Query1.SQL.Clear; try DM.Query1.SQL.ADD('update first set people='' strtoint(edit1.text) '' where title =''施工測量放樣'''); DM.Query1.Prepare; DM.Query1.Open; except on E: Exception do begin ShowMessage(E.Message); end; end; end; 編譯的時候沒有問題 但是 再執行的時候 會出現 Project xx.exe rainsed exception class EDBEngineError with message 'Type mismatch in expression' Process stopped. Use Step or Run to continue. 而我逐行執行 發現到他執行到 DM.Query1.Open; 這一行就不動了 請教一下 我的語法哪裡有錯呢 謝謝
hagar
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-07-05 07:33:37 IP:211.22.xxx.xxx 未訂閱
引言: DM.Query1.SQL.ADD('update first set people='' strtoint(edit1.text) '' where title =''施工測量放樣''');
上面這句改成:

  DM.Query1.SQL.ADD('update first set people='   edit1.text   ' where title =''施工測量放樣''');
發表人 - hagar 於 2002/07/05 08:45:59
Clarinet
高階會員


發表:9
回覆:97
積分:126
註冊:2002-05-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-07-05 10:23:26 IP:218.32.xxx.xxx 未訂閱
應該要改成 DM.Query1.ExeSQL; 有傳回值的用 Open 沒有傳回值的用 ExeSQL
------
GPS(全球衛星定位系統)
http://www.allgps.com
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-07-05 11:20:02 IP:203.204.xxx.xxx 未訂閱
引言: 編譯的時候沒有問題 但是 再執行的時候 會出現 Project xx.exe rainsed exception class EDBEngineError with message 'Type mismatch in expression' Process stopped. Use Step or Run to continue.
如果你有加入TField,請全部移除重加,或是移除。
人生有夢,逐夢而行 人若為善,福雖未至,禍已遠離。 人若為惡,禍雖未至,福已遠離。 http://www.taconet.com.tw/jieshu/
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
andersonhsieh
版主


發表:33
回覆:531
積分:439
註冊:2002-06-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-07-05 11:46:50 IP:211.20.xxx.xxx 未訂閱
引言: 想請教一下 以下的程式片段 是指我讀取資料之後 放在edit1.text上 DM.Query1.close; DM.Query1.SQL.Clear; try DM.Query1.SQL.ADD('select * from first where title =''施工測量放樣'''); DM.Query1.Prepare; DM.Query1.Open; edit1.Text := inttostr(DM.Query1.FieldByName('People').Asinteger); edit9.Text := DM.Query1.FieldByName('Mission').AsString; //DateTimePicker1.Date := strtodate(DM.Query1.FieldByName('SDate').AsString); except on E: Exception do begin ShowMessage(E.Message); end; end; 而我在edit1.text作過修改之後 想要存入 作update的動作 此時 我的語法是 if checkbox9.Checked =true then begin DM.Query1.close; DM.Query1.SQL.Clear; try DM.Query1.SQL.ADD('update first set people='' strtoint(edit1.text) '' where title =''施工測量放樣'''); DM.Query1.Prepare; DM.Query1.Open; except on E: Exception do begin ShowMessage(E.Message); end; end; end; 編譯的時候沒有問題 但是 再執行的時候 會出現 Project xx.exe rainsed exception class EDBEngineError with message 'Type mismatch in expression' Process stopped. Use Step or Run to continue. 而我逐行執行 發現到他執行到 DM.Query1.Open; 這一行就不動了 請教一下 我的語法哪裡有錯呢 謝謝
你要用同一個QUERY來做SELECT及UPDATE及DELETE時,記得不要ADDFIELD進來, UPDATE及DELETE時要用ExeSQL @@~~飛翔在天際的精靈~~@@
------
@@~~飛翔在天際的精靈~~@@
jiannrong
一般會員


發表:58
回覆:36
積分:18
註冊:2002-05-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-07-07 21:51:15 IP:61.70.xxx.xxx 未訂閱
謝謝 這個問題已經解決了
系統時間:2024-05-07 11:44:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!