能否使数据库应用程序放在数据库别名制定的位置之外运行?

bubble 2000-03-16 04:36:00
在使用Delphi的Query组件访问本地数据库时,一般都会在设计阶段设计数据库的别名,并将其写入Query组件的DatabaseName属性中,而别名一旦建立就固定的指向该数据库设计时所在的目录位置。这样程序做好后,只能放在规定的目录下,没有灵活性。
能否使做好的数据库应用程序可以任意的放在磁盘的任何目录中呢?
请各位高手指教。
...全文
145 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
AcherMagic 2000-03-17
  • 打赏
  • 举报
回复
最好是用TDatabase在主窗口创建时
为TDatabase的Params赋值,用Application.ExeName
获取程序的执行路径,将数据库的path指向此路径。
Rich_Zhou 2000-03-17
  • 打赏
  • 举报
回复
关注
LaoZheng 2000-03-17
  • 打赏
  • 举报
回复
TDataBase.DataBaseName:='别名'
TDataBase.Params赋相关参数
holoboy 2000-03-17
  • 打赏
  • 举报
回复
设置tquery控件的database属性为数据库的目录,用openfiledialog组件,打开数据库文件,用函数取得该文件的目录,再赋给tquery控件的database属性。
lixq 2000-03-16
  • 打赏
  • 举报
回复
用WINDOWS系统的ODBC设置文件数据源。用BDE访问时只须修改ODBC中的相关设置即可。
渤海海峡 2000-03-16
  • 打赏
  • 举报
回复
别名和路径都可以设呀。
用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拉
蝈蝈俊 2000-03-16
  • 打赏
  • 举报
回复
不要用数据库别名,在应用程序中加一个初始设计用它来定义数据库的所在目录,在程序中通过定义query的 query1.Database.Directory 来定义数据库的路径.

2,495

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧