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

ADO 基本關念

尚未結案
QOO10
初階會員


發表:59
回覆:89
積分:29
註冊:2002-12-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-25 13:25:13 IP:61.229.xxx.xxx 未訂閱
請教 ADO 基本關念: 1.如下設定 ADOQUREY1.Cursorlocation=clUseClient ADOQUREY1.CUSSORTYPE=CTKEYSET ADOQUREY1.LOCKTYPE=ltPessimistic 問題1: 書上說 ltPessimistic 會在 EDIT 時 LOCK RECORD 但我測過不 行?? 我先起動一個 AP 並選一RECORD 進入 EDIT 在起另一 AP (同一 EXE )再挑同一筆RECORD 再進 EDIT 但並無發生 Exception 理 應要發 生的??因前一 ap locktype=ltPessimistic 但並非預期 ??是我設錯還是我關念錯誤? 問題2: CtketSet 不是會保持與 SQL 已被 COMMIT 後資最新資料嗎我要用 如何展現其與 CtDyname 之差異如何實作?? 問題3: IsolationLeve 各 level 有何差異對(ms-sql 2000)而言一般如何 運用?? 謝謝!!
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-25 13:58:05 IP:61.155.xxx.xxx 未訂閱
1.为访止多个用户对同一个条记录修改,在进入修改之前将当前记录锁定, 当另一个用户欲操作该记录时,先对锁定标志进行检查. 您上面如果使记录处于adoquery1.Edit ;状态,那么再这之前一定已经(SELECT)产生记录集了,这是存在各自的CACHE中的当然不会影响的。    2.ctDynamic         Dynamic cursor; data modifications, deletions, and insertions by other users are visible; scrolling forward and back allowed.    3. ilUnspecified        Server is using a an isolation level other than what was requested and the specific isolation level cannot be determined.    ilChaos                Changes from more highly isolated transactions cannot be overwritten by the current connection.    ilReadUncommitted        Uncommitted changes in other transactions are visible.    ilBrowse                Uncommitted changes in other transactions are visible.    ilCursorStability        Changes from other transactions only visible after being committed.    ilReadCommitted        Changes from other transactions only visible after being committed.    ilRepeatableRead        Changes made in other transactions not visible, but requerying can retrieve new recordsets.    ilSerializable        Transactions conducted in isolation from other transactions.    ilIsolated        Transactions conducted in isolation from other transactions.    风花雪月 e梦情缘
------
风花雪月 e梦情缘
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-25 18:19:00 IP:203.204.xxx.xxx 未訂閱
QOO10, 您好 (1)您所說情形我也碰過,但是不會在Edit發生問題,會在Post時才發生問題,請您再試試看。 (2)ctKeySet:只存放主索引鍵內容,每當讀取某筆資料時才依據主索引鍵到資料庫抓取該筆資料的內容。因此只有在讀取(select)時可以即時得到內容,但是其他使用者新增(Insert)刪除(Delete)修改(Edit)主索引鍵內容就無法即時得知。 ctDynamic:與KeySet只要的差別在於當所要的資料無法在快取(cache)找到時,會重新到資料庫讀取主要鍵內容,因此可以得到即時的資料內容。 (3)不知您問的是TADOConnection中的IsolationLeve屬性,還是TDatabase元件中的TransIsolation屬性,如果是前者,那wnhoo已將help的說明列出了,如果是後者說明如下: tiDirtyRead:不論資料表內的資料是否正被其他的異動作業所使用,您都可以讀取,但是當其他的異動作業Commit之後,您所讀取的會是舊資料(Commit之前的資料)。(MS-SQL支援) tiReadCommitted:如果您讀取到的是另一個異動作業正在修改的資料,則必須等另一個異動作業Commit之後,您才讀得到修改後的新資料,此等級不允許您讀取未Commit的資料。(MS-SQL支援) tiRepeatableRead:您讀取某一筆資料後,該筆資料將不會被任何其他的使用者改變,這個等級是最嚴格的,僅有少數關聯式資料庫支援此等級。(MS-SQL不支援) 有時由Help檔中並無法很了解該元件或屬性的說明,常常要透過範例才能了解,但也不是所有說明都有範例的,又說明檔都是英文,而小妹我的英文程度有很差,那怎麼辦咧?就只能透過一般坊間的書籍囉!第二與第三個問題的回題都是由書籍得來的,分別是旗標的C Builder6.0資料庫程式設計,作者陳俊源。以及博碩的C Builder6徹底研究,作者陳燦煌。 ======================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
QOO10
初階會員


發表:59
回覆:89
積分:29
註冊:2002-12-25

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-05-26 09:38:15 IP:61.229.xxx.xxx 未訂閱
您好: 首先謝謝兩位!! 1.为访止多个用户对同一个条记录修改,在进入修改之前将当前记录锁定, 当另一个用户欲操作该记录时,先对锁定标志进行检查. 我就是想試您說的結果所以設 locktype=ltPessimistic 但還是我不知如何 檢查?? 2.adoconnect 之 isolationleve 設定(我可能表達不好,我是想 知道 ms-sql 支援那幾種,我在 sql-profiler 如何看出不的確 有照設定走. 謝謝兩位!!
系統時間:2024-06-01 23:17:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!