各位大侠帮帮忙,asp连接oracle数据库,搞不定了。

dpfrog 2003-12-15 07:12:42
小弟作一asp程序,用odbc连接oracle数据库,调试时一直是把我自己的pc机作web服务器连接另一台数据库服务器。
现在要进入正式运行了,买来了新服务器,安装了oracle,
在我自己的pc机上连接该数据库没问题,把程序放在新服务器作为web服务器时连接老是出错(web服务器和数据库在同一机器上)。
我用的是:
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Driver={Microsoft ODBC for Oracle};" & _
"Server=hwfx;" & _
"Uid=hdfj1;" & _
"Pwd=hdfj1;"

%>

数据库服务名为 hwfx。
语句为:
set rs=server.createobject("adodb.recordset")
if select1="a" then
sql="select * from admin "
rs.open sql,conn,1,1 ***********该句出错!!!!!!

错误为:Microsoft OLE DB Provider for ODBC Drivers 错误 80040e21
odbc 不支持所需的属性。

小弟觉得很奇怪,难道是服务器的odbc不支持??还是有别的原因?我该怎么办??
谢谢各位!!!
...全文
114 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxflywing 2003-12-19
  • 打赏
  • 举报
回复
看你出错的位置,不是连接数据库时出错的。
可能是你打开的字段有CLOB.BLOB.LONG等类型,
这些类型要用OLE DB连接数据库。
北京好男 2003-12-17
  • 打赏
  • 举报
回复
搞了半天,其实,根本没有这麽复杂。请看:
Provider=MSDAORA.1;Password=登陆的用户名;User ID=对应的密码;Data Source=数据库实例名;Persist Security Info=True
这个字符串大家都知道,可能连接不上,看着情况,就是数据库实例名搞错了(像你也不至于把用户名和密码搞错,这可是低级错误)。要看你的数据库实例名,请打开oracle的控制台,即:Enterprise Manager Console,独立启动,然后你就可以看到你已经安装的数据库实例,就在数据库节点的下面(打开+号),你看到什麽了?是不是你已经添加的数据库实例?那个名称就是“Data Source=数据库实例名”处要填的东东。这只在你的web服务器和oracle装在同一台机器上,可这麽坐。
如果你的oracle 和web不在同一台机器上,那麽,作web服务的这台机器上要装oracle的客户端程序,然后再添加oracle数据库实例(指向实际装有oracle数据库的机器,具体做法你应该已经成功实现过)。这时候,数据库实例名按上段所讲,一样可以找到并使用之。
祝愉快!
eafin 2003-12-15
  • 打赏
  • 举报
回复
ORACLE:
1.ODBC Driver for Oracle

<%

Dim oConn,strConn

Set oConn=Server.CreateObject(“ADODB.Connection”)

StrConn="Driver={Microsoft ODBC for Oracle};" & _

          "Server=OracleServer.world;" & _

          "Uid=myUsername;" & _

          "Pwd=myPassword;"

oConn.Open strConn

%>

2.OLE DB Provider for Oracle (from Microsoft)

<%

Dim oConn,strConn

Set oConn=Server.CreateObject(“ADODB.Connection”)

StrConn= "Provider=msdaora;" & _

          "Data Source=MyOracleDB;" & _

          "User Id=myUsername;" & _

          "Password=myPassword;"

oConn.Open strConn

%>

3. OLE DB Provider for Oracle (from Oracle)

<%

Dim oConn,strConn

Set oConn=Server.CreateObject(“ADODB.Connection”)

StrConn= "Provider=OraOLEDB.Oracle;" & _

          "Data Source=MyOracleDB;" & _

          "User Id=myUsername;" & _

          "Password=myPassword;"

oConn.Open strConn

%>
liangyongwen 2003-12-15
  • 打赏
  • 举报
回复
用OLEDB,告诉你一种简单的方法:先用记事本新建一个文本文件,然后打开,另存为link.udl,注意,一定要是udl后缀名,然后双击打开这个link.udl文件,会弹出一个对话窗口,点提供者页面,点Microsoft OLE DB Provider For Oracle,然后下一步,输入服务器名,用户名,密码,测试连接,如果连接不上很可能是服务器名有问题!连接成功后,用记事本打开这个link.udl文件,最后一行就是用来连接Oracle数据库的字符串,把它拷贝到剪切板,等一下用到,字符创类似于“Provider=MSDAORA.1;User ID=scott;Data Source=super;Persist Security Info=False”下一步在Asp代码写:
<% set con=server.createObject("adodb.connection")
con.open "xxxxx" 'xxx的内容就是刚才放到剪切板的字符串,粘贴就行了
set rs=server.createObject("adodb.recordset")
rs.open "",con,3 '游标类型选3才支持分页更能!
%>

dpfrog 2003-12-15
  • 打赏
  • 举报
回复
谢谢两位,不过我还是不明白,不用odbc该怎么连啊?麻烦您说清楚点好吗?
zhzhs007 2003-12-15
  • 打赏
  • 举报
回复
不需要ODBC的呀
bzscs 2003-12-15
  • 打赏
  • 举报
回复
程序中连接数据库的地方采用数据源的连接方式就可以了

要通过Oracle Objects Server来访问Oracle8数据库,除了基本的Web服务器与ASP等软件外,还必须确定Web服务器已经安装了Oracle Object for OLE软件,其所需的软件包括:Network Protocol Adapter、Oracle Object for OLE2.X、SQL*Net Client2.X或Oracle Net8 Client8.X、SQL*Plus及Oracle8 ODBC Driver。在确定Web服务器已安装上述软件后,还必须利用SQL*Net Client2.X或Oracle Net8 Client8.X进行数据库的连接测试并设置数据库别名(Database Alias)。
Oracle Objects Server共提供Oraclient、Orasession、Oraconnection、OraDatabase、OraDynaset、OraSQLstmt、OraField、Oraparameter、Oraparameter Array等九个对象供开发者使用。其功能与作用分述如下:
1.Oraclient对象
Oraclient对象是用来定义服务器端(Client或Workstation)的范围,Oraclient会记录此服务器端的所有Orasession对象。Oraclient由系统根据需要自动建立。
2.Orasession对象
Orasession对象用来在程序中管理Oraconnection、OraDatabase、OraDynaset等对象,其建立方法如下:
Set Orasession=Create(“OracleInProcServer.Xorasession”)
3.Oraconnection对象
Oraconnection对象表示对OraDatabase对象的连接,当需要建立OraDatabase对象时,系统会自动产生一个Oraconnection对象。反之,当与数据库断开连接时,Oraconnection对象自动释放。
4.OraDatabase对象
OraDatabase对象表示对数据库服务器的虚拟登录,其登录方法如下:
Set Oradadabase=Orasession.Dbopendatabase_
(“数据库别名”, “用户名称/密码”,0)
5.OraDynaset对象
OraDynaset对象会将数据库服务器符合SELECT命令的数据加以存储在客户端的缓冲区,让用户浏览或更新,最后将结果写回到服务器,其方法如下:
SetOraDynaset=OraDatabase.DbcreateDynaset(“SQL语句”,0)
6.OraSQLstmt对象
OraSQLstmt对象通常用来运行SQL命令、或是调用存储过程,其用法如下:
Set Orasqlstmt=Oradatabase.createSQl(“SQL语句”,0)
7.OraField对象
OraField对象表示在OraDynaset对象中的某个字段或数据项目,他通过value属性设置或取得OraDynaset对象中的某个字段值。
8.Oraparameter对象
Oraparameter对象表示一个在SQL命令或PL/SQL程序区块中所附加的变量。
9.Oraparameter Array对象
Oraparameter Array对象是Oraparameter对象的数组类型,Oraparameter Array对象可以间接通过OraDatabase对象的Oraparameter数据集合来增加、存取或删除某个变量。


28,407

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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