用Delphi做了个基于ISAPI的网站,怎么就是连不上数据库?急(100分)

  • 主题发起人 主题发起人 rhode_w
  • 开始时间 开始时间
R

rhode_w

Unregistered / Unconfirmed
GUEST, unregistred user!
各位,我用delphi做了一个基于ISAPI的网站(其实就是一个简单的示例),网站就是用一个DLL文件
后台数据库是Access,如果数据库连接断开,网页显示正常,可为什么一连上数据库就会出错呢?
 
你的问题太笼统了!出错的可能很多,你应当把你的错误信息写上来,并且把你的思路
说一下
 
那简单一点吧,我的意思就是想测试一下用delphi的做个ISAPI WEB应用程序与本地数据库的连接,
很简单的一个例子。其中有连接数据库的database,只要设置了database连接,程序就出错,
网页显示内部出错。取消连接一切正常,问题就在数据库的连接上,是否数据源设置有问题,
但本地系统可以正常连接上的。
 
一般错误应当出现在连接池的设置上!
 
把你的连接设为绝对路径
 
多谢了两位。我试试去。
刚才在大富翁里查阅了下,发现还有不少人遇到过同样的问题,典型的:
[blue]http://www.delphibbs.com/delphibbs/dispq.asp?lid=1530737[/blue]
kupwl2认为,在(WINNT+IIS4) OR (WIN2K+IIS5)
NT 下肯定会出现这种问题。
我的配置是:Win2kServer + iis5 不知道是不是和这有关?
 
上面的方法好象也行不同啊
 
打开IIS管理器.
选择"默认的Web站点"->"Scripts",(如果你的dll是放在这里的话)
在youdll.dll上点右键,选"属性"->"文件安全性"
选中"允许匿名访问",点击"编辑"按钮,
输入有访问数据库权限的用户,比如Administrator,和该用户的密码即可.
 
上面老大说的好象很有道理。但现在出现了更麻烦的事,就是不管连接不连接数据库dll
都不能执行,网页显示内部出错。我想问一下,iis5是不是默认就支持ISAPI应用的?
或是还做一些配置?现在可以运行asp,cgi.
本机环境:WIN2KSever+iis5+delphi7。(执行许可和dll文件权限都设置了执行的)
我只是想做个东西玩玩,怎这么麻烦!拜托各位老大再帮帮忙了。
 
现在好象是连上了,但出现下面的错误:
Internal Server Error 500
Exception: EDBEngineError
Message: An error occurred while attempting to initialize the Borland Database Engine (error $2B05)
 
上面是将ISAPI改为CGI类型出现的错误,如果是Dll类型的ISAPI,则连这些信息都看不到,
提示HTTP 500 内部服务器错误
 
to:rhode_w
您的问题解决了吗?我现在遇到同样的错误,不过
我是连接oracle数据库,错误信息是:
Initialization error
Could not locate OCI dll
OracleHomeKey: SOFTWARE/ORACLE/HOME0
OracleHomeDir: D:/oracle/ora92

http://www.delphibbs.com/delphibbs/dispq.asp?lid=2541844
能够告诉我一下,谢谢~
 
一般空間是不支持isapi的,你是不是自己用機子試?? 你必須要用windows的iis 5以上才可以,lunix的不支持isapi..
 
对,是用自己的机器试的.windows iis5
 
An error occurred while attempting to initialize the Borland Database Engine (error $2B05)
我没有用做ISAPI的时候都用ACESS做数据库,但是上面出现的BDE错误,我相你可能用BDE了,我认为BDE和ACCESS一样再初始化的时候都要准确的映射到相应的路径上,否则就会出现HTTP内部错误。你可以再ONCREATE方法要重新映射路径。我做的时候出错,我就一点点的调试,把出错的字符用ISAPI返回调试,又INTRABOB可以调试WEB程序,但是一则用DELPHI5上的,二是我也不大会用。。。。。
 
一个例子一部分:
Const
ADOSTR='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%S;Persist Security Info=False;Jet OLEDB:Database Password=****1;';
procedure TWebMain.WebModuleCreate(Sender: TObject);
var
dbPath:String;
AppPath:String;
begin
dbPath:=ExtractFilePath(ParamStr(0))+'zlBase.mdb';
AppPath:=ExtractFilePath(ParamStr(0));
ADOBase.Connected:=False;
ADOBase.ConnectionString:=Format(ADOSTR,[dbPath]);
ADOBase.Connected:=True;
ppMain.HTMLFile:=AppPath+'Main.htm';
ppLogin.HTMLFile:=AppPath+'Login.html';
ppAddList.HTMLFile:=AppPath+'addlist.htm';
ppMore.HTMLFile:=AppPath+'List.htm';
ppDetail.HTMLFile:=AppPath+'Detail.htm';
ppEdit.HTMLFile:=AppPath+'editinfo.htm';
end;
之后要配置好IIS就OK了
 
后退
顶部