Oracle 8.1.7数据库服务器上OO4O不能执行的问题:
现象:
1。用OO4O连接数据库的VB程序,在客户机上可以正确执行,但在Oracle 8.1.7的数据库服务器(Win2K)上却无法执行
2。用OO4O连接数据库的ASP程序,在其它装了IIS的服务器上可以正确执行,但在Oracle 8.1.7的数据库服务器上却无法执行
现象:
1。用OO4O连接数据库的VB程序,在客户机上可以正确执行,但在Oracle 8.1.7的数据库服务器(Win2K)上却无法执行
2。用OO4O连接数据库的ASP程序,在其它装了IIS的服务器上可以正确执行,但在Oracle 8.1.7的数据库服务器上却无法执行
解决方法:
1。如果VB程序不能执行,重新安装OO4O即可,启动Oracle Universal Installer,然后选择Oracle Object for Ole
2。方法一:
ASP连接数据库,不能像VB程序那样,用下面的CreateObject来创建OraSession对象(也许有其他方法可以实现Session对象的直接创建,各位有兴趣可以研究一下):
Set OraSession = Server.CreateObject("OracleInProcServer.XOraSession")
Set OraDB = OraSession.OpenDatabase(dbAlias,UserName/Password,0)
Set OraDB = OraSession.OpenDatabase(dbAlias,UserName/Password,0)
而是应该在虚拟目录的Global.asa文件中写如下语句:
<OBJECT RUNAT=Server SCOPE=Application ID=OraSession
PROGID="OracleInProcServer.XOraSession"></OBJECT>
PROGID="OracleInProcServer.XOraSession"></OBJECT>
在Global.asa的Application_OnStart事件过程中增加下列语句(如果没有Application_OnStart事件过程,则需添加此过程):
OraSession.CreateDatabasePool 1,40,200,dbAlias, UserName/Password, 0
然后在ASP程序中用下列方法打开数据库:
Set OraDB = OraSession.GetDatabaseFromPool(10)
注意:修改Global.asa后必须重新启动WWW服务。上述方法中各参数的意义请参考 Oracle Object for OLE Help 帮助文件
方法二:可以通过修改Oracle的用户认证方式,而不修改ASP程序的办法来解决。但出于安全性的考虑,修改用户认证方式有时是不允许的。修改方法如下:
将d:/oracle/ora81/network/admin/sqlnet.ora中的
将d:/oracle/ora81/network/admin/sqlnet.ora中的
sqlnet.authentication_services = (NTS)
改为
sqlnet.authentication_services = (none)
以后ASP程序即可正常执行。