比较傻的问题:怎样把adoquery中的数据导入数据库呢?(40分)

  • 主题发起人 主题发起人 xiaocaier
  • 开始时间 开始时间
X

xiaocaier

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样把adoquery中的数据导入数据库呢?adoquery中的数据是从文件pfilename中导入的:
with TADOQuery.Create(Application) do
try
connectionString:='Provider=MSDAORA.1;Password=hidc;User ID=hidc;Data Source=test;Persist Security Info=True';
locktype:=ltBatchOptimistic;
LoadFromFile(pFilename);
//此处加入代码?!
 
可以直接通过数据库的导入向导完成啊
 
to wyxin2001:
必须写程序完成操作,谢谢
 
在建一个tadoquery 对象 qry
with TADOQuery.Create(Application) do
try
connectionString:='Provider=MSDAORA.1;Password=hidc;User ID=hidc;Data Source=test;Persist Security Info=True';
locktype:=ltBatchOptimistic;
LoadFromFile(pFilename);
while not eof do
begin
qry.append;
for i := FieldCount - 1 do
qry.Fields.AsString := Fields.AsString;
next;
end;
if qry.State in [dsEdit, dsInsert] then
qry.post;
:
:
finally
end;
:
:

说明
1 qry 的数据源要和pFilename导会后的数据源结构一样。 如果不一样改改代码就可以。
2 注意 qry 数据源里可能有写字段是自动增值的。那程序就不要在赋值了。否则可
能回出错。
 
可不可以放一相同结构的表,
for i:=1 to adoquery1.recordcount do
begin
table1.fieldbyname('a2').asstring:=adoquery1.fieldbyname('a2').asstring;
....
next;
end;
这样就可以导入table1了。
 
多人接受答案了。
 
还是用while not adoquery1.eof do 这样的循环比较好,个人意见。
可以在adoquery1的sql属性中添加sql语句完成这个功能。
用insert ...select...语句,例如:
INSERT INTO MyBooks
SELECT title_id, title, type
FROM titles
WHERE type = 'mod_cook'
 
来晚了。[:)]
 
后退
顶部