如何顯示Excute之後,所修改的數量 |
缺席
|
lovemari
中階會員 發表:134 回覆:224 積分:76 註冊:2005-08-18 發送簡訊給我 |
請教下列Excute之後
我想寫如果沒有序號可以DEL 要秀出警告 可不知道那裡錯了耶.. 跑出來結果都只有跑第一段G_OC_SN查無此序號 但是序號也被刪除了 csTemp = CilentDataSet [code delphi] With csTemp5 do //G_OC_SN begin Close; Params.Clear; CommandText := 'DELETE SAJET.G_OC_SN ' 'WHERE PART_SN = ''' Edit1.Text ''' '; Execute; //Label2.Caption := '刪除:' IntToStr(csTemp.ChangeCount); IF csTemp5.ChangeCount = 0 then begin showmessage ('G_OC_SN查無此序號'); end; IF csTemp5.ChangeCount > 1 then begin showmessage ('退料成功'); Label1.Caption := '序號:' Edit1.Text '已被退出MR生產'; end; end; [/code]
------
Program : Delphi 7 DataBase : Oracle 9i Client : ClientDataSet |
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
|
lovemari
中階會員 發表:134 回覆:224 積分:76 註冊:2005-08-18 發送簡訊給我 |
可是我把CLOSE 關掉 結果還是一樣噎
[code delphi] With csTemp5 do //G_OC_SN begin //Close; Params.Clear; CommandText := 'DELETE SAJET.G_OC_SN ' 'WHERE PART_SN = ''' Edit1.Text ''' '; Execute; Label5.Caption := 'OC_SN:' IntToStr(csTemp5.ChangeCount); IF csTemp5.ChangeCount = 0 then begin showmessage ('G_OC_SN查無此序號'); end; IF csTemp5.ChangeCount > 1 then begin showmessage ('退料成功'); //Label6.Caption := '序號:' Edit1.Text '已被退出MR生產'; end; end; [/code]
------
Program : Delphi 7 DataBase : Oracle 9i Client : ClientDataSet |
st33chen
尊榮會員 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
插花一下,
您的兩個判斷 IF csTemp5.ChangeCount = 0 then IF csTemp5.ChangeCount > 1 then 一個判斷是否為 0, 一個判斷是否 大於 1 正好漏掉 = 1 的情況啊 您應該是手誤打錯了吧. 參考一下 ===================引 用 lovemari 文 章=================== 請教下列Excute之後 我想寫如果沒有序號可以DEL 要秀出警告 可不知道那裡錯了耶.. 跑出來結果都只有跑第一段G_OC_SN查無此序號 但是序號也被刪除了 csTemp = CilentDataSet [code delphi] With csTemp5 do //G_OC_SN begin Close; Params.Clear; CommandText := 'DELETE SAJET.G_OC_SN ' 'WHERE PART_SN = ''' Edit1.Text ''' '; Execute; //Label2.Caption := '刪除:' IntToStr(csTemp.ChangeCount); IF csTemp5.ChangeCount = 0 then begin showmessage ('G_OC_SN查無此序號'); end; IF csTemp5.ChangeCount > 1 then begin showmessage ('退料成功'); Label1.Caption := '序號:' Edit1.Text '已被退出MR生產'; end; end; [/code]
------
IS IT WHAT IT IS 我是 李慕白 請倒著唸. 又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦); 都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲. |
lovemari
中階會員 發表:134 回覆:224 積分:76 註冊:2005-08-18 發送簡訊給我 |
|
st33chen
尊榮會員 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
我是沒用過 clientdataset, 不過單從您的程式碼來看, 是不是應該
先判斷 changecount=0 再判斷 changecount>0 或乾脆直接 if .....changecount<=0 then begin brabrabra; end else begin brabrabra2; end if; ===================引 用 lovemari 文 章=================== 我修改成 ChangeCount > 0 ChangeCount = 0 結果都一樣 我開始懷疑 ChangeCount 是否不是我要的= =
------
IS IT WHAT IT IS 我是 李慕白 請倒著唸. 又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦); 都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
編輯記錄
st33chen 重新編輯於 2008-11-07 09:30:39, 註解 無‧
|
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
ChangeCount 是指 DataSet 開檔後, 被 User 修改或被 Code 修改的筆數, 不是 Execute 的筆數.
因查不到 Excute 有回傳的資訊, 故建議您用 'SELECT COUNT(*) AS intCount FROM SAJET.G_OC_SN WHERE PART_SN = ''' Edit1.Text ''' '; 得到將 DELETE 的筆數 intCount. 補充一下, TADOQuery 有提供 RowsAffected, 但 TClientDataSet 無, 只好自行變通一下. 就是說: 山不轉路轉, 沒辦法就自己想辦法啦! |
lovemari
中階會員 發表:134 回覆:224 積分:76 註冊:2005-08-18 發送簡訊給我 |
|
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
|
lovemari
中階會員 發表:134 回覆:224 積分:76 註冊:2005-08-18 發送簡訊給我 |
大大 我這段那裡錯了嗎
錯誤訊息是找不到 INCOUNT [code delphi] With csTempCount do //Count G_OC_SN begin Close; Params.Clear; CommandText := 'SELECT COUNT(PART_SN) "INCOUNT" ' 'FROM SAJET.G_OC_SN ' 'WHERE PART_SN = ''' Edit1.Text ''' '; Execute; I := FieldByName('INCOUNT').AsInteger; Label5.Caption := 'OC_SN:' IntToStr(I) ; Edit1.Clear; [/code] ===================引 用 herbert2 文 章=================== 我想補充 上述方式 因為是去Count Edit1的值 那如果這 沒有搜尋到自然就
------
Program : Delphi 7 DataBase : Oracle 9i Client : ClientDataSet |
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
|
lovemari
中階會員 發表:134 回覆:224 積分:76 註冊:2005-08-18 發送簡訊給我 |
不能用雙引號阿 可我之前有這樣寫過耶
SELECT SN "序號",DATE "日期" 用雙引號方式去做 ============================= 那我剛剛把 "INCOUNT" 改成 'INCOUNT' 也不可以 INCOUNT 變成白色的字體 無法執行 然後又改成 雙單引號 ''INCOUNT'' 結果跑出來是 無法在應該是出現FROM關鍵字上的地方找到它
------
Program : Delphi 7 DataBase : Oracle 9i Client : ClientDataSet
編輯記錄
lovemari 重新編輯於 2008-11-14 14:21:19, 註解 無‧
|
christie
資深會員 發表:30 回覆:299 積分:475 註冊:2005-03-25 發送簡訊給我 |
您用什麼資料庫啊?
===================引 用 lovemari 文 章=================== 不能用雙引號阿 可我之前有這樣寫過耶 SELECT SN "序號",DATE "日期" 用雙引號方式去做 ============================= 那我剛剛把 "INCOUNT" 改成 'INCOUNT' 也不可以 INCOUNT 變成白色的字體 無法執行 然後又改成 雙單引號 ''INCOUNT'' 結果跑出來是 無法在應該是出現FROM關鍵字上的地方找到它
------
What do we live for if not to make life less difficult for each other? |
lovemari
中階會員 發表:134 回覆:224 積分:76 註冊:2005-08-18 發送簡訊給我 |
|
christie
資深會員 發表:30 回覆:299 積分:475 註冊:2005-03-25 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |