Connect oracle with odbc windows7 64 bit + clarion 8

my pc os window 7 64 bit + clarion 8

i want build for database program use oracle 9 i database with odbc

but occur error message

I did everything I wanted but not solve the problem

case 32 bit odbc administrator

 C:\Windows\SysWOW64\odbcad32.exe

  oracle 9 + odbc = connect test success

case 64 bit odbc administrator

C:\Windows\System32\odbcad32.exe 

error : not driver setup routine odbc  - - - 

make clarion dct and import odbc oracle

then ORA 12154 TNS : Not service name not interprete …

i want this solved the problem …

Please help me

To install 64Bit Datasources in 64Bit ODBC you neet to setup the oracle 64 Bit ODBC drivers.

Look for “oracle odbc driver for windows 64”.

But CLARION 8 is an 32Bit application and will work with the 32Bit ODBC setup. This is also true for the output targets (the exe-files). So it makes sense to setup your 32Bit ORACLE ODBC datasource, import the required tables to the Clarion dictionary manager and generate your app(s).

Hi,
I don’t use oracle as a database, but thought i would ask if there is an issue using the oracle driver in cw rather than odbc?

In addition to my first reply: Since you see the ORA-12154 the ODBC driver setup seems OK but the database service of your database is not defined in the file “tnsnames.ora”. There are other methods to define the target database service but “tnsnames.ora” is a common way. Are you able to locate and understanding to use tnsnames.ora? Do you have done the setup of the ORACLE client? There are plenty informations to setup the client (known as “ORACLE INSTANT CLIENT”).

thank you very much ~ .

i do not resolve the problem …

hmm :))

maybe ,do that close eye and more deep think situation . :)) …

When I was using Oracle at a client’s location, I needed to edit both sqlnet.ora and tsnames.ora.

That’s right. Possibly there are default settings if no sqlnet.ora exists.

But using a sqlnet.ora file is more distinctive:

SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)

There are also settings in the windows environment to define the default language, admin folder (where to look after tnsnames.ora and sqlnet.ora). If using LDAP there has to be a LDAP.ORA to define where to look after the LDAP server(s).

It makes absolutly sense to self study the informations about using the ORACLE instant client. For instance her is a recommend link:
http://www.interfaceware.com/manual/oracle_instant_client.html

More informations are found at the ORACLE web pages concerning to ORACLE INSTANT CLIENT.

A robust and faster way to connect to ORACLE DB services as ODBC is the OCI (Oracle Call Interface), part of the instant client - but you need the clarion oracle driver.

On the Client side, setup the in ODBC (32-Bit)-Administrator a new SYSTEM-DSN
(you cannot use a 64Bit driver with clarion!)

The equivalent TNSNAMES.ORA has to look like this:
Location of the file is normaly: C:\ORACLE\product\11.2.0\dbhome_1\NETWORK\ADMIN\TNSNAMES.ORA

VIPE.KREUTZER.DE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = VIPE)
)
)

If the Oracle-Server is on another machine, than change the above “localhost” to the oracle sever IP adress e.g. 192.168.1.200

And the connection string for Clarion is:
GLO:dbOwner=‘erpsyn/[email protected]’

As far as I know, on a remote client you also have to setup a LISTENER - there is an oracle tool in your installation (Net-Configuration assistant) to create that.

HTH
Cheers Rudolf

@Rudik Is this for connecting oracle through ODBC or Clarion Oracle Driver?

That is for the Clarion Oracle Driver

grafik

Some of the information given to you here is correct, but not all of it.
Given that you are getting the oracle 12154 message, as Bernd says, your Clarion program is successfully finding the Oracle driver, either directly (if you are using the Clarion Oracle driver), or indirectly using the ODBC driver. But the Oracle client cannot find your database. That is probably because you told it the wrong place to look in your clarion dictionary.

I mostly use the Oracle driver, and with that you have two choices:

  1. Give the full information to connect to the database, either directly in the dictionary (probably not) or in a connection string that your program constructs, and is of the form:
    username/password@IPaddress:port/databasename
  2. Put an entry into TNSnames, which you can really only use if you have installed the full Oracle client on the client machine. TNSNames.ora is found in \network\admin.

If you go the second route, then your owner string is username/password@tnsname.

IMO, the Oracle driver is a better choice. If you are using the Oracle driver then you don’t have to do anything in the ODBC administrator. But using the ODBC route may be easier to set up a datasource for the first time. If you set up the 32bit ODBC successfully you should be able to import a table into the dictionary easily using that ODBC DSN.

1 Like