请教:利用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数据库中却没有导入的数据表。

请大虾指点。小弟不胜感激。
...全文
123 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
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后就只能一条一条插入吗?有点慢哦。

2,507

社区成员

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

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