Well, I know it works fine under Yosemite (MacOS 10.10.4) and I see no reason why it would not work under 10.10.3. Also, I only have XoJo 2015 Release 2.1 here, so there is a possibility you might need to upgrade your Xojo version, but I do not think so.
So, I assume you have downloaded and unzipped the 32bit client. I had a bit of a time with a mixup between the 32 and 64 bit clients, and that is exactly the error message such a mixup will produce.
Anyways, here is how I would proceed to debug this. Hope it helps a bit.
1. Open a terminal window and change to the library where you unzipped the Oracle instant client packages.
Assuming you installed all the available packages, it should look something like thie listing below. You do not have to have the SDK, SQLPLUS, and JDBC libraries and support files loaded, but it doesn’t hurt if you do. I aways do, especially sqlplus.
Pauls-iMac:OracleCLient Paul$ ls -CFa
./ glogin.sql ojdbc6.jar
../ libclntsh.dylib@ orai18n-mapping.jar
.DS_Store libclntsh.dylib.11.1* orai18n.jar
BASIC_README libheteroxa11.dylib* precomp/
JDBC_README libnnz11.dylib* sdk/
PRECOMP_README libocci.dylib.11.1* sqlplus*
SQLPLUS_README libociei.dylib* uidrvci*
TOOLS_README libocijdbc11.dylib* wrc*
adrci* libsqlplus.dylib* xstreams.jar
cobsqlintf.o libsqlplusic.dylib*
genezi* ojdbc5.jar
2. Be very sure you have the 32Bit client in this folder.
Pauls-iMac:OracleCLient Paul$ file *.dylib
libclntsh.dylib: Mach-O dynamically linked shared library i386
libheteroxa11.dylib: Mach-O bundle i386
libnnz11.dylib: Mach-O dynamically linked shared library i386
libociei.dylib: Mach-O bundle i386
libocijdbc11.dylib: Mach-O bundle i386
libsqlplus.dylib: Mach-O dynamically linked shared library i386
libsqlplusic.dylib: Mach-O bundle i386
If any of these files show up (the 64bit libraries) that is probably where your trouble is. The 64bit libraries look like this:
Pauls-iMac:OracleClient64 Paul$ file *.dylib
libclntsh.dylib: Mach-O 64-bit dynamically linked shared library x86_64
libheteroxa11.dylib: Mach-O 64-bit bundle x86_64
libnnz11.dylib: Mach-O 64-bit dynamically linked shared library x86_64
libociei.dylib: Mach-O 64-bit bundle x86_64
libocijdbc11.dylib: Mach-O 64-bit bundle x86_64
libsqlplus.dylib: Mach-O 64-bit dynamically linked shared library x86_64
libsqlplusic.dylib: Mach-O 64-bit bundle x86_64
3. Now use sqlplus to test your connection to the database.
You might need to setup your terminal environment first. You can use the code below as a sample, adjusting the library locations to wherever you want them to be.
A. Add the following lines, suitably adjusted to your .bash_profile script. Alternately, you can put them into any script and execute them each time you want to use Oracle, but the .bash_profile step is much easier.
export ORACLE_HOME=/Users/Paul/OracleClient
export DYLD_LIBRARY_PATH=$ORACLE_HOME:$ORACLE_HOME/sdk:$DYLD_LIBRARY_PATH
export PATH=$ORACLE_HOME:$ORACLE_HOME/sdk:$PATH
B. Now you can connect to your database with a suitable quick connect string.
For example, this is a connection to an Oracle XE database running on a PC in my upstairs office:
Pauls-iMac:~ Paul$ sqlplus rsen/sxxxxs@paul/XE
SQL*Plus: Release 11.2.0.4.0 Production on Fri Jul 3 15:47:57 2015
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
SQL> desc DT01;
Name Null? Type
----------------------------------------- -------- ----------------------------
CODE NOT NULL CHAR(4)
DESCR NOT NULL VARCHAR2(80)
LAST_UPDATE NOT NULL TIMESTAMP(6)
SQL> select CODE from DT01;
CODE
----
COMF
COMP
FEAF
FEAP
PRLS
REVF
REVP
7 rows selected.
SQL> quit
Disconnected from Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
Pauls-iMac:~ Paul$
** If this does not work for you, then something is wrong in your Oracle install. Stop and revisit previous steps. **
4. Now attempt to connect from Xojo.
I recommend taking the OracleExample from the documentation and modifying it slightly to this, adjusting for your own connection parameters of course. (Mmm- that didn’t work out too well, can not upload screenshots.)
Okay, then:
A. In App -> Event Handlers, and an Open Event. Then include the following line, again appropriately adjusted for the location you installed Oracle at.
System.EnvironmentVariable("DYLD_LIBRARY_PATH")="/Users/Paul/OracleClient"
B. Under MainWindow -> ConnectButton -> Action, the code should already look similar to this, but just in case…
mDb = New OracleDatabase
mDb.DatabaseName = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rsdb.rsenpubs.com)(PORT=1521))(CONNECT_DATA=(SID=XE) (SERVER=POOLED)))"
mDb.UserName = "rsen"
mDb.Password = "sxxxxs"
mDB.Debug = 1
If mDb.Connect Then
mIsConnected = True
ConnectStatusLabel.Text = "Connected to Oracle!"
Else
mIsConnected = False
ConnectStatusLabel.Text = "Error connecting to Oracle: " + mDb.ErrorMessage
End If
C. Run the app! Click on the 'Connect to Oracle" button, and you should get back a message that says 'Connected to Oracle!".
Hope that helps a bit. Post details if something is still not working.
Yours,
-Paul