3-Tir 存檔問題 |
尚未結案
|
skyangel
一般會員 發表:11 回覆:9 積分:4 註冊:2003-04-13 發送簡訊給我 |
環境資料如下:
DataBase :access
應用伺服端:os:Win2000server 用adoconnection連接
Adoquery,DataSetProvider元件
客戶端: 用socketconnection跟伺服端連接
ClientDataSet元件 現在有一個問題 當我從伺服端抓取資料到前端並加以編修後
要回存到伺服端時出現這樣的錯誤訊息 " mismatch in datapacket " 請問各位大大; 這是哪裡的問題? 另外如果用BDE連結 伺服端連結是正常
但前端一開啟就出現這樣的錯誤訊息 " Invalid configuration parameter " 有沒哪位大大知道是甚麼問題?
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
skyangel
一般會員 發表:11 回覆:9 積分:4 註冊:2003-04-13 發送簡訊給我 |
|
likush
高階會員 發表:5 回覆:235 積分:103 註冊:2002-10-08 發送簡訊給我 |
|
skyangel
一般會員 發表:11 回覆:9 積分:4 註冊:2003-04-13 發送簡訊給我 |
環境資料如下:
DataBase :access
應用伺服端:os:Win2000server 用adoconnection連接
Adoquery,DataSetProvider元件
客戶端: 用socketconnection跟伺服端連接
ClientDataSet元件 現在有一個問題 當我從伺服端抓取資料到前端並加以編修後
要回存到伺服端時出現這樣的錯誤訊息 " mismatch in datapacket " 請問各位大大; 這是哪裡的問題? 另外如果用BDE連結 伺服端連結是正常
但前端一開啟就出現這樣的錯誤訊息 " Invalid configuration parameter " 有沒哪位大大知道是甚麼問題?
======================================================= Dear likush;
AdoConnection 連接是正常的,
前端程式也可以正常的下載資料並加以編修
但在按下 存檔按鍵 後
就出現這個錯誤訊息 下面是程式片斷
RemoteDataModule 的自訂存檔程式 procedure TATMCasherServer.ApplyUpdates(CustVar: OleVariant);
var
ErrCount :Integer;
begin
ADOConnection1.BeginTrans;
try
if not VarIsNull(CustVar) then
begin
CustVar :=DsProvider2.ApplyUpdates(CustVar, 0, ErrCount);
if ErrCount>0 then
SysUtils.Abort;
end;
ADOConnection1.CommitTrans;
except
ADOConnection1.RollbackTrans;
end; end; 前端的存檔程序:
procedure TDM.ApplyUpdates2;
Var
CustVar :OleVariant;
begin
ClientDataSet2.CheckBrowseMode;
if ClientDataSet2.ChangeCount>0 then
CustVar :=ClientDataSet2.Delta
else CustVar := Null;
SocketConnection1.AppServer.ApplyUpdates(CustVar);
if not VarIsNull(CustVar) then ClientDataSet2.Reconcile(CustVar)
else begin
ClientDataSet2.Reconcile(CustVar);
ClientDataSet2.Refresh;
end;
end; 存檔按鈕的程序: procedure TAcc_Closefm.SpeedButton1Click(Sender: TObject);
begin
if DM.ClientDataSet2.ChangeCount>0 then
DM.ApplyUpdates2;
end;
|
jieshu
版主 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言:請問您出現錯誤訊息是在執行哪一行的時候? 您ApplyUpdates裡的參數是用var的嗎? 不然他好像不會隨Server改變而改變, 為何CustVar是null還是執行ClientDataSet2.Reconcile(CustVar);呢? <iFrame src="http://www.coss.com.tw/jieshu/sign.htm" width=400 height=105 scolling="NO" border="0"></iFrame> 震江系統(股)公司: http://www.coss.com.tw/ 捷舒軟體設計坊: http://www.coss.com.tw/jieshu/SocketConnection1.AppServer.ApplyUpdates(CustVar); if not VarIsNull(CustVar) then ClientDataSet2.Reconcile(CustVar) else begin ClientDataSet2.Reconcile(CustVar); ClientDataSet2.Refresh; end;
------
人生有夢,逐夢而行 人若為善,福雖未至,禍已遠離 人若為惡,禍雖未至,福已遠離 http://www.taconet.com.tw/jieshu/ |
skyangel
一般會員 發表:11 回覆:9 積分:4 註冊:2003-04-13 發送簡訊給我 |
引言: RemoteDataModule 的自訂存檔程式 procedure TATMCasherServer.ApplyUpdates(CustVar: OleVariant); var ErrCount :Integer; begin ADOConnection1.BeginTrans; try if not VarIsNull(CustVar) then begin CustVar :=DsProvider2.ApplyUpdates(CustVar, 0, ErrCount); if ErrCount>0 then SysUtils.Abort; end; ADOConnection1.CommitTrans; except ADOConnection1.RollbackTrans; end; end; 前端的存檔程序: procedure TDM.ApplyUpdates2; Var CustVar :OleVariant; begin ClientDataSet2.CheckBrowseMode; if ClientDataSet2.ChangeCount>0 then CustVar :=ClientDataSet2.Delta else CustVar := Null; SocketConnection1.AppServer.ApplyUpdates(CustVar); if not VarIsNull(CustVar) then ClientDataSet2.Reconcile(CustVar) <==執行到這一行後跳出這個錯誤訊息 "mismatch in datapacket " CustVar 是 OleVarient; else begin ClientDataSet2.Reconcile(CustVar); ClientDataSet2.Refresh; end; end; 存檔按鈕的程序: procedure TAcc_Closefm.SpeedButton1Click(Sender: TObject); begin if DM.ClientDataSet2.ChangeCount>0 then DM.ApplyUpdates2; end;========================================================================================= jieshu 版大: 前端的存檔程序: procedure TDM.ApplyUpdates2; Var CustVar :OleVariant; begin ClientDataSet2.CheckBrowseMode; if ClientDataSet2.ChangeCount>0 then CustVar :=ClientDataSet2.Delta else CustVar := Null; SocketConnection1.AppServer.ApplyUpdates(CustVar); if not VarIsNull(CustVar) then ClientDataSet2.Reconcile(CustVar) <==執行到這一行後跳出這個錯誤訊息 "mismatch in datapacket " , CustVar 是用 OleVarient; else begin ClientDataSet2.Reconcile(CustVar); ClientDataSet2.Refresh; end; end; ------ 另外如果用BDE連結 伺服端連結是正常 但前端一開啟就出現這樣的錯誤訊息 " Invalid configuration parameter " 這兩個錯誤訊息不知 版大 您有沒有碰過 感恩回覆 |
jieshu
版主 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言: RemoteDataModule 的自訂存檔程式 procedure TATMCasherServer.ApplyUpdates(var CustVar: OleVariant);// procedure 定義錯誤 var ErrCount :Integer; begin ADOConnection1.BeginTrans; try if not VarIsNull(CustVar) then begin CustVar :=DsProvider2.ApplyUpdates(CustVar, 0, ErrCount); if ErrCount>0 then SysUtils.Abort; end; ADOConnection1.CommitTrans; except ADOConnection1.RollbackTrans; end; end; 前端的存檔程序: procedure TDM.ApplyUpdates2; Var CustVar :OleVariant; begin ClientDataSet2.CheckBrowseMode; if ClientDataSet2.ChangeCount>0 then CustVar :=ClientDataSet2.Delta else CustVar := Null; SocketConnection1.AppServer.ApplyUpdates(CustVar); if not VarIsNull(CustVar) then ClientDataSet2.Reconcile(CustVar); <==執行到這一行後跳出這個錯誤訊息 "mismatch in datapacket " , CustVar 是用 OleVarient Server Procedure定義錯誤, 以致CustVar非Server傳回的值 else begin ClientDataSet2.Reconcile(CustVar); ClientDataSet2.Refresh; end; end; ------ 另外如果用BDE連結 伺服端連結是正常 但前端一開啟就出現這樣的錯誤訊息 " Invalid configuration parameter " 這兩個錯誤訊息不知 版大 您有沒有碰過CustVar如果是null應該就不用再執行了, 好像沒遇過這樣的錯誤訊息, 同樣是看錯誤訊息由哪一行發出, 才有辦法判斷是什麼問題. <iFrame src="http://www.coss.com.tw/jieshu/sign.htm" width=400 height=105 scolling="NO" border="0"></iFrame> 震江系統(股)公司: http://www.coss.com.tw/ 捷舒軟體設計坊: http://www.coss.com.tw/jieshu/
------
人生有夢,逐夢而行 人若為善,福雖未至,禍已遠離 人若為惡,禍雖未至,福已遠離 http://www.taconet.com.tw/jieshu/ |
skyangel
一般會員 發表:11 回覆:9 積分:4 註冊:2003-04-13 發送簡訊給我 |
引言:引言: -------------------------------------------------------------------------------- RemoteDataModule 的自訂存檔程式 procedure TATMCasherServer.ApplyUpdates(var CustVar: OleVariant);// procedure 定義錯誤 var ErrCount :Integer; begin ADOConnection1.BeginTrans; try if not VarIsNull(CustVar) then begin CustVar :=DsProvider2.ApplyUpdates(CustVar, 0, ErrCount); if ErrCount>0 then SysUtils.Abort; end; ADOConnection1.CommitTrans; except ADOConnection1.RollbackTrans; end; end; 前端的存檔程序: procedure TDM.ApplyUpdates2; Var CustVar :OleVariant; begin ClientDataSet2.CheckBrowseMode; if ClientDataSet2.ChangeCount>0 then CustVar :=ClientDataSet2.Delta else CustVar := Null; SocketConnection1.AppServer.ApplyUpdates(CustVar); if not VarIsNull(CustVar) then ClientDataSet2.Reconcile(CustVar); <==執行到這一行後跳出這個錯誤訊息 "mismatch in datapacket " , CustVar 是用 OleVarient Server Procedure定義錯誤, 以致CustVar非Server傳回的值 else begin ClientDataSet2.Reconcile(CustVar); ClientDataSet2.Refresh; end; end; ------ 另外如果用BDE連結 伺服端連結是正常 但前端一開啟就出現這樣的錯誤訊息 " Invalid configuration parameter " 這兩個錯誤訊息不知 版大 您有沒有碰過 -------------------------------------------------------------------------------- CustVar如果是null應該就不用再執行了, 好像沒遇過這樣的錯誤訊息, 同樣是看錯誤訊息由哪一行發出, 才有辦法判斷是什麼問題.謝謝 JIESHU 版大的指點 經過更正後存檔程序不會在跳出" mismatch in datapacket " 但換了另一個錯誤訊息 實在找不出原因 要麻煩你 再給我指點一下 感恩 |
jieshu
版主 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言: 但換了另一個錯誤訊息 實在找不出原因 要麻煩你 再給我指點一下這應該是ADODataSet在更新時, 找不到原本紀錄的關係, 你可以改ADODataSet的一些屬性試試, 還有DataSetProvider.ResolveToDataSet設成True試試. <iFrame src="http://www.coss.com.tw/jieshu/sign.htm" width=400 height=105 scolling="NO" border="0"></iFrame> 震江系統(股)公司: http://www.coss.com.tw/ 捷舒軟體設計坊: http://www.coss.com.tw/jieshu/
------
人生有夢,逐夢而行 人若為善,福雖未至,禍已遠離 人若為惡,禍雖未至,福已遠離 http://www.taconet.com.tw/jieshu/ |
skyangel
一般會員 發表:11 回覆:9 積分:4 註冊:2003-04-13 發送簡訊給我 |
|
reebok
一般會員 發表:8 回覆:11 積分:3 註冊:2004-07-30 發送簡訊給我 |
|
jieshu
版主 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言: 環境資料如下: DataBase :access 應用伺服端:os:Win2000server 用adoconnection連接 Adoquery,DataSetProvider元件 客戶端: 用socketconnection跟伺服端連接 ClientDataSet元件 不好意思請問一下,各位先進們可能任為很簡單ㄉ問題,以上ㄉ作業環境ˋ應用伺服端ˋ客戶端.這些是算區域網路(>>< face="Verdana, Arial, Helvetica"> 不同的主題應該要另起主題, 這樣以後搜尋資料才會比較清楚. Delphi的三層式架構可以用在區域網路, 也可以用在廣域網路, 所以您這樣問, 真的不曉得要怎麼算, 且怎麼算是看您AppServer和Client端是怎麼放, 我覺得您先要去搞懂區域網路和廣域網路的分別吧, 當然客戶端是可以透過網路在世界各地連結應用伺服器的. <iFrame src="http://www.coss.com.tw/jieshu/sign.htm" width=400 height=105 scolling="NO" border="0"></iFrame> 震江系統(股)公司: http://www.coss.com.tw/ 捷舒軟體設計坊: http://www.coss.com.tw/jieshu/
------
人生有夢,逐夢而行 人若為善,福雖未至,禍已遠離 人若為惡,禍雖未至,福已遠離 http://www.taconet.com.tw/jieshu/ |
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |