HMISLJ_ADOQuery_tmpjy.Close;
        HMISLJ_ADOQuery_tmpjy.SQL.Clear;
        HMISLJ_ADOQuery_tmpjy.SQL.Add('insert into MLJ_CT15(S_LCID,S_CH,I_BZWI,S_CZCX,S_KZB,S_FX,S_CLQK,S_JUY1,S_CXDW,D_CXRQ,S_DXDW,D_DXRQ,S_FXDW,D_FXRQ,S_GQXC,S_DJLX,S_YWFD,ESTATE)');
        HMISLJ_ADOQuery_tmpjy.SQL.Add(' values(:id,:ch,:bzwi,:czcx,:kzb,:fx,:clqk,:jcy,:cxdw,:cxrq,:dxdw,:dxrq,:fxdw,:fxrq,:gqxc,:djlx,:ywfd,:tate)');
        HMISLJ_ADOQuery_tmpjy.Parameters.ParamByName('id').Value:=stemp;
        HMISLJ_ADOQuery_tmpjy.Parameters.ParamByName('ch').Value:=HPDA_ADOQuerytmp.FieldByName('CH').AsString;
        if HPDA_ADOQuerytmp.FieldByName('BZWZ').AsString<>'' then
          HMISLJ_ADOQuery_tmpjy.Parameters.ParamByName('bzwi').Value:=strtoint(HPDA_ADOQuerytmp.FieldByName('BZWZ').AsString)
        else
          HMISLJ_ADOQuery_tmpjy.Parameters.ParamByName('bzwi').Value:=NULL;
        HMISLJ_ADOQuery_tmpjy.Parameters.ParamByName('czcx').Value:=HPDA_ADOQuerytmp.FieldByName('CX').AsString;
        HMISLJ_ADOQuery_tmpjy.Parameters.ParamByName('kzb').Value:=HPDA_ADOQuerytmp.FieldByName('KZB').AsString;
        HMISLJ_ADOQuery_tmpjy.Parameters.ParamByName('fx').Value:=HPDA_ADOQuerytmp.FieldByName('FLX').AsString;
        HMISLJ_ADOQuery_tmpjy.Parameters.ParamByName('clqk').Value:=HPDA_ADOQuerytmp.FieldByName('CLQK').AsString;
        HMISLJ_ADOQuery_tmpjy.Parameters.ParamByName('jcy').Value:=HPDA_ADOQuerytmp.FieldByName('JCYDM').AsString;
        HMISLJ_ADOQuery_tmpjy.Parameters.ParamByName('cxdw').Value:=HPDA_ADOQuerytmp.FieldByName('CXDW').AsString;
        if HPDA_ADOQuerytmp.FieldByName('CXRQ').AsString<>'' then
          HMISLJ_ADOQuery_tmpjy.Parameters.ParamByName('cxrq').Value:=strtodatetime('20'+copy(HPDA_ADOQuerytmp.FieldByName('CXRQ').AsString,1,2)+'-'+copy(HPDA_ADOQuerytmp.FieldByName('CXRQ').AsString,3,2)+'-01')
        else
          HMISLJ_ADOQuery_tmpjy.Parameters.ParamByName('cxrq').Value:=NULL;
        HMISLJ_ADOQuery_tmpjy.Parameters.ParamByName('dxdw').Value:=HPDA_ADOQuerytmp.FieldByName('DXDW').AsString;
        if HPDA_ADOQuerytmp.FieldByName('DXRQ').AsString<>'' then
          HMISLJ_ADOQuery_tmpjy.Parameters.ParamByName('dxrq').Value:=strtodatetime('20'+copy(HPDA_ADOQuerytmp.FieldByName('DXRQ').AsString,1,2)+'-'+copy(HPDA_ADOQuerytmp.FieldByName('DXRQ').AsString,3,2)+'-01')
        else
          HMISLJ_ADOQuery_tmpjy.Parameters.ParamByName('dxrq').Value:=NULL;
        HMISLJ_ADOQuery_tmpjy.Parameters.ParamByName('fxdw').Value:=HPDA_ADOQuerytmp.FieldByName('FXDW').AsString;
        if HPDA_ADOQuerytmp.FieldByName('FXRQ').AsString<>'' then
          HMISLJ_ADOQuery_tmpjy.Parameters.ParamByName('fxrq').Value:=strtodatetime('2008-'+copy(HPDA_ADOQuerytmp.FieldByName('FXRQ').AsString,1,2)+'-'+copy(HPDA_ADOQuerytmp.FieldByName('FXRQ').AsString,3,2))
        else
          HMISLJ_ADOQuery_tmpjy.Parameters.ParamByName('fxrq').Value:=NULL;
        HMISLJ_ADOQuery_tmpjy.Parameters.ParamByName('gqxc').Value:=HPDA_ADOQuerytmp.FieldByName('XC').AsString;
        HMISLJ_ADOQuery_tmpjy.Parameters.ParamByName('djlx').Value:='';
        HMISLJ_ADOQuery_tmpjy.Parameters.ParamByName('ywfd').Value:=ywfd;
        HMISLJ_ADOQuery_tmpjy.Parameters.ParamByName('tate').Value:='0';
        HMISLJ_ADOQuery_tmpjy.ExecSQL;

解决方案 »

  1.   

    看了一下你的代码,应该是
    HMISLJ_ADOQuery_tmpjy.Parameters.ParamByName('cxrq').Value:=NULL; 
    这里出现问题的,在oracle中不允许这样赋值的,虽然你把数据库中允许日期为空了.
    我在解决这类日期时,是这样解决的.
    在开始拼sql时,就要判断日期是否为空,如果为空,则在..,:cxrq...就不加这个,否则就加
    你试试吧.