求救:简单Orcale数据插入问题,在线等,解决结帖

pingo888 2003-10-09 05:04:40
在对Oracle数据执行一个插入操作,可能是在关于日期类型的数据的操作时出现问题,导致不能插入,其中adoquery1是连接Access数据库的,adoquery2是连接Oracle数据库的,目的是读取Access数据插入到Oracle中,现假设字段A1,A2为字符型,A3,A4为Date类型。在读取到Access中A3,A4数据类似为“2003-10-08 19:30:20”
在执行插入时出错。
with adoquery1 do
begin
close;
sql.Text:='select * from fdcqy_zzzl'; //资质资料表
open;
first;
while not eof do
begin
with adoquery2 do
begin
close ;
sql.Text:='insert into tbkfcert(A1,A2,A3,A4) values('''+adoquery1.fieldbyname('A1').asstring+''','''+adoquery1.fieldbyname('A2').asstring+''','''+adoquery1.fieldbyname('A3').asstring+''','''+adoquery1.fieldbyname('A4').asstring+''') ';
ExecSQL ;
end;
next;
end;
end;
我将“ '''+adoquery1.fieldbyname('A4').asstring+''' ”改成“ '+adoquery1.fieldbyname('A4').asstring+' ”也不行。

我用的是Delphi7 ,Oracle9.2,
请各位指教,谢谢!
...全文
50 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
pingo888 2003-10-09
  • 打赏
  • 举报
回复
cow8063(吴七郎) 您说的不可以。
pingo888 2003-10-09
  • 打赏
  • 举报
回复
谢谢 dulei115() ,
如果改成你说的第二种方法,那么就可以了。
不过,我还是想请教您,如果不用参数怎么样解决?
cow8063 2003-10-09
  • 打赏
  • 举报
回复
换成这样子:
datetostr(adoquery1.fieldbyname('A2').asdatetime)
pingo888 2003-10-09
  • 打赏
  • 举报
回复
dulei115(),您好。
我改成类似'''+adoquery1.fieldbyname('A4').value+'''
出错:
“ Could not convert variant of type(String) into type(Date) ”
dulei115 2003-10-09
  • 打赏
  • 举报
回复
或者用参数
close ;
sql.Text:='insert into tbkfcert(A1,A2,A3,A4) values(:A1,:A2,:A3,:A4) ';
Parameters.ParamByName('A1').Value := adoquery1.fieldbyname('A1').asstring;
Parameters.ParamByName('A2').Value := adoquery1.fieldbyname('A2').asstring;
Parameters.ParamByName('A3').Value := adoquery1.fieldbyname('A3').asdatetime;
Parameters.ParamByName('A4').Value := adoquery1.fieldbyname('A4').asdatetime;
Prepared;
ExecSQL ;
dulei115 2003-10-09
  • 打赏
  • 举报
回复
'''+adoquery1.fieldbyname('A4').value+'''

2,497

社区成员

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

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