procedure Tinputdataform.lastClick(Sender: TObject);
begin
  DM.Qu_basic.last;
  with  DM.Qu_basic do
    begin
      e_ID.text:=Fieldbyname('no').asstring ;
      e_ddh.text:=Fieldbyname('ddh').asstring ;
      e_wxh.text:=Fieldbyname('wxh').asstring;
      e_dh.text:=Fieldbyname('dh').asstring;
      d_tbrq.DateTime:=Fieldbyname('tbrq').asDateTime;
    end;
end;调试过程中出现拉问题,我该怎么解决,错误信息:
Debugger Exception Notification;
        
     Project  Mis.exe  raised exception class EAccessViolation with message 'Access violation  at  address  004E81F0  in module 'Mis.exe'.Read of address 00000064'.Process  stopped . Use Step or Run  to continue .还有一事件:是可以正确运行的
procedure Tinputdataform.FirstClick(Sender: TObject);
begin
  DM.Qu_basic.first;
  with  DM.Qu_basic do
    begin
      e_ID.text:=Fieldbyname('no').asstring ;
      e_ddh.text:=Fieldbyname('ddh').asstring ;
      e_wxh.text:=Fieldbyname('wxh').asstring;
      e_dh.text:=Fieldbyname('dh').asstring;
      d_tbrq.DateTime:=Fieldbyname('tbrq').asDateTime;
    end;
end;  说明:DM.Qu_basic 是DM 数据模板中的ADOQuery

解决方案 »

  1.   

    procedure Tinputdataform.lastClick(Sender: TObject);
    begin
      DM.Qu_basic.last;
    //你已经在数据集的last了,那你还到哪去取得数据赋值呀?
    //上面的语句去掉,或是改一下
      with  DM.Qu_basic do
        begin
          e_ID.text:=Fieldbyname('no').asstring ;
          e_ddh.text:=Fieldbyname('ddh').asstring ;
          e_wxh.text:=Fieldbyname('wxh').asstring;
          e_dh.text:=Fieldbyname('dh').asstring;
          d_tbrq.DateTime:=Fieldbyname('tbrq').asDateTime;
        end;
    end;
      

  2.   

    Query 不是有Last方法的呀!,我在Query 中用是可以的,以前我用过,因为我原来用BDE出现拉很多问题,所以我把他该成ADOQUERY拉,可这样又不行,我的目的是模拟 数据导航条 中的LAST功能,那我想指想做最后1条记录怎么办???
      

  3.   

    AdoQuery是可以用Last事件的,你在調試的時候是執行到那一句時出的錯?我想應該是最後一個賦值語句吧,因為那是TDatetime類型的。
      

  4.   

    代碼沒看出有什么問題﹐你試著升級一下ADO吧。
      

  5.   

    procedure Tinputdataform.lastClick(Sender: TObject);
    begin
      //在确保你的SQL语句正确的情况下,DM.Qu_basic.open;
      if Qu_basic.RecordCount<>0 then
       begin
        DM.Qu_basic.last;
        with  DM.Qu_basic do
         begin
          e_ID.text:=Fieldbyname('no').asstring ;
          e_ddh.text:=Fieldbyname('ddh').asstring ;
          e_wxh.text:=Fieldbyname('wxh').asstring;
          e_dh.text:=Fieldbyname('dh').asstring;
          d_tbrq.DateTime:=Fieldbyname('tbrq').asDateTime;
        end;
      end
     else
      begin
       showmessage('没有符合你SQL语句所要SELECT的数据记录!');
       //既然没有数据记录,自然就不能LAST了!
      end;
    end;
      

  6.   

    ADO组件有BUG,一是下载补丁,二是改应用query