OpenDialog1.Filter := 'Text files (*.dbf)|*.dbf';
  if OpenDialog1.Execute  then
  begin
  Edit1.Text :=OpenDialog1.FileName ;
  dir1:= OpenDialog1.FileName ;
  dir:=ExtractFileName(OpenDialog1.FileName) ;
  Table1.DatabaseName :=ExtractFilePath(dir1);  //TableName:= Copy(dir,1,Pos(ExtractFileExt(dir),dir) - 1) ;
  TableName:= dir;
  Table1.TableName := TableName  ;
  Table1.Active :=true;
  end;
  Button1.Caption := TableName;我的思路是选择DBF文件然后用BDE打开,(程序控制)但是报内存的错误,是不是字符串字体的错误???因为我听说字体don't use an alias

解决方案 »

  1.   

    是数据库的别名,你的ODBC没有配置,找不到就包错
      

  2.   

    对,写上:databasename:='别名';
      

  3.   

    以上代码无任何问题,测试通过(d5+2000 server family)。
      

  4.   

    procedure TForm1.FormCreate(Sender: TObject);
    var dir1,dir,TableName:string;
    begin
      OpenDialog1.Filter := 'Text files (*.dbf)|*.dbf';
      if OpenDialog1.Execute  then
      begin
        Edit1.Text :=OpenDialog1.FileName ;
        dir1:= OpenDialog1.FileName ;
        dir:=ExtractFileName(OpenDialog1.FileName) ;
        Table1.DatabaseName :=ExtractFilePath(dir1);
        TableName:= dir;
        Table1.TableName := TableName  ;
        DataSource1.DataSet:=Table1;
        DBGrid1.DataSource:=DataSource1;
        Table1.Active :=true;
      end;
        Button1.Caption := TableName;
        showmessage(Table1.databaseName);
        showmessage(TableName);
        showmessage(dir1);
    end;