简要程序如下:(其中DatabaseName是通过BDE连的oracle)
Str :='select * from aa';
TmpQry :=TQuery.Create(application);
try
TmpQry.DatabaseName :=Database1.DatabaseName ;
with TmpQry do begin
close;
sql.Clear;
sql.add(str);
Open;
end;
TmpQry.First;
while not TmpQry.Eof do begin
LastCardNo :=TmpQry.FieldbyName('SFZ_ID').AssTring;
EndCardNo :=GetPersonNo(trim(LastCardNo));
Str1 :=' Insert into gg(SFZ_ID) values(:EndCardNo)'; Qry_PubSou.close;
Qry_PubSou.sql.Clear;
Qry_PubSou.sql.add(str1);
Qry_PubSou.ParamByName('EndCardNo').asString :=EndCardNo;
Qry_PubSou.execsql;
//Qry_PubSou.Post; TmpQry.Next;
end;
Showmessage('OK!');
finally
TmpQry.Free;
end;
我分别在不同版本的oracle上试过,其中oracle8.05可以运行,
oracle8i和9i不能插入表gg,不过有事务就可进去!
想问问什么原因?
Str :='select * from aa';
TmpQry :=TQuery.Create(application);
try
TmpQry.DatabaseName :=Database1.DatabaseName ;
with TmpQry do begin
close;
sql.Clear;
sql.add(str);
Open;
end;
TmpQry.First;
while not TmpQry.Eof do begin
LastCardNo :=TmpQry.FieldbyName('SFZ_ID').AssTring;
EndCardNo :=GetPersonNo(trim(LastCardNo));
Str1 :=' Insert into gg(SFZ_ID) values(:EndCardNo)'; Qry_PubSou.close;
Qry_PubSou.sql.Clear;
Qry_PubSou.sql.add(str1);
Qry_PubSou.ParamByName('EndCardNo').asString :=EndCardNo;
Qry_PubSou.execsql;
//Qry_PubSou.Post; TmpQry.Next;
end;
Showmessage('OK!');
finally
TmpQry.Free;
end;
我分别在不同版本的oracle上试过,其中oracle8.05可以运行,
oracle8i和9i不能插入表gg,不过有事务就可进去!
想问问什么原因?
===========你说的不能插入是指弹出错误,还是发现数据库中没有数据如果数据库中没有数据,可能因为你上面查出的数据时空的
没有语法和逻辑上的错,没有弹出错误,只要加上事务开始,和提交就行了!
建议你用第三方的对ORACLE的数据库组建,
如ODAC4.0.0.4,这是一个很好的东西。