新建一个DataModule,放三个Table,分别为Htable,RTable,CTable,在DataModule的OnCreate事件放以下代码:
procedure TDataContrls.DataModuleCreate(Sender: TObject);
var
success:boolean;
begin
success:=True;
if FileExists('House.dbf') then
begin
HTable.DatabaseName:=ExtractFilePath(Application.ExeName);
HTable.TableName:='House.dbf';
HTable.Close;
HTable.Open;
end
else
success:=False;
if FileExists('Contract.dbf') then
begin
HTable.DatabaseName:=ExtractFilePath(Application.ExeName);
HTable.TableName:='Contract.dbf';
HTable.Close;
HTable.Open;
end
else
success:=False;
if FileExists('Rent.dbf') then
begin
HTable.DatabaseName:=ExtractFilePath(Application.ExeName);
HTable.TableName:='Rent.dbf';
HTable.Close;
HTable.Open;
end
else
success:=False;
end;
if not success then
ShowMessage('有数据库文件不存在,请进入系统后马上在系统维护中恢复数据.');
end;
目的是数据数据表文件是否存在,并对其进行相应处理,但编译时出现如下错误:
[Error] data.pas(37): Undeclared identifier: 'Application'
[Error] data.pas(37): ')' expected but identifier 'ExeName' found
[Error] data.pas(42): ';' expected but 'ELSE' found
[Error] data.pas(46): Undeclared identifier: 'HTable'
[Error] data.pas(46): Undeclared identifier: 'Application'
[Error] data.pas(46): ')' expected but identifier 'ExeName' found
[Error] data.pas(51): '.' expected but 'ELSE' found
[Error] data.pas(54): Identifier redeclared: 'Finalization'
[Error] data.pas(55): Missing operator or semicolon
[Error] data.pas(55): ')' expected but identifier 'ExeName' found
[Warning] data.pas(60): Text after final 'END.' - ignored by compiler
[Fatal Error] Project1.dpr(12): Could not compile used unit 'data.pas'请高手指教,谢谢!
procedure TDataContrls.DataModuleCreate(Sender: TObject);
var
success:boolean;
begin
success:=True;
if FileExists('House.dbf') then
begin
HTable.DatabaseName:=ExtractFilePath(Application.ExeName);
HTable.TableName:='House.dbf';
HTable.Close;
HTable.Open;
end
else
success:=False;
if FileExists('Contract.dbf') then
begin
HTable.DatabaseName:=ExtractFilePath(Application.ExeName);
HTable.TableName:='Contract.dbf';
HTable.Close;
HTable.Open;
end
else
success:=False;
if FileExists('Rent.dbf') then
begin
HTable.DatabaseName:=ExtractFilePath(Application.ExeName);
HTable.TableName:='Rent.dbf';
HTable.Close;
HTable.Open;
end
else
success:=False;
end;
if not success then
ShowMessage('有数据库文件不存在,请进入系统后马上在系统维护中恢复数据.');
end;
目的是数据数据表文件是否存在,并对其进行相应处理,但编译时出现如下错误:
[Error] data.pas(37): Undeclared identifier: 'Application'
[Error] data.pas(37): ')' expected but identifier 'ExeName' found
[Error] data.pas(42): ';' expected but 'ELSE' found
[Error] data.pas(46): Undeclared identifier: 'HTable'
[Error] data.pas(46): Undeclared identifier: 'Application'
[Error] data.pas(46): ')' expected but identifier 'ExeName' found
[Error] data.pas(51): '.' expected but 'ELSE' found
[Error] data.pas(54): Identifier redeclared: 'Finalization'
[Error] data.pas(55): Missing operator or semicolon
[Error] data.pas(55): ')' expected but identifier 'ExeName' found
[Warning] data.pas(60): Text after final 'END.' - ignored by compiler
[Fatal Error] Project1.dpr(12): Could not compile used unit 'data.pas'请高手指教,谢谢!
你贴的代码倒数第4行多了一个end。
搞定!!!只是我不明白,新建一个DataModule,在它的USES子句里面为什么默认就没有forms和其它的 比如Dialogs呢?还要手工来加呢? fengzhengren(风筝) :
不只是这样,那个TABLE也全部写成了HTable!不过那个END是没有写多,是我帖的时候搞错了,同样谢谢你!