大家好:我用的数据库是oracle,开发环境是delphi7.
想通过程序向数据中加入一条记录,由于数据库的表中的时间是date型的,而程序中的时间是string型的,所以values的时间部分需要做一个todate转换,下面是程序执行时显示的sql语句,可是提示ora错误,说todate无效数据类型
insert into fzx_nrfd_zb(id,zx_id,rw_id,lhhh,pznr,dxyw,jcsl,fl,xz,tzdw,ysy,yssj,shy,scsj,shsj,zt)
values(4618,100,4511,'asdas','sada','sadasd',32,4,3,3,'无权限用户',to_date('2005-04-27 16:30:36','yyyy-mm-dd hh24:mi:ss'),'无权限用户',to_date('2005-04-27 16:30:36','yyyy-mm-dd hh24:mi:ss'),to_date('2005-04-27 16:30:36','yyyy-mm-dd hh24:mi:ss'),4)
还有就是delphi7中有与oracle中的date型相对应的时间类型吗?如果有的话,是不是改一下变量的类型就可以了?望高人明示!!!
想请教各位大侠如何解决次问题!!!
小弟在此先谢过了

解决方案 »

  1.   

    我自己做的一个将DELPHI日期转换为ORACLE日期字符串的函数,在我的系统里使用过是OK的.function Date2Str(aDate: TDate): string; //生成Oracle需要的日期字串
    begin
      result:= 'TO_DATE('''+DateToStr(aDate)+''',''YYYY-MM-DD'')';
    end;
      

  2.   

    在我的系统中一个调用的例子:
    其中sDate和eDate都TDateTimePicker控件.QueryCondition:= 'where fBuyInDate>='+ Date2Str(sDate.Date) + ' and fBuyInDate<='+ Date2Str(eDate.Date);
      

  3.   

    xtaotao(淘淘
    'TO_DATE('''+DateToStr(aDate)+''',''YYYY-MM-DD'')'
    这句话的TO_DATE前后都有引号,这样运行的话会提示"ora00917 :missing comma"错误请问怎没解决?
      

  4.   

    具体说明一下,我是在pl/sql底下运行的.运行结果在这个部分
    '无权限用户','to_date('2005-04-30','YYYY-MM-DD')',
    的数字'2'底下划一条红色横线 ,然后提示'ora_00917:missing comma'
    这时候如果把to_date前面的的 ' 去掉的话,这个函数的定义部分就会报错.
    麻烦再指点一下如何解决
    多谢!!!!
      

  5.   

    xtaotao(淘淘) 
    sorry 问题出在我这 是我自己程序的问题的原因 你的方法是正确的 没有问题 多谢!!!!!!!!!!!!
    我的msn [email protected] 
    希望有时间多交流~~~~