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

使用TUPDATESQL 的問題

答題得分者是:Mickey
水晶人
一般會員


發表:3
回覆:6
積分:1
註冊:2007-08-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-08-17 11:41:59 IP:202.175.xxx.xxx 訂閱
開發環境:delphi 5 + sql server

已經作出了以下SETTING
QUERY SETTING:
CachedUpdates := true
RequestLive := true
updateObject := UpdateSQL

UpdateSQL SETTING
MODIFYSQL =update TEST_TABLE Set Code = :ws_code, Int = :ws_int,Str = :ws_str where id = :ws_id
===================================================================================
在程式碼的處理edit 數據的區段有以下code

<textarea class="delphi" rows="10" cols="60" name="code">with Query do begin Edit; Params.ParseSQL(UpdateSQL.ModifySQL.Text,True); ParamByName('ws_id').AsInteger := ws_id; ParamByName('ws_str').AsString := ws_str; ParamByName('ws_code').AsInteger := ws_code; ParamByName('ws_int').AsInteger := ws_int; // ws_id, ws_str, ws_code, ws_int變數已經有相應形態既值 ApplyUpdates; <--- 執行到呢句就會出現錯誤訊息 Field 'ws_id' is of an unknown end; </textarea>


由於第一次使用TUPDATESQL,煩望各位指教,是否有任何語句在applyupdates 之前有所遺留請在此區域輸入程式碼
編輯記錄
水晶人 重新編輯於 2007-08-17 11:46:24, 註解 無‧
kevin2004
資深會員


發表:18
回覆:463
積分:416
註冊:2005-05-29

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-08-20 07:25:37 IP:61.219.xxx.xxx 訂閱
是不是你的wd_is為後來又新增的欄位,可是你又忘了回去更新這個sql內容了?
------
Kevin
水晶人
一般會員


發表:3
回覆:6
積分:1
註冊:2007-08-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-08-20 09:07:51 IP:202.175.xxx.xxx 訂閱
多謝回答~~~
我的資料庫沒有作任何結構上的改變~~
modifySQL 亦是 hard code 沒有在程式執行時改變
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-08-20 14:02:12 IP:218.163.xxx.xxx 訂閱
你好:

很久沒碰 BDE 了...應該是你 Field Name 與 Parameter Name 不相同...造成 Update SQL 無法正確判斷 TParam.Datatype

試試看:

UpdateSQL SETTING
MODIFYSQL =update TEST_TABLE Set Code = :Code, Int = :Int,Str = :Str where id = :id

1. with Query do
2. begin
3. Edit;
4. Params.ParseSQL(UpdateSQL.ModifySQL.Text,True);
5. ParamByName('id').AsInteger := ws_id;
6. ParamByName('Str').AsString := ws_str;
7. ParamByName('Code').AsInteger := ws_code;
8. ParamByName('Int').AsInteger := ws_int;
9. // ws_id, ws_str, ws_code, ws_int變數已經有相應形態既值
10. ApplyUpdates; <--- 執行到呢句就會出現錯誤訊息 Field 'ws_id' is of an unknown
11. end;
水晶人
一般會員


發表:3
回覆:6
積分:1
註冊:2007-08-08

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-08-20 15:25:29 IP:202.175.xxx.xxx 訂閱
thx for your reply first~~~
改左Field Name 與 Parameter Name同名~~
唔會出 Field 'ws_id' is of an unknown type 既error message
不過做到query.applyupdate既時候都會出錯~~~update fails
===================引 用 Mickey 文 章===================
你好:

很久沒碰 BDE 了...應該是你 Field Name 與 Parameter Name 不相同...造成 Update SQL 無法正確判斷 TParam.Datatype

試試看:

UpdateSQL SETTING
??? MODIFYSQL =update TEST_TABLE?? Set? Code = :Code, Int = :Int,Str = :Str? where id? = :id

?? 1. with Query do?
?? 2. begin?
?? 3. Edit;?
?? 4. Params.ParseSQL(UpdateSQL.ModifySQL.Text,True);?
?? 5. ParamByName('id').AsInteger := ws_id;?
?? 6. ParamByName('Str').AsString := ws_str;?
?? 7. ParamByName('Code').AsInteger := ws_code;?
?? 8. ParamByName('Int').AsInteger := ws_int;?
?? 9. // ws_id, ws_str, ws_code, ws_int變數已經有相應形態既值?
? 10. ApplyUpdates; <--- 執行到呢句就會出現錯誤訊息 Field 'ws_id' is of an unknown?
? 11. end;?
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-08-21 09:54:52 IP:218.163.xxx.xxx 訂閱
出錯...

有錯誤訊息嗎 ?

===================引 用 水晶人 文 章===================
不過做到query.applyupdate既時候都會出錯~~~update fails
水晶人
一般會員


發表:3
回覆:6
積分:1
註冊:2007-08-08

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-08-27 09:11:29 IP:202.175.xxx.xxx 訂閱
thx for your reply~~~
係update failed 出錯~~~
現在只是源用最簡單的TQUERY 更新刪除方法~~~
目前單表更新的情況還能應付下來~~~~
待有時間會再研究TUPDATESQL的用法~~~

===================引 用 Mickey 文 章===================
出錯...

有錯誤訊息嗎 ?

===================引 用 水晶人 文 章===================
不過做到query.applyupdate既時候都會出錯~~~update fails
系統時間:2024-05-21 6:23:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!