全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1694
推到 Plurk!
推到 Facebook!

需要包transcation但不知如何解決

尚未結案
lauracyt
一般會員


發表:4
回覆:3
積分:1
註冊:2002-03-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-08-31 15:50:35 IP:211.20.xxx.xxx 未訂閱
需要包transcation但不知如何解決 各位前?感謝之前的協助 晚?有一事相?教 包SQL SERVER TRANSCATION的?題 需要包transcation但不知如何解決 在SQL MONITOR下看到: STRAT TRANSCATION UPADTE GLBI SET BICODE='DO'... SELECT * FROM GLBFTR,GLBGTR.... .....程式內有包含WHILE 回圈及INSERT其他TABLE等?述句 UPDATE GLBI SET BICODE='NT'... //於是SQL SERVER就不回應了.... //但晚?拿掉TRANSCATION就正常了 //可是不解的是... //若單?拿那幾句包transcation跑是沒?題的 //晚?的BDE 設定的是 SQLPASSTHRU MODE:SHARED AUTOCOMMIT // DATABASE TransIsolation屬性設定為tiReadCommitted //晚?於其他的設定都拿來配,結果都是沒回應, //甚至連EXECSQL('SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED') //也是都沒回應, 我?怎麼辦 ps他的姐妹情況就是:回圈update glbftr 後又select glbftr就沒回應了 //也是都沒回應, 我?怎麼辦
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-09-02 18:21:44 IP:61.221.xxx.xxx 未訂閱
可否將您的問題再用繁體Big5碼再寫過一次,看不太懂耶? ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
lauracyt
一般會員


發表:4
回覆:3
積分:1
註冊:2002-03-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-09-03 10:46:22 IP:211.20.xxx.xxx 未訂閱
引言: 可否將您的問題再用繁體Big5碼再寫過一次,看不太懂耶? ~~~Delphi K.Top討論區站長~~~
各位前輩不好意思 需要包transcation但不知如何解決 晚輩有一事請教 包SQL SERVER TRANSCATION的問題 需要包transcation但不知如何解決 在SQL MONITOR下看到: STRAT TRANSCATION UPADTE GLBI SET BICODE='DO'... //以上UPDATE程式是以回圈執行 SELECT * FROM GLBI WHERE BICODE='NT'... //於是SQL SERVER就不回應了.... //但拿掉TRANSCATION就正常了
yamapig
一般會員


發表:12
回覆:47
積分:21
註冊:2002-03-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-09-03 13:07:35 IP:211.22.xxx.xxx 未訂閱
我有試過,可以正常執行啊! 把BDE 設定 SQLPASSTHRU MODE: 改成 SHARED NotAUTOCOMMIT 再試試看.... 靜中見真境 淡中識本然 發表人 - yamapig 於 2002/09/03 13:09:05
------
靜中見真境 淡中識本然
lauracyt
一般會員


發表:4
回覆:3
積分:1
註冊:2002-03-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-09-09 18:06:48 IP:211.20.xxx.xxx 未訂閱
引言: 我有試過,可以正常執行啊! 把BDE 設定 SQLPASSTHRU MODE: 改成 SHARED NotAUTOCOMMIT 再試試看.... 靜中見真境 淡中識本然 發表人 - yamapig 於 2002/09/03 13:09:05
謝謝你我試過更改bde但還是不行 以下就是我常被lock的程式碼: 希望各位前輩能幫忙解決這,該如何包transcation DATABASE1.StartTransaction; QUERY1.CLOSE; QUERY1.SQL.CLEAR; QUERY1.SQL.Add('SELECT * FROM GLBI WHERE BICODE=''DO'''); QUERY1.OPEN; WHILE NOT QUERY1.EOF DO BEGIN QUERY2.CLOSE; QUERY2.SQL.CLEAR; QUERY2.SQL.Add('UPDATE GLBI SET BINO=BINO 1 WHERE BICODE=''XX'' AND BIPLNT=''TF'' AND BIYYMM=09109'); QUERY2.EXECSQL; QUERY1.NEXT; END; QUERY2.CLOSE; QUERY2.SQL.CLEAR; QUERY2.SQL.Add('SELECT * FROM GLBI WHERE BIPLNT=''TF'' AND BIYYMM=09109'); QUERY2.OPEN; DATABASE1.COMMIT;
lauracyt
一般會員


發表:4
回覆:3
積分:1
註冊:2002-03-18

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-09-09 18:23:34 IP:211.20.xxx.xxx 未訂閱
以下就是我常被lock的程式碼: 希望各位前輩能幫忙解決這,該如何包transcation DATABASE1.StartTransaction; QUERY1.CLOSE; QUERY1.SQL.CLEAR; QUERY1.SQL.Add('SELECT * FROM GLBI WHERE BICODE=''DO'''); QUERY1.OPEN; WHILE NOT QUERY1.EOF DO BEGIN QUERY2.CLOSE; QUERY2.SQL.CLEAR; QUERY2.SQL.Add('UPDATE GLBI SET BINO=BINO 1 WHERE BICODE=''XX'' AND BIPLNT=''TF'' AND BIYYMM=09109'); QUERY2.EXECSQL; QUERY1.NEXT; END; QUERY2.CLOSE; QUERY2.SQL.CLEAR; QUERY2.SQL.Add('SELECT * FROM GLBI WHERE BIPLNT=''TF'' AND BIYYMM=09109'); QUERY2.OPEN; DATABASE1.COMMIT;
Wesly
中階會員


發表:14
回覆:103
積分:53
註冊:2002-05-31

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-09-12 16:38:23 IP:211.22.xxx.xxx 未訂閱
DATABASE1.StartTransaction; try QUERY1.CLOSE; QUERY1.SQL.CLEAR; QUERY1.SQL.Add('SELECT * FROM GLBI WHERE BICODE=''DO'''); QUERY1.OPEN; WHILE NOT QUERY1.EOF DO BEGIN QUERY2.CLOSE; QUERY2.SQL.CLEAR; QUERY2.SQL.Add('UPDATE GLBI SET BINO=BINO 1 WHERE BICODE=''XX'' AND BIPLNT=''TF'' AND BIYYMM=09109'); QUERY2.EXECSQL; QUERY1.NEXT; END; DATABASE1.COMMIT; except Database1.Rollback; end; //本開啟動作要放在Commit 或 Rollback之後, 因為在Transaction下 //Update的Table會被Lock, 所以沒有回應 QUERY2.CLOSE; QUERY2.SQL.CLEAR; QUERY2.SQL.Add('SELECT * FROM GLBI WHERE BIPLNT=''TF'' AND BIYYMM=09109'); QUERY2.OPEN; //如果您一定在裏面下, 在MS-SQL的資料庫中語法如下 SELECT * FROM GLBI with(nolock) WHERE BIPLNT=''TF'' AND BIYYMM=09109 應該就可以了, 但若為別的資料庫, 我就不知道了, 希望能對您有些幫助
系統時間:2024-05-05 5:16:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!