DATABASE中的相对路径问题(100分)

  • 主题发起人 主题发起人 xiaoyu
  • 开始时间 开始时间
X

xiaoyu

Unregistered / Unconfirmed
GUEST, unregistred user!
我用DELPHI写的CGI中要操作DBF文件中的数据,由于我在WEB SERVER上只
能对一个目录操作,甚至连其绝对路径都不知道。我用DATABASE控件来连
接同一目录下的DBF文件,但设置参数

PATH=相对路径 不行
PATH=绝对路径 可以

我怎样能得到DBF文件所在目录的路径(不是当前路径)?
或者怎样设置才能使相对路径有效?
请各位大虾出手相帮!
 
1. 获得当前路径。
2。根据相对路径获得绝对路径。

如: dbf文件在当前路径的/db下,您可以用:
query1.databasename := ExtractFilePath(application.ExeName)+'/db';

 
在默认的情况下:当一个新的internet server 对象被建立,
Delphi 构造一个application对象, 并且指定给Application.
如果项目表现为一个CGI或 Win-CGI服务器应用程序,
Application初始化为一个TCGIApplication对象.
如果项目表现为ISAPI或NSAPI服务器应用程序,
Application初始化为一个TISAPIApplication对象.
TWebApplication对象的创建依赖于项目是否包含ISAPIApp单元或
CGIApp单元在它的uses list.
而这几种Application对象都没有象Tapplication对象一样
的ExeName属性,所以不能通过ExeName来取得路径.
但是可以通过GetCurrentDir函数来与的当前目录的路径.
将此路径进行分析可以得到你的DBF文件的路径.

 
DATABASENAME设为空,就是当前目录
 
先谢谢dsp,wangkun,六窍通。
但大家可能没考虑我的处境,我在本机上编译CGI,然后上载到WEB服务器,
我只能操作一个目录,而且只知道共享名,大家的方法我都试过,还是不行。
我考虑
1 Application.exename不能用,即使能,得到的也是exe生成时的路径吧;
2 Getcurrentdir以前我也试过,得到的是WEB站点所在目录的绝对路径,
而不是我的文件所在目录的路径,我再研究一下;
3 dataset.databasename=''得到的也是exe生成时的路径吧,可能在编译
时加入了这一信息。
 
非要用路径?难道不能使用ODBC吗?
 
再请问大家一个问题,DELPHI写的CGI在UNIX上能用吗?听说VB写的只能用于
NT平台,而C的适用于任何平台,很奇怪,它们不是都编译成二进制码了吗?
 
dsp的写法可以,但是应该改写为:
query1.databasename := ExtractFilePath(application.ExeName)+'db';
 
为什么不用别名?就是解决这问题的呀
xiaoyu:unix不行
 
多人接受答案了。
 
后退
顶部