Connecting to Oracle without connecting to any client tools

I know this has probably been asked before, but is it possible to have a program that connects and retrieves data from Oracle without having to load any Oracle Client tools, dll's, etc.  We have about 5000 PC's that i need to push this program to that when the user logs in, it connects to oracle, gathers info, then disconnects.  I definitely cannot load anything else than this one executable, so loading oracle client tools out of question.   Is this possible to do this without loading anything else on machine?  

I have tried the following but keep getting the error at bottom of page  (using

Imports System.Data.Odbc

Module Module1
    Public Function testoracleFunction()

        Dim oODBCConnection As Odbc.OdbcConnection
        Dim sConnString As String = _
            "Driver={Microsoft ODBC for Oracle};" & _
            "Server=myserverDNSname;" & _
            "Uid=myuser;" & _
        oODBCConnection = New Odbc.OdbcConnection(sConnString)
'connection info from tnsnames just for info only
        'string oradb = "Data Source=(DESCRIPTION="                  
        '            + "(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myserverDNSName)(PORT=1621)))"
        '           + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=xxx)));"
        '          + "User Id=myuser;Password=mypassword;";



        Catch ex As Exception
        End Try

    End Function

End Module

error message
[Microsoft][ODBC Driver Manager] The driver doesn't support the version of ODBC behavior that the application requested (see SQLSetEnvAttr).

Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

dave4dlConnect With a Mentor Commented:
Here is a .NET managed provider for Oracle (since you are using

Unfortunatley the answer is no,
unless you want to create a server application that receives queries - passes them through the oracle client and then returns the data that was submitted through the client.

however with 5000 users this is liable to be too much for one machine to handle.
if you dont want to use any oracle dlls microsoft used to offer an oracle odbc (or maybe it was oledb) driver for oracle.

I would recommend using the oracle oledb driver though (available at
Never miss a deadline with

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

rknealAuthor Commented:
but won't that driver have to be pushed to every pc?
A link about the old ms oracle odbc driver:

I assume it is still included in MDAC
it would have to be on every pc you were connecting to the database from
If you have administrative control over these pcs you could just write a script to copy and register the driver on all the pcs and kick it off before you go home one night.

Alternatively you could write your app so that the database access occurrs on a separate tier (only one or a few computers) and all the clients get their data through that tier.
rknealAuthor Commented:
i think the multi-tier approach is my only option. there is no way i will be able to push out to all these PC's drivers, dll's, etc.  
Now the question is the most robust way to do this.  I hate to make it a web service that gets data, then have to rely on IIS being up and running.

I am thinking of installing a rshd service on the server, then each client can call rsh.   Any other ideas to make it as quick, robust as possible.

what kind of app are you making (office addin, web site, stand alone, etc)?
rknealAuthor Commented:
Here is what program will do so will help

1.  It should be a single .exe that is pushed through software distribution to everyone's startup folder
2. When a person logs in, this program will get run
3. The program will go out to oracle and return the record of the logged in user and one other field that provides security information
4. Program disconnects
5. using this security information we will manipulate registry setttings/key files
6. The oracle table gets updated each night so any changes we can pick up when users logs in each day

Thought this would be simple, now finding out creating a connection/query to an oracle database from a single standalone application requires dll's, possibly oracle clients, etc, etc.

May have to go to a single server talking to oracle to get information, and the .exe talks to the server and requests the info.   My programmers are telling me to use IIS and a web server, i am thinking of loading rshd on the server, and sending an rsh command to avoid IIS if can.

I would recommend using web services


push out driver files with the exe and connect directly to Oracle.  This way you must reference the dlls directly in your exe or you have to register them after they are pushed out.
rknealAuthor Commented:
could i get down to a single DLL or driver?  I think i could live with pushing out one DLL with the exe have to push anyway. I could register it upon program startup so references are there. But, if need a ton of other support files, then web service sounds like way to go.
SkipFireConnect With a Mentor Commented:
You could look at DataDirect, but I'm not sure what kind of budget you are on.  It would require an extra .NET DLL, but if you wanted to be really creative you might be able to add it as an embedded resource in the EXE and get it that way.  It does not require the Oracle Client tools like most of the Oracle drivers do.
rknealAuthor Commented:
i used a product from  (corelabs).  For $150 can send just one .DLL and my EXE and get to Oracle data all day long without having any other oracle clients installed, pretty awesome!

Thanks, I had been looking for a cheaper alternative to DataDirect.
All Courses

From novice to tech pro — start learning today.