快来讨论关于提交的速度问题。(100分)

  • 主题发起人 主题发起人 cola
  • 开始时间 开始时间
C

cola

Unregistered / Unconfirmed
GUEST, unregistred user!
我做了一个三层的程序,在数据提交时我用
ClientDataSet.ApplyUpdates(0)
速度可以接受,但是总有部分数据提交不成功。
而用
ClientDataSet.ApplyUpdates(-1)
数据全部提交成功,但又速度太慢,慢十倍左右。
我想寻求一个速度既快,又能保证数据全部正确提交的方法。
望高手指教。
 
服务器端程序:
使用一个ADOQuery,一个Provider,Provider对应的DataSet为ADOQuery
function UdpateData(Delta : OleVariant;TableName : string;MaxError : integer;Var Error : integer) : OleVariant
var
ss : string;
begin
//连接服务器端
SetADOConnect(ConnectString);
ss := 'select * from ' + TableName + ' where 1=2';
ADOQuery.SQL.Text := ss;
ADOQuery.Open;
Result := Provider.ApplyUpdate(Delta,MaxError,Error);
end;
 
将数据包传到服务器上,再进行更新,如上nanami的作法,
或看Delphi中本身附带的例子。
 
呵呵,看看李唯的新书吧,有详细说明。
 
Try the following
function TForm1.ApplyDataSet(CLientData: TClientDataSet): Boolean;
var
Delta, Results, OwnerData: OleVariant;
ErrorCount: Integer;
MaxErrors : Integer ;
begin
ClientData.CheckBrowseMode;
Delta := ClientData.Delta;
Results := ClientData.AppServer.AS_ApplyUpdates('DataSetProvider1', Delta, MaxErrors, ErrorCount, OwnerData);
ClientData.Reconcile(Results);
if ErrorCount = 0 then
Result := True
else
Result := False ;
end;

 
多人接受答案了。
 
后退
顶部