我想把一个从数据库提取出数据的TClientDataSet.Data赋予给另一个TClientDataSet.Data,因为其中的源数据是从数据库直接查询出来的,所以包含的有各种不同的字段类型,如Integer、DataTime、String等,接收Data包的TClientDataSet预先已经建立了同名的字段,但字段类型全是TStringField类型,如果通过ClientDataSet2.data:=ClientDataSet1.Data进行赋值,程序会报错,错误内容的意思就是字段类型不匹配,我又不想通过循环赋值,那样效率不怎么好,各位大虾,有没有什么好的方法啊???
解决方案 »
- cxgrid的CheckBox 不显示勾选问题
- delphi 菜鸟语法问题 if then 语法问题
- 请教三个SQL语法的问题
- 请问treeview中某个节点的名称变了后,我怎么才能知道它变了,以便我可以存入数据库???
- 在文本文件中怎样实现括号配对的算法。
- 偶做了一个Jedi Delphi Headers for Directx 8.1开发库的帮助文件。。。
- 请教高手,这段代码为何在XP下没用
- sql server 动态游标的语法?
- ***高手请进***:OICQ是怎样调用NetMeeting呼叫好友的?
- 用adoquery 实现excel 导入sql server2000 时报错
- 求教如何去除IdHttp里的端口号
- 我使用ADOConnection连接Oracle9i数据库,使用ADO自带的Oracl驱动和Oracl自身带的数据库驱动有什么区别?
不知是否可以使用TClientDataSet.GetFieldData方法实现啊?
如果可以,如何实现呢?
i,j:integer;
ff:string;
begin
ClientDataSet1.open;
ClientDataSet2.open; for i:=1 to ClientDataSet1.recordcount do
begin
for j:= 0 to ClientDataSet1.FieldCount - 1 do
begin
ff := ClientDataSet1.Fields[j].FieldName ;//获取表的字段名
ClientDataSet2.append;
ClientDataSet2.fidlebyname(ff ).AsVariant = ClientDataSet1.fidlebyname(ff).AsVariant ;
//ClientDataSet2.fidlebyname(ff ).AsString= ClientDataSet1.fidlebyname(ff).AsString;
end; ClientDataSet1.next;
end; ClientDataSet2.post;