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

關於 delphi 寫入資料掛鐘

缺席
david0927
一般會員


發表:12
回覆:7
積分:2
註冊:2008-11-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2015-01-16 08:38:12 IP:59.120.xxx.xxx 訂閱
各位大大好, 我是會員david0927

我有一個關於 delphi 寫入資料的問題, 想請教各位前輩:
當多個使用者同時使用一個 table,如同時開起產品基本資料檔,
當一個人正在修改一筆資料其它人就無法存檔(掛鐘)
請問這個問題不知如何解決, 有沒有強迫存檔或其他
方法解決這個問題, 謝謝,感恩

------
陳效聖
老大仔
尊榮會員


發表:77
回覆:835
積分:1082
註冊:2006-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2015-01-16 09:18:56 IP:210.61.xxx.xxx 未訂閱
比較基本的做法...

先在產品基本檔中開一個欄位
當甲想要修改產品A的資料時
先判斷該欄位是否有值
沒有的話就將該欄位寫一個值進去
然後可以開始修改
(反之, 有值的話就不能修改)
假如乙現在也要去修改產品A的資料
先判斷剛剛講的欄位是否已經有值
假如已經有值 代表有人正在編輯中
所以會無法修改
以此類堆...
david0927
一般會員


發表:12
回覆:7
積分:2
註冊:2008-11-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2015-01-16 10:08:24 IP:59.120.xxx.xxx 訂閱
謝謝前輩的建議, 我會按照此建議試試看,
再請請問前輩有沒有強迫存檔(post)
謝謝
------
陳效聖
tuga
高階會員


發表:16
回覆:105
積分:104
註冊:2002-07-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2015-01-16 11:08:45 IP:1.34.xxx.xxx 訂閱

Delphi - How to test if a Table is locked?

http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_21863413.html

Requires DB, DBTable, BDE in the uses clause.

function IsRecordLocked(DataSet: TBDEDataSet): LongBool;
begin

// Check for active dataset
if DataSet.Active then
begin
// Check if record is locked, if an error occurs return false
if (Bde.DbiIsRecordLocked(DataSet.Handle, result) <> 0) then result:=False;
end
else
// Not active
result:=False;

end;


P.D.
版主


發表:571
回覆:3888
積分:3677
註冊:2006-10-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2015-01-22 12:58:47 IP:118.169.xxx.xxx 未訂閱
通常我們會用"交易模式" Transaction 來操作, 但這恐無法以一文就說明白, 建議你先google一下這部份資料
===================引 用 david0927 文 章===================
各位大大好, 我是會員david0927

我有一個關於 delphi 寫入資料的問題, 想請教各位前輩:
當多個使用者同時使用一個 table,如同時開起產品基本資料檔,
當一個人正在修改一筆資料其它人就無法存檔(掛鐘)
請問這個問題不知如何解決, 有沒有強迫存檔或其他
方法解決這個問題, 謝謝,感恩

pcplayer99
尊榮會員


發表:142
回覆:740
積分:591
註冊:2003-01-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2015-01-30 11:18:43 IP:120.236.xxx.xxx 訂閱
现在是 2015 年了,还在让用户客户端直接连数据库?

用 Delphi 的话,早该换成多层模式了。Delphi 最新的技术是采用 DataSnap。这样的话,用户客户端是 ClientDataSet,打开后,一直在那编辑一个表,因为用户并没一直连着 DataBase,就不会有 Table 被锁住的情况。
系統時間:2017-12-18 7:18:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!