新建一个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'请高手指教,谢谢!

解决方案 »

  1.   

    除了2楼的兄弟说的少了uses forms 外,
    你贴的代码倒数第4行多了一个end。
      

  2.   

    gzmhero(hihihi) ( ):
    搞定!!!只是我不明白,新建一个DataModule,在它的USES子句里面为什么默认就没有forms和其它的 比如Dialogs呢?还要手工来加呢? fengzhengren(风筝) :
    不只是这样,那个TABLE也全部写成了HTable!不过那个END是没有写多,是我帖的时候搞错了,同样谢谢你!
      

  3.   

    DataModule是不可见的,不是一个Form当然不包含Forms了。