当前位置:主页>仓库管理软件> 列表

加分200:clientdatdset:用SQL语句操作! 找用友财务软件记账

记账软件版1楼: clientdataset与服务端联接,现将其上的数据清空,用SQL语句,并将一ADOQUERY上的数据导入clientdataset,也用SQL,如何做?

2楼: clientdataset.clear;
clientdataset.clone; 如汽配进销存

3楼: 添加一个TDataSetProvider组件,设置它的DataSet指向ADOQuery,然后再设置该ClientDataSet的Data为TDataSetProvider的Data
这样就OK了

4楼: 楼上的,如何用SQK操作!请教

5楼: 将本地的一个ADOQUERY上的数据导入CLIENTDATASET,用SQL语句。

6楼: 我清空后为什么上传时失败呢?

记账软件版7楼: fsldg:好像不行呀!
CDS1.ClearFields;
  CDS1.Clone;

8楼: 用二个ClientDataSet
exam:
AClientDataset.close;
AClientDataSet.commandText:=''select * from table''
open;
BClientDataSet.data:=AClientDAtaSet.data;

9楼: yangairong,能不能说详细一点!先谢了!AClientDataset与谁连接呀,是说的数据集

10楼: 这个问题很难吗?数据集的转换有很多种方法呀

11楼: 我在试,却总不成功

12楼: 而且,我的数据结构(字段)可能根据情况会变,所以尽是想找一通用过程,请大家费心了! 如深圳金碟财务软件

13楼: 那动态赋值虽然麻烦,但是却最通用呀,可以重构数据集的呀

记账软件版14楼: 请发挥一下?大哥?

15楼: 我试了一下,数据不能真正反映到服务器端,即数据不能真正删除!请教

16楼: 说清楚点,你要操作的是DataSet中的数据还是数据库数据?????


要操作DataSet中的数据没有必要用SQL吧!

17楼: 楼上的,我的情况是这样的:clientdataset与服务端联接,现将其上的数据清空,用SQL语句,并将一ADOQUERY上的数据导入clientdataset,也用SQL,如何做?
有友给的策略,用clientdataset.clear清除其上的数据,即也就是清除了服务端的这部分数据,实际上不能做到的,请你给的方案?

18楼: CDS1.ClearFields;
CDS1.ApplyUpdates(0);
CDS1.refresh后还是原来的数据!并没有删除这部分数据的!

19楼: clientDataSet.clear只是清除clientDataSet里面的数据,
如果ClientDataSet没有ApplyUpdates(),没有提交给数据库,当然数据库就不可能响应。
你可以用
for I:=ClientDataSet.RecoudCount-1 to 0 do ClientDataSet.Delete; 清空数据集书记
再用ClientDataSet.clone什么的克隆ADOQuery上的数据,
最后CLientDataSet.ApplyUpdates(0)提交,没有用SQL

如果你要用SQL,那用ClienTDataSet.commandText:= ''delete from Table'';
然后把ADOquery上的数据复制给ClientDataSet,提交
或者直接插入数据库,然后,ClientDataSet.close; open;

20楼: fsse4000,你好,你的意见比较清晰,请问:ClientDataSet.clone执行时为什么出错?还如何克隆呢,请你再给明示一下,通过了就把分结给你了!最好完整一些的,请教!

记账软件版21楼: 即:ClientDataSet.clone 如何用呢,请教!

22楼: for i:=CDS1.RecordCount-1 to 0 do


begin
cds1.Edit;
CDS1.Delete;
end;
CDS1.Edit;
cds1.post;
CDS1.ApplyUpdates(0);
这样执行但服务端数据没有变! 如用友财务软件记账

23楼: ClientDataSet1.SaveToFile(''c:\bbscom.xml'',dfXML);

ClientDataSet1.LoadFromFile(''c:\bbscom.xml'');

然後重新設置ClientDataSet1連接就可以了。

技術交流QQ:136293586

24楼: clientDataSet1.CloneCursor(Source :TCustomClientDataSet; Reset: Boolean; KeepSettings: Boolean = False);CloneCursor(Source :TCustomClientDataSet; Reset: Boolean; KeepSettings: Boolean = False);
在ClientDataSet1中无Clone方法

After calling CloneCursor, the data for the client dataset is the same as the data for Source. Edits performed by either client dataset are reflected in the data of both datasets.
只要对其中的数据集进行了修改,也会反应到另一个数据集上。


克隆的方法用:
clientdataset1.assign(Source:TPersistent);



至于删除操作,我也试了一下,也是遇到同一个问题。老是提示"记录没找到或被其他用户修改"

25楼: clientDataSet.clear只是清除clientDataSet里面的数据,
如果ClientDataSet没有ApplyUpdates(),没有提交给数据库,当然数据库就不可能响应。
你可以用
for I:=ClientDataSet.RecoudCount-1 to 0 do ClientDataSet.Delete; 清空数据集书记
再用ClientDataSet.clone什么的克隆ADOQuery上的数据,
最后CLientDataSet.ApplyUpdates(0)提交,没有用SQL

如果你要用SQL,那用ClienTDataSet.commandText:= ''delete from Table'';
然后把ADOquery上的数据复制给ClientDataSet,提交
或者直接插入数据库,然后,ClientDataSet.close; open;

26楼: 接受答案了.