编译时提示:Unsatisfied forward or external declaration: '<Procedurename>'            
它说:不满足的向前或外部说明<Procedurename>
请问一般是什么原因.谢谢

解决方案 »

  1.   

    全部代码如下:
    unit Unit5;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, ADODB, StdCtrls, Buttons, Grids, DBGrids;type
      TForm5 = class(TForm)
        DBGrid1: TDBGrid;
        BitBtn1: TBitBtn;
        BitBtn2: TBitBtn;
        BitBtn3: TBitBtn;
        BitBtn4: TBitBtn;
        DataSource5: TDataSource;
        ADOQuery5: TADOQuery;
        Edit1: TEdit;
        Edit2: TEdit;
        Edit3: TEdit;
        Edit4: TEdit;
        Label1: TLabel;
        Label2: TLabel;
        Label3: TLabel;
        Label4: TLabel;
        Button1: TButton;
        Button2: TButton;
        procedure BitBtn1Click(Sender: TObject);
      private
        { Private declarations }  public
        { Public declarations }
        Function Execute(cstr:string;ADOQuery:TADOQuery):integer;    end;
    var
      Form5: TForm5;implementation
    {$R *.dfm}
    Function Execute(cstr:string;ADOQuery:TADOQuery):integer;
    Begin
       result:=0;
       Try
         //关闭数据集
         ADOQuery.Close;
         //赋予SQL语句
         ADOQuery.SQL.Text :=cstr;
         //执行
         ADOQuery.Open;   Except
         //出现异常
         on E:exception Do Begin
            showmessage(e.Message);
            result:=1;
            End;
       End;
    End;procedure TForm5.BitBtn1Click(Sender: TObject);
      var
        sql5:string;
    begin if  (trim(edit1.Text)='')or(trim(edit2.Text)='' )or(trim(edit3.Text)='') or(trim(edit4.Text)='')  then
       begin
       showmessage('请正确输入');
       exit;
       end
       else
       begin   sql5:='insert into worker_info(no,password,quanxian,name)';
       sql5:=sql5+'values('+edit1.text+', '''+edit3.text+''','''+edit4.text+''','''+edit2.text+''')';
       form5.Execute(sql5,ADOQuery5);
       form5.Edit1.Clear;
       form5.Edit3.Clear;
       form5.Edit2.Clear;
       form5.Edit4.Clear;   end
    end;end.
      

  2.   

    你不要直译错误信息啦那个报错是说声明前后不一致通常是指你的函数或过程声明前后不一致,请检查一下报错的过程/函数声明,在Unit开头的声明和代码中的是否一致,如果是不一致,那么可以这样处理:1.删除Unit开头的声明
    2.回到声明/函数体内部,按住CTRL+SHIFT+C即可
      

  3.   

    错误是Unsatisfied forward or external declaration: 'tform5.Execute' 
    谢谢啊
      

  4.   

    看了你的代码,问题不是我之前的那样
    是你的函数名Execute的问题,改掉吧
      

  5.   

    检查出来了,是这里:
    Function Execute(cstr:string;ADOQuery:TADOQuery):integer;应该是
    Function TForm5.Execute(cstr:string;ADOQuery:TADOQuery):integer;