dbExpress 存檔問題 |
答題得分者是:sryang
|
feng2939
一般會員 發表:22 回覆:30 積分:15 註冊:2013-03-26 發送簡訊給我 |
初學新手, 請教諸位先進問題,
1. form 設定如下: ---> DataSource ---> DBNavigator SQLConnection ---> SQLTable ---> DataSetProvider ---> ClientDataSet ---> DBEdit 2. 在 DBNavigator 可 新增, 刪除, 修改 record, First, Prior, Next, Last .. 均無問題 3. 在離開 form 時, db server table 並沒產生任何異動, 請教是那裡出了問題. 謝謝!!!
------
DVF |
feng2939
一般會員 發表:22 回覆:30 積分:15 註冊:2013-03-26 發送簡訊給我 |
補充說明:
XE3 MS SQL2008 ===================引 用 feng2939 文 章=================== 初學新手, 請教諸位先進問題, 1. form 設定如下: ---> DataSource ---> DBNavigator SQLConnection ---> SQLTable ---> DataSetProvider ---> ClientDataSet ---> DBEdit 2. 在 DBNavigator 可 新增, 刪除, 修改 record, First, Prior, Next, Last .. 均無問題 3. 在離開 form 時, db server table 並沒產生任何異動, 請教是那裡出了問題. 謝謝!!!
------
DVF |
max5020
資深會員 發表:30 回覆:277 積分:321 註冊:2003-06-04 發送簡訊給我 |
|
feng2939
一般會員 發表:22 回覆:30 積分:15 註冊:2013-03-26 發送簡訊給我 |
|
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
|
feng2939
一般會員 發表:22 回覆:30 積分:15 註冊:2013-03-26 發送簡訊給我 |
謝謝, GrandRURU
有試過, 得到的結果如下: -- SQL State: HY000, SQL Error Code:0 連線正忙碌於另一命令結果 ===================引 用 GrandRURU 文 章=================== ClientDataSet1.ApplyUpdates(0); ===================引 用 feng2939 文 章=================== 謝謝!!! 沒 commit , 全部都是使用 dbExpress 元件 ps: 若是用 BDE 元件, 則沒這問題 ===================引 用 max5020 文 章=================== 沒有COMMIT ?
------
DVF |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
|
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
新版Delphi 的 DBX DRIVER FOR SQL Server 需要使用 SQL Native Client
不過你可以連結,就應該不是這方面的問題,以下有另一種解法,請參閱: Connecting to SQL Server using Delphi and dbExpress
編輯記錄
GrandRURU 重新編輯於 2013-04-18 16:16:38, 註解 無‧
|
sryang
尊榮會員 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
自己用程式去 open SQLTable,再 open ClientDataSet,我說的對嗎?
這樣寫是百分之百錯誤的用法,用 DbExpress 時要記住,這是 3-tier 的架構 SQLTable / SQLQuery / SQLDataSet 與 DataSetPrivider 是「Server 端」 ClientDataSet 是「Client 端」 Open / Close 等操作,只須針對 Client 端操作就可以,Server 端會自動跟著 Open / Close 另外,連接到 SQL Server 時,連線會被正在開啟的資料集鎖住,無法更新,要把已開啟的資料集關閉才可以更新 這裡說的「資料集」,就是 Server 端的資料集 當你自己控制 Server 端資料集的 Open / Close 時,極容易因為疏忽而忘了關閉,導致更新失敗 最簡單的方法就是
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/ |
feng2939
一般會員 發表:22 回覆:30 積分:15 註冊:2013-03-26 發送簡訊給我 |
非常感謝, sryang 及 GrandRURU 不斷的提供解決方法.
1. 因是初學者, 都是用 Delphi 基本的元件在 Try, 還沒開始寫程式, 用到 open SQLTable 及 open ClientDataSet 2. 安裝了 server 2008 r2 Native client 3. 加了一段 SQLConnection1.CloseDataSets() , 一切都 OK 了, 問題解決了. 這裡的人, 都很熱心, 很喜歡這兒... ===================引 用 sryang 文 章=================== 自己用程式去 open SQLTable,再 open ClientDataSet,我說的對嗎? 這樣寫是百分之百錯誤的用法,用 DbExpress 時要記住,這是 3-tier 的架構 SQLTable / SQLQuery / SQLDataSet 與 DataSetPrivider 是「Server 端」 ClientDataSet 是「Client 端」 Open / Close 等操作,只須針對 Client 端操作就可以,Server 端會自動跟著 Open / Close 另外,連接到 SQL Server 時,連線會被正在開啟的資料集鎖住,無法更新,要把已開啟的資料集關閉才可以更新 這裡說的「資料集」,就是 Server 端的資料集 當你自己控制 Server 端資料集的 Open / Close 時,極容易因為疏忽而忘了關閉,導致更新失敗 最簡單的方法就是
------
DVF |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |