delphi 数据集克隆 并提交问题

kobaer 2009-03-16 09:49:57
现在有这样一个需求 我从xml中读取数据 保存到数据库中
数据库中什么值也没有

代码如下
ADOQuery1.Close;
ADOQuery1.LoadFromFile('E:\1.adq');
ADOQuery1.Open;
adotable1.Clone(adoquery1);
//这里tablename是有值得 并且是数据库对应得表 ADOConnection 也是设置好了的
showmessage(adotable1.tablename);
adotable1.UpdateBatch(arall);

这里是克隆好了得 但是 数据库中却没有任何值
这是为什么???
...全文
444 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
starluck 2009-03-16
  • 打赏
  • 举报
回复

一時估計你也不太理解了。

你這樣吧,先用一個ADOQUERY 載入 1.adq 後,然後將這個數據集裏的數據,循環導到你的目的表



adoquery2.close;
adoquery2.sql.text := 'select * from '+ adotable1.tablename;
adoquery2.open;

adoquery1.loadfromFile('E:\1.adq');

with adoquery1 do while not eof do begin
adoquery2.append;
adoquery2.fieldbyname('字段名').Value := fieldbyname('字段名').Value;
.......................
next;
end;


kobaer 2009-03-16
  • 打赏
  • 举报
回复
1.adq 是个xml格式得文件
里面得值是通过程序读出excel中的数据的
有个奇怪得现象
excel中我弄的是字段名是 a b c d

1.adq 中出现了 这样的东西 a b F3 c F4 d

然后我就把表中字段也改成了 a b F3 c F4 d

但是还是不行
starluck 2009-03-16
  • 打赏
  • 举报
回复

我的意思是 1.adq 裏面有一個傳入表的,也就是這個XML裏面的數據的源表,與你的 AdoTable 的相同嗎
kobaer 2009-03-16
  • 打赏
  • 举报
回复
表字段是对得
都是对应好的
starluck 2009-03-16
  • 打赏
  • 举报
回复
查這個XML對應表 'E:\1.adq'
kobaer 2009-03-16
  • 打赏
  • 举报
回复
很郁闷啊
还有没有人知道
kobaer 2009-03-16
  • 打赏
  • 举报
回复
我就是提交到数据库的啊
火龙岛主 2009-03-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 SmallHand 的回复:]
克隆失败了。
[/Quote]
你提交到数据库就可以了。
火龙岛主 2009-03-16
  • 打赏
  • 举报
回复
给你一段代码参考:
uses
ADOInt;

function GetAdoChangeCount(DataSet:TCustomADODataSet):Integer;
var
r:_RecordSet;
begin
Result:=0;
if DataSet.Active then
try
r:=DataSet.Recordset.Clone(adLockBatchOptimistic);
r.Filter:=adFilterPendingRecords;
Result:=r.RecordCount;
except
end;
end;

火龙岛主 2009-03-16
  • 打赏
  • 举报
回复
克隆失败了。
kobaer 2009-03-16
  • 打赏
  • 举报
回复
没人理我
谁知道这个问题啊 很急的
kobaer 2009-03-16
  • 打赏
  • 举报
回复
不是数据量大 而是执行比直接返回速度慢
kobaer 2009-03-16
  • 打赏
  • 举报
回复
这个方法我知道
最主要得方法是我要得数据量太大
用这个方法会很麻烦
想得是全部更新回去

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧