except
            on E:Exception do
            begin
                  if  E is EDBEngineError    then
                  begin
                  Str_ErrorCode := EDBEngineError(E).Errors[0].ErrorCode
                  end;
提示:
Project Re.exe raised exception class EOleException with message '无法将 NULL 值插入列 'RoleName',表 'YuYue.dbo.Role';该列不允许空值。INSERT 失败。
我换成 EOleException 再试试。   欢迎指教

解决方案 »

  1.   

    最近编译程序老死机,害得我常重启电脑;  以前即使有异常也从来没有这样。版本是Version 7.0 build 4.453
    Unregistered
      

  2.   

    Unregistered
    未注册呀,当然有限制了,
    你注册去“注册你知道的哟”
      

  3.   

    Unregistered版本的呀,建议你还是“注册”一下吧
    “注册你是知道的哟”
      

  4.   

    EOleException  这个类是在那个单元,  我先按Ctrl + EOleException ,弹不过去
      

  5.   

    Unregistered版本的呀,能版本受限制吧
    还是下载一个稳定些的版本吧
      

  6.   

    我记得我们以前是这样做的:
    pos('insert',errorstr)
    pos('null',errorstr)
    pos('插入列',errorstr)
    pos('表',errorstr)
     
    找到关键字段,表等,然后提示“表XX不能为空,插入失败”还有一种做法更简单,从SQL SERVER中找出现在修改的表不能为空的字段,提交前用FOR进行比较
    sysobjects,syscolumns关连这两表,isnullable根据这个字段值判断是否可以为空
      

  7.   


    不要具体到那一种错误,因为很多,你不可能列出所有的错误类型来,下面这样就行了
      except
      on E: Exception do
        MessageDlg(E.Message, mtError, [mbOk], 0);
      end;
      

  8.   


    我只想处理数据库表字段 唯一性 不为空 的异常处理。  其它的错误统一记录到LOG表里边去。
    有没有办法捕获,这2个特定的异常呢?
      

  9.   

    从SQL SERVER中找出现在修改的表不能为空的字段,提交前用FOR进行比较
    sysobjects,syscolumns关连这两表,isnullable根据这个字段值判断是否可以为空,用这种方式可以解决不为空的问题
      

  10.   

    那么唯一性呢,我想直接处理异常,通过SQL 2000的约束来实现唯一性,最好这样控制,因为存在一个并发性的问题。
      

  11.   

    我现在提取字符窜,POSEX,根据关键字来判断.Str_LowerCase := LowerCase(E.Message);        //Null×Ö·û´®Òì³£
    if PosEx(C_Null,Str_LowerCase) > 0 then
    begin
          if FinalUnit = C_UN_FrmRole then
          begin
                StrMsg :='¡¾' + E_NotNullField + '¡¿  ²»ÄÜΪ¿Õ,ÇëÖØÐÂÊäÈë¡£'
          end;
    end;if PosEx(C_Unique,Str_LowerCase) > 0 then         //ΨһֵÒì³£´¦Àí
    begin
          if FinalUnit = C_UN_FrmRole then
          begin
                StrMsg :=  '¡¾' + E_Unique + '¡¿  ÒѾ­´æÔÚ£¬¸ÃÖµ±ØÐëΨһ,ÇëÖØÐÂÊäÈë¡£'
          end;
    end;