关于一个编译错误!!!!!急啊! 编译时提示:Unsatisfied forward or external declaration: '<Procedurename>' 它说:不满足的向前或外部说明<Procedurename>请问一般是什么原因.谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 全部代码如下: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; endend;end. 你不要直译错误信息啦那个报错是说声明前后不一致通常是指你的函数或过程声明前后不一致,请检查一下报错的过程/函数声明,在Unit开头的声明和代码中的是否一致,如果是不一致,那么可以这样处理:1.删除Unit开头的声明2.回到声明/函数体内部,按住CTRL+SHIFT+C即可 错误是Unsatisfied forward or external declaration: 'tform5.Execute' 谢谢啊 看了你的代码,问题不是我之前的那样是你的函数名Execute的问题,改掉吧 检查出来了,是这里:Function Execute(cstr:string;ADOQuery:TADOQuery):integer;应该是Function TForm5.Execute(cstr:string;ADOQuery:TADOQuery):integer; 急:请教高人delphi7数据库问题 多表组合分类统计问题~~~ 祝大家元旦快乐,身体健康,事事如意! delphi中如何创建并调用dill 用spcomm进行串口通讯,在2k下可以正常通讯,但在98下不行,不知什么原因 大家进来聊聊,给高分! 在DELPHI 6中怎样调用自己编写的DLL中的函数? 紧急求助 关于发送电子邮件的问题 --SQL查询结果不对---请高手指教---有分--在线等待 菜鸟的问题!如何在一个工程中添加另外工程中的文件! 奇怪!!请参与讨论!!着急!!
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.回到声明/函数体内部,按住CTRL+SHIFT+C即可
谢谢啊
是你的函数名Execute的问题,改掉吧
Function Execute(cstr:string;ADOQuery:TADOQuery):integer;应该是
Function TForm5.Execute(cstr:string;ADOQuery:TADOQuery):integer;