By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,594 Members | 3,459 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,594 IT Pros & Developers. It's quick & easy.

error to connect ASP page to Oracle

P: n/a
My machine is Windows XP with Oracle 9.2 Home; IIS and Oracle
are in the same box.

I have tried both Oracle OLEDB Provider and Microsoft ODBC For Oracle,
but both not working.

For Microsoft ODBC For Oracle approach, I added a data source
in Oracle Data Source Administrator, in System DSN tab, I created
a system data source named OracleDSN with Microsoft ODBC for Oracle.

I got the following errors for ASP page connect to Oracle database.
However, it works fine for VB application connect to Oracle database
with the same data source.
Approach #1: Oracle OLEDB Provider
==================================

cst = "Provider=MSDAORA;" & _
"Data Source=ORCL;" & _
"User ID=scott;" & _
"Password=tiger;"

Error Type:
Microsoft OLE DB Provider for Oracle (0x80004005)
Oracle client and networking components were not found. These
components are supplied by Oracle Corporation and are part of the
Oracle Version 7.3.3 or later client software installation. Provider is
unable to function until these components are installed.
Approach #2: Microsoft ODBC For Oracle
======================================

cst = "dsn=OracleDSN;uid=scott;pwd=tiger;"

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Driver Manager] Driver's SQLAllocHandle on
SQL_HANDLE_ENV failed
Here's the ASP code:
<%
Set objConn = Server.CreateObject("ADODB.Connection")

'Approach #1: Oracle OLEDB Provider
cst = "Provider=MSDAORA;" & _
"Data Source=ORCL;" & _
"User ID=scott;" & _
"Password=tiger;"

'Approach #2: Microsoft ODBC For Oracle
'cst = "dsn=OracleDSN;uid=scott;pwd=tiger;"

objConn.Open cst

Set objRs = objConn.Execute("SELECT * FROM DEPT")
Response.Write "<table border=1>"
For I = 0 To objRS.Fields.Count - 1
Response.Write "<tr>"
Response.Write "<td><b>" & objRS(I).Name & "</b></td>"
Response.Write "</tr>"
Next
Response.Write "</table>"
objRs.Close
objConn.Close
%>

any ideas? please advise.

thanks!!

Sep 22 '05 #1
Share this Question
Share on Google+
5 Replies


P: n/a
Did you configure OracleNet for the client or in other words
tnsnames.ora file?

My suggestion would be to create a service name using Oracle Net
Manger. Then in ODBC (Administrative tools) -> DSN -> System tools
create Data Source Name by clicking add. Select the driver for Oracle.
Then provide necessary information including the service name u created
using Oracle Net Manger, login & password. Then test the connection...

Thanks,

Asim Abbasi
Takveen, Inc.

Sep 22 '05 #2

P: n/a
jr********@hotmail.com wrote:
Approach #1: Oracle OLEDB Provider
==================================

cst = "Provider=MSDAORA;" & ...
This is not the Oracle OLEDB provider. See the MS at the beginning of
MSDAORA? It stands for Microsoft, which is why your error message reads:
Microsoft OLE DB Provider for Oracle (0x80004005)


Use the actual OLEDB provider from Oracle. You might find this useful:
http://www.connectionstrings.com/

But there's a more foolproof way. Use the .UDL trick:
http://www.webconcerns.co.uk/asp/udl/udl.asp


--
Dave Anderson

Unsolicited commercial email will be read at a cost of $500 per message. Use
of this email address implies consent to these terms. Please do not contact
me directly or ask me to contact you directly for assistance. If your
question is worth asking, it's worth posting.
Sep 22 '05 #3

P: n/a
Dave is right. What you are doing here is using the Microsoft Driver
for Oracle. This is not oracle objects for OLE, in which case your
Provider becomes "OraOLEDB.Oracle".
You might wanna try the ODBC approach as well, of course after you
configure the Oracle Net names. First of all, make sure you are able to
connect to Oracle, using any tool like SQLPlus., then go further.
Install the Oracle ODBC driver for your oracle version on your PC
running IIS, and configure a DSN using the ODBC Administrator. You can
also test the connection from the ODBC Administrator tool after you
create your connection and make sure that everything is right...

Brijesh Mathew

Sep 22 '05 #4

P: n/a
More questions to clarify...

1) In ODBC Data Source Administrator, in System DSN tab, when
I add a new data source, I will see the list of data source.
"Oracle in OraHome92" actually means Oracle ODBC Driver 9.2?

2) ODBC Data Source Administrator only shows the list of
ODBC drivers, we couldn't see any OLE-DB Providers in the list.
For OLE-DB Providers, we can see that when using UDL trick.
Is that correct?

3) For ASP application to connect to Oracle database,
which of the following is the best driver to choose? Why?
How do we choose? My understanding is that OLE-DB is better
than ODBC. Is that correct? Is that because we don't need
to setup DSN in ODBC Data Source Administrator?

Microsoft OLD DB Provider for Oracle
Oracle Provider for OLE-DB
Oracle ODBC
Please advise more... thanks!!

Sep 22 '05 #5

P: n/a
1) Yes. If you see Oracle in Orahome92 in ODBC Administrator, that
means you have the Oracle ODBC Driver Installed.
2) You will not see Oracle OLE DB Providers in the list of ODBC
drivers, as it is not an ODBC Driver. First of all, you should
understand the fact that you should use ODBC driver in a scenario where
you do not have any other choices. If you have a better Driver to
connect to the DB, always use that..!
3) OLE DB is always better than ODBC by all means. With ODBC, you will
be restricted to only certain DB specific tasks unlike the OLE DB
driver. Speedwise, from my experience, OLE DB is always been better.
Check that you have Oracle OLE DB drivers installed. Goto oracle
universal installer, and in the section Oracle Programmer, you will see
Oracle OLE db.
Configure your tnsnames before you do anything. Make sure you are able
to connect to Oracle from SQLPlus, or any other tool. If you are using
ODBC, while you create a DSN, you will see an area where you have to
specify TNS service name. Create this tnsname and make sure you are
able to connect to DB, then proceed.
Whatever drivers you are using, be it ODBC, or MSDAORA, or Oracle OLE
db Provider, you need the net service name to connect to DB.
Hope that helps

Brijesh Mathew

Sep 23 '05 #6

This discussion thread is closed

Replies have been disabled for this discussion.