KNOWLEDGE BASE
Log In    |    Knowledge Base    |    4D Home
Tech Tip: Working with Oracle 8i
PRODUCT: 4D | VERSION: | PLATFORM:
Published On: August 6, 1999
Your current browser may not allow you to download the asset. We recommend Mozilla Firefox or Google Chrome.
Log In

Oracle Corporation has recently released the latest version of its flagship database product. The product was originally to have been called "Oracle 8.1" but the Internet Age and the Marketing Department conspired to re-christen the product as "Oracle 8i". The current version is 8.1.5.

A frequently asked question is, "Will 4D for Oracle work with Oracle 8i?" The answer is a resounding yes. If you leave the Oracle Client software untouched on the machine which runs 4D and from which you want to connect to an Oracle 8i server, there should be no problems. On the Mac and Windows, just use the Network Configuration Utility to create a new server alias and you should be off and running.

If you are running 4D for Oracle on a Windows machine, you may want or need to upgrade the Oracle Client Libraries to the 8i release. If you do so, there are a couple of extra steps you will need to take.

1) Toss out the "ORAV6Prf.RSR" file (in %SystemRoot%\4D\).
2) Find the "ORACLIENT8.DLL" file, located in the "bin" directory in your Oracle 8i Home.
3) Duplicate this DLL, and rename it something like "Ora815.DLL." The precise name doesn't matter, but it must be a "DOS" type name, no more than 8 characters before the mandatory ".DLL".

Now when you go to open a 4D for Oracle connection, you should be prompted to choose the DLL. Choose the newly renamed DLL (in our example, Ora815.DLL).

To ensure that 4D for Oracle will function correctly, you will need to use the optional 4th Parameter for OD Login. Examine the following code, which tests a connection to Oracle.

Cut and Paste the following code example into your
own 4D project

C_LONGINT($iLoginID;$iResult)
C_STRING(80;sSysDate;$sServer)

$sServer:="EIGHTEYE.PRIVATE.4D.COM"

$iLoginID:=OD Login ("user";"password";$sServer;1) `note the use of the 4th parameter

If ($iLoginID>0)

$tSQL:="SELECT sysdate FROM dual"

$iResult:=OD Execute SQL ($iLoginID;$tSQL;1;->sSysDate)

ALERT("Date on Oracle Server is: "+sSysDate)

OD LOGOUT ($iLoginID)

End if
  `end