var qy:TAdoquery; dsp:TDataSetProvider; ErrCount:Integer; adoConnString:string;//连接串 sqlString:string;//Sql文本,如:'select * from test where 1=0' begin adoConnString:=ADOConnection1.ConnectionString; dsp:=TDataSetProvider.Create(nil); qy:=TAdoquery.create(nil); try qy.ConnectionString:=adoConnString; qy.close; qy.sql.text:=sqlString; dsp.DataSet:=qy; dsp.ApplyUpdates(ClientDataSet1.Delta,0,ErrCount);//提交 Delta 数据(含blob和其他类型数据) finally qy.free; dsp.free; end; end;
一下代码在delphi6、7中测试通过:procedure TForm1.Button3Click(Sender: TObject); var qy:TAdoquery; dsp:TDataSetProvider; ErrCount:Integer; begin if ClientDataSet1.ChangeCount=0 then begin showmessage('数据没有更改,无须提交。'); exit; end; dsp:=TDataSetProvider.Create(nil); qy:=TAdoquery.create(nil); try qy.Connection:=ADOConnection1; qy.close; qy.sql.text:='select * from test where 1=0'; dsp.DataSet:=qy; dsp.ApplyUpdates(ClientDataSet1.Delta,0,ErrCount); finally qy.free; dsp.free; end; end;
var qy:TAdoquery;
dsp:TDataSetProvider;
ErrCount:Integer;
adoConnString:string;//连接串
sqlString:string;//Sql文本,如:'select * from test where 1=0'
begin
adoConnString:=ADOConnection1.ConnectionString;
dsp:=TDataSetProvider.Create(nil);
qy:=TAdoquery.create(nil);
try
qy.ConnectionString:=adoConnString;
qy.close;
qy.sql.text:=sqlString;
dsp.DataSet:=qy;
dsp.ApplyUpdates(ClientDataSet1.Delta,0,ErrCount);//提交 Delta 数据(含blob和其他类型数据)
finally
qy.free;
dsp.free;
end;
end;
var qy:TAdoquery;
dsp:TDataSetProvider;
ErrCount:Integer;
begin
if ClientDataSet1.ChangeCount=0 then
begin
showmessage('数据没有更改,无须提交。');
exit;
end;
dsp:=TDataSetProvider.Create(nil);
qy:=TAdoquery.create(nil);
try
qy.Connection:=ADOConnection1;
qy.close;
qy.sql.text:='select * from test where 1=0';
dsp.DataSet:=qy;
dsp.ApplyUpdates(ClientDataSet1.Delta,0,ErrCount);
finally
qy.free;
dsp.free;
end;
end;