Hello I use Equinox and come across this problem regularly with clients IT. We found the mirroring to be too inflexible for our specific needs so I was asked to write an ODBC module to push and read data from a SQL database. This allowed us to write only specific data that was required rather than mirror the whole database. However, the ODBC connection is controlled entirely on the Equinox end. It's just not possible to connect to Equinox using third party software. Indeed, this is a major selling point for Equinox when data security is paramount.
I'll give you a brief explanation of how but you will need someone with some experience in Equinox Method language scripting to get this up and running.
I was able to do this using the Windows odbc32.dll. Using Equinox's 'Add External Object' feature you can add the DLL's published calls to your code library. A sample of the code once generated looks like this..
Public External "odbc32.dll" SQLConnect ulong, ReadOnly ptr stringz, short, ReadOnly ptr stringz, short, ReadOnly ptr stringz, short returns short | Connects to database
Public External "odbc32.dll" SQLFreeConnect ulong returns short | Releases connection handle
Public External "odbc32.dll" SQLDisconnect ulong returns short | Disconnects from database
Once you have this you can create you standard Equinox Procedures to Connect, Disconnect, Write records, Edit Records, Read Records etc.
Here is an example of how to connect to the SQL database...
| connect to globally defined odbc database dsn (defined in control panel on all pcs calling this)
PUBLIC PROCEDURE CONNECT_ODBC LOGICAL L_ERR, MEMO M_ERR
Memo mError
Short shReply
Stringz sDSN, sUser, sPassword
L_ERR = FALSE
sDSN = PWCOdbcDSN | up to 32 chars
sUser = PWCOdbcUsr | up to 128 chars, 32 in pw
sPassword = PWCOdbcPass
| Initialise
SQLallocenv uEnvHandle, shReply
SQLallocconnect uEnvHandle, uConnHandle, shReply
SQLconnect uConnHandle, sDSN, SQL_NTS, sUser, Len(sUser), sPassword, Len(spassword), shReply
IF shReply <> SQL_SUCCESS, SQL_SUCCESS_INFO THEN
Get_Error_String 0, mError
M_ERR = mError
Log_Error mError
L_ERR = TRUE
ENDIF
END PROCEDURE
This is probably moving into the slightly more advanced areas of method language within the Equinox development environment. Equinox is fantastic in quickly designing and creating software and has a very gentle and intuitive learning curve. However, I find it becomes quite restrictive in some areas and requires major work around's to perform relatively basic tasks. Such as this example.
If just getting the data out the Equinox database into SQL, Oracle, MySQL is the goal then Equinox's in build Export facility is probably easier. Then just import the generated file using software you understand into the other database.
Adam