如果你的字段为非空,如果你将取出空日期赋给某给字段,肯定是存不上的
如果你的字段为not null,所以为空时你只能给其赋一个合适的日期!

解决方案 »

  1.   

    Fhbl = IIf(IsNull(hzrs!f2) = False, hzrs!f2, 0)
                      Djr = IIf(IsNull(hzrs!f3) = False, hzrs!f3, 0)
                      Cqr = IIf(IsNull(hzrs!f4) = False, hzrs!f4, 0)
                      Ltr = IIf(IsNull(hzrs!f5) = False, hzrs!f5, 0)
                      sql = "insert into t_var_fhsgxx (Fzqdm,Fszsh,Fsgbl,Ffhbl,Fdjr,Fcqr,Fltdate) values " _
                          & "('" & Zqdm & "','" & szsh & "'," & Sgbl & "," & Fhbl & "," _
                          & "TO_DATE('" & Djr & "','yyyy-mm-dd'),TO_DATE('" & Cqr & "','yyyy-mm-dd'),TO_DATE('" & Ltr & "','yyyy-mm-dd'))"以上是源码,其中hzrs!f3为从SQL SERVER中取得的字段,为空
    报错:无效的月份
    请教大侠,可否将hzrs!f3转化非空的0日期值存入呀???
      

  2.   

    ORCALE 中的非空字段是不允许没有值得,解决方法是将ORACLE的字段设置位
    可以为空,将从VB下取出的空子端在插入ORACLE表时提供一个莫任值,
    我不会VB,但知道点ORACLE数据库
      

  3.   

    再请问,SQL SERVER里日期是可以设置为0值的,ORACLE里日期是否没有值
    类似为0之类的日期值?
      

  4.   

    是的,oracle又空值一说,null,既不是0也不是'',所以如果oracle中表的字段
    如果允许为空,职能将这个字段改为可以为空,会用pb吗?
      

  5.   

    不好意思,不会。
    看来我只有赋一个默认的日期值了。
    我是一次用ORACLE开发系统,以前都是用SQL SERVER
    所以许多问题还不是很懂,这个论坛让我学了很多东西
    非常感谢你的回复,希望你能经常关注我的问题,我还发了一个
    关于将记录集作为参数传入过程的问题,不知大侠是否能帮忙?
    谢谢!
      

  6.   

    你好,这么晚了,你还在学习,实在佩服,我不动vb,不懂sqlserver,但对于
    (pb,delphi)+oracle还是懂点,因为单位不用sqlserver,只用oracle,所以我们
    可以相互学习,我看了你的记录集作为参数传入过程,我想如果你过段事件
    ,对存储过程有所了解的话,不用将记录集传入过程,可在过程中进行你的处理
    ,虽然过程可以传入\出参数,但是参数过多(记录集只能作为数组)会容易出错的,该休息了 ,good night!
      

  7.   

    谢谢你的关心和回复,我想我们能成为相互交流的朋友
    ,以后有能够交流的时候
    我想我们可以通过E-MAIL而不用这么麻烦了。
    最后祝你晚安!:)