以下是出错的代码---------------------------
Debugger Exception Notification
---------------------------
Project Re.exe raised exception class EAccessViolation with message 'Access violation at address 44746669. Read of address 44746669'. Process stopped. Use Step or Run to continue.
---------------------------
OK   Help   
---------------------------

解决方案 »

  1.   

    程序应该是有错误的,但程序在运行期间默认不显示出来
    很常见的是CLIENTDATASET+DSPV联合使用时
    当数据更新失败,在调试其间是会显示出来的,但在运行EXE时却不显示出来
      

  2.   


    CLIENT DATASET + DSPV请问:DSPV  是什么意思?
      

  3.   

    dataprovider
    三层开发中常用的控件,,
      

  4.   

    exe运行时异常被捕获,具体要看你代码了
    调试是不会捕获。
      

  5.   

    type
      TFrm_Shift = class(TFrm_SingleNew_Relate)
        DS_DbGrid: TDataSource;
        Query_DbGrid: TADOQuery;
        DBTime_Begin: TDBDateTimeEditEh;
        DBTime_End: TDBDateTimeEditEh;
        DBLookupComboBox_DeptID: TDBLookupComboBox;
        DS_Dept: TDataSource;
        Query_Dept: TADOQuery;
        DBEdit_Descript: TDBEdit;
        Label1: TLabel;
        Label2: TLabel;
        Label3: TLabel;
        DBCheckBox_Cancel: TDBCheckBox;
        DS_ShiftDetail: TDataSource;
        GroupBox_Search: TGroupBox;
        Label4: TLabel;
        btnSearch: TBitBtn;
        Query_WeekList: TADOQuery;
        Query_PeriodList: TADOQuery;
        DS_WeekList: TDataSource;
        DS_PeriodList: TDataSource;
        Label5: TLabel;
        Label6: TLabel;
        Label7: TLabel;
        Query_ShiftDetail: TADOQuery;
        DBCheckBox1: TDBCheckBox;
        DBLook_WeekList: TDBLookupComboboxEh;
        DBNumberEditEh1: TDBNumberEditEh;
        DBLook_PeriodList: TDBLookupComboboxEh;
        procedure FormCreate(Sender: TObject);
        procedure DBLookupComboBox_DeptIDCloseUp(Sender: TObject);
        procedure btnSearchClick(Sender: TObject);
        procedure btnSaveClick(Sender: TObject);
        procedure DS_DbGridDataChange(Sender: TObject; Field: TField);
        procedure Query_ShiftDetailAfterOpen(DataSet: TDataSet);
      private
        { Private declarations }
      Protected
        procedure SetAllControlStatus;override;
        Procedure DeleteData(AADODataSet:TADOQuery);override;
      public
        { Public declarations }
      end;请问那个是 dataprovider ?
      

  6.   


    //概述:DS_DbGridDataChange:主表数据源变化,从表数据也跟着变化
    procedure TFrm_Shift.DS_DbGridDataChange(Sender: TObject; Field: TField);
    begin
      inherited;
          try
                try
                      Query_ShiftDetail.DisableControls;
                      Query_ShiftDetail.Close;
                      Query_ShiftDetail.Parameters.ParamByName('ShiftID').Value := Query_DbGrid.FieldByName('ID').AsString;
                      Query_ShiftDetail.Open;                                //先执行  AfterOpen 事件,再执行下边的 Query_ShiftDetail.EnableControls;
                      Query_ShiftDetail.EnableControls;            except                  on E:Exception do
                      begin
                            Write_LogErr(C_UnitNo+'0006:DS_DbGridDataChange:主表数据源变化事件',IntToStr(E.HelpContext)+':'+E.Message,'');
                      end;//end E:Exception
                end;//end except      finally      end;//end finallyend;
    下边这个地方出错了! Query_ShiftDetail.EnableControls;
      

  7.   

     Query_ShiftDetail.DisableControls;
                      Query_ShiftDetail.Close;
                      Query_ShiftDetail.Parameters.ParamByName('ShiftID').Value := Query_DbGrid.FieldByName('ID').AsString;
                      Query_ShiftDetail.Open;                                //先执行  AfterOpen 事件,再执行下边的 Query_ShiftDetail.EnableControls;
                      Query_ShiftDetail.EnableControls;
    应该是Query_ShiftDetail.Close;后Query_ShiftDetail.DisableControls;
    这个代码就无效了吧,
    Query_ShiftDetail.Open后就不用Query_ShiftDetail.EnableControls;了操作OPEN与CLOSE不要执行DisableControls和DisableControls语句
      

  8.   

            Query_ShiftDetail.DisableControls;
            Query_ShiftDetail.EnableControls;所以这两条代码是可以删除的
      

  9.   

    Query_ShiftDetail.DisableControls;
    Query_ShiftDetail.EnableControls;不是配合Open和Close使用的,一般用于循环记录时才用到当Query_ShiftDetail.Open后Query_ShiftDetail.EnableControls;就默认是有效的所以不必加上Query_ShiftDetail.EnableControls;
      

  10.   

    exe运行时异常被捕获,具体要看你代码了
    调试是不会捕获。
      

  11.   

    谢谢各位!!  谢谢 case5166