请教:利用ADODataSet的LoadFromFile导入数据 不能存入数据库文件

cp447870326 2009-07-20 12:04:21
ADODataSet1.Active :=false;
ADODataSet1.CommandText := 'sets';
ADODataSet1.CommandType :=cmdTable;
adodataset2.SaveToFile('temp',pfADTG);
adodataset1.LoadFromFile('temp');
ADODataSet1.UpdateBatch(arALL);

ADODataSet1基于一个ACCESS的数据库,ADODataSet2基本一个EXCEL文件,现将ADODataSet2中的数据导出(SaveToFile)到文件temp,(用记事本打开里面有数据)。然后在ADODataset1,用LoadFromFile导入,执行成功,ADODataSet1.Active也自动打开。但是ACCESS数据库中却没有导入的数据表。

请大虾指点。小弟不胜感激。
...全文
82 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cp447870326 2009-07-22
已经完成,只能一条一条的写入。
不知道DELPHI里面能不能一次性写入批量数据。
for i:=1 to ADODataSet2.RecordCount do
begin
ADODataSet1.append ;
for j:=0 to Listbox1.Count-1 do
begin
ADODataSet1.FieldByName(ListBox1.Items.Strings[j]).asstring:=
ADODataSet2.FieldByName(ListBox1.Items.Strings[j]).asstring;
end;

ADODataSet1.Post ;
ADODataSet1.Next;
end;
回复
bdmh 2009-07-20
不能这样提交,要一条条插入,因为你load文件,并不代表你向数据集执行了写的命令,所以不会提交到数据库
回复
taixinltd 2009-07-20
回复
bdmh 2009-07-20
[Quote=引用 2 楼 cp447870326 的回复:]
引用 1 楼 bdmh 的回复:
不能这样提交,要一条条插入,因为你load文件,并不代表你向数据集执行了写的命令,所以不会提交到数据库


请问怎样实现一条一条的插入啊?,能够说得详细点吗?谢谢。最好有代码。  ADODataSet1.UpdateBatch(arAll);这条是执行写的命令吗?
SAVE可以一次存多条。Load后就只能一条一条插入吗?有点慢哦。
[/Quote]
你根本还没弄明白save和load到底是干吗的,save是把数据集中的数据保存为一个文件,load是将保存的文件加载到内存数据集,加载后,并不向你通过append等操作那样,向数据集中实际添加了数据,所以不能提交到数据库,你需要循环这个数据集,然后一条条,insert或append到数据集,就是每条逐个字段的插入到数据集
回复
xinxinshou2009 2009-07-20
如果你的那个temp文本中的数据是每行一条,就用stringlist变量按行来读取,然后逐条存入数据表中
回复
cp447870326 2009-07-20
[Quote=引用 1 楼 bdmh 的回复:]
不能这样提交,要一条条插入,因为你load文件,并不代表你向数据集执行了写的命令,所以不会提交到数据库
[/Quote]

请问怎样实现一条一条的插入啊?,能够说得详细点吗?谢谢。最好有代码。 ADODataSet1.UpdateBatch(arAll);这条是执行写的命令吗?
SAVE可以一次存多条。Load后就只能一条一条插入吗?有点慢哦。
回复
相关推荐
发帖
数据库相关
创建于2007-08-02

2456

社区成员

Delphi 数据库相关
申请成为版主
帖子事件
创建了帖子
2009-07-20 12:04
社区公告
暂无公告