不要用数据库别名,在应用程序中加一个初始设计用它来定义数据库的所在目录,在程序中通过定义query的  query1.Database.Directory 来定义数据库的路径.

解决方案 »

  1.   

    别名和路径都可以设呀。
    用session来做,下面的函数应该对你有帮助。function setdbalias(const aliasname, servername:string):boolean;
    var
      paramlist:tstringlist;
    begin
      result:=true;
      paramlist:=tstringlist.Create;
      try
        paramlist.Clear;
        paramlist.Add('SERVER NAME='+servername);
        paramlist.add('USER NAME=SYSDBA');
        paramlist.add('PASSWORD=masterkey');
        if session.IsAlias(aliasname) then
        begin
          session.ModifyAlias(aliasname,paramlist);
        end else
        begin
          session.AddAlias(aliasname,'intrbase',paramlist);
        end;
        session.SaveConfigFile;
      except
        result:=false;
      end;
      paramlist.free;
    end;这是一个针对interbase的函数,很容易改成其他的,
    如果使用dbf或pardox库,直接设query.databasename为当前目录就可以。exepath:=ExtractFilePath(application.exename);
    query.databasename:=exepath;ok拉
      

  2.   

    用WINDOWS系统的ODBC设置文件数据源。用BDE访问时只须修改ODBC中的相关设置即可。
      

  3.   

    设置tquery控件的database属性为数据库的目录,用openfiledialog组件,打开数据库文件,用函数取得该文件的目录,再赋给tquery控件的database属性。
      

  4.   

    最好是用TDatabase在主窗口创建时
    为TDatabase的Params赋值,用Application.ExeName
    获取程序的执行路径,将数据库的path指向此路径。
      

  5.   

    TDataBase.DataBaseName:='别名'
    TDataBase.Params赋相关参数