OS2 World Community Forum

OS/2, eCS & ArcaOS - Technical => Utilities => Topic started by: Per E. Johannessen on April 17, 2023, 09:36:17 pm

Title: Intersolv/ODBC
Post by: Per E. Johannessen on April 17, 2023, 09:36:17 pm
Some time ago I bought the Intersolv DataDirect ODBC Pack and I got it in unopened condition.
The software came on three diskettes and they turn out to be for Windows only!
On the box it is clearly stated "OS/2 2.x " under "System Requirements".

Does anyone know where I can obtain the ODBC drivers for OS2?


Title: Re: Intersolv/ODBC
Post by: Sean Casey on April 18, 2023, 03:06:31 am
I made the same mistake.  I purchased the Intersolv DataDirect ODBC Pack that's currently for sale on eBay.   System requirements identifies OS/2.

I recall reading somewhere (Douglas Clark?) that Intersolv never sold retail an OS/2 ODBC Pack.  The OS/2 ODBC Pack was bundled with the Q+E/Intersolv Developer's ToolKit.   If you did have the drivers, you would still have the challenge of obtaining the required client software, such as the impossible to find 32-bit dblib.dll needed for the Q+E SQL Server driver. 

I have been using Rexx/SQL ODBC with the demo Intersolv SQL Server ODBC driver.  Has been working well for me.
Title: Re: Intersolv/ODBC
Post by: Per E. Johannessen on April 18, 2023, 12:32:33 pm
Do you know if the demo Intersolv SQL Server ODBC driver is available somewhere?
Title: Re: Intersolv/ODBC
Post by: Martin Iturbide on April 18, 2023, 09:10:44 pm
Hi

I have some interest to document what exists, demo, patches, fixes, etc.
The only thing I have is that "Vincenzo Venuto (https://www.os2world.com/wiki/index.php/Vincenzo_Venuto)" used to work there and the EDM/2 Wiki page (http://www.edm2.com/index.php/Intersolv).

I also found this on ebay:
https://www.ebay.com/itm/224235945557
It says it runs on OS/2 2.0 but maybe it is the Win16 version that runs on it.

Regards
Title: Re: Intersolv/ODBC
Post by: Per E. Johannessen on April 18, 2023, 10:51:18 pm
The one you found on ebay is the same as the one I bought and it contains no os/2 software,
despite listing OS2.x under system requirements.
Title: Re: Intersolv/ODBC
Post by: Sean Casey on April 19, 2023, 03:59:26 am
Do you know if the demo Intersolv SQL Server ODBC driver is available somewhere?

The Intersolv Microsoft SQL Server ODBC driver was not available in version 3.01, only in version 2.11.

Intersolv 2.11 SQL Server IVSS08.DLL  9/27/95
Intersolv 2.11 SQL Server IBSS08.DLL 7/15/96

The driver is included in both the DAX11.ZIP (IBSS08.DLL) and ODBCDEMO.ZIP (IVSS08.DLL) files on Hobbes.

I have been using the Sybase OS/2 Client SYBOS2.ZIP with SQL Server v.6.5 and v.4.2x

You can use the ODBC Installer ODBCINST3.ZIP to install the Intersolv driver.  This can also be found on Hobbes.  You must have ObjectRexx installed and enabled on your machine for the Installer to work.
Title: Re: Intersolv/ODBC
Post by: Per E. Johannessen on April 20, 2023, 04:59:49 pm
Found a link to ODBCINST3.ZIP at http://www.os2ezine.com/20010916/page_7.html but the link does not work anymore.
Not found at Hobbes either.
Title: Re: Intersolv/ODBC
Post by: Martin Iturbide on April 20, 2023, 05:21:03 pm
Hi

- ODBCDEMO.ZIP - Is now - DataDirectODBC_2-11.zip - INTERSOLV DataDirect ODBC Pack 2.11 Demo (1996-03-14)
- odbcinst2.zip - Is now - ODBC_1-03.zip

But I can not found any reference to a "ODBCINST3.ZIP" file that used to be in hobbes yet.

ODBC_1-03.zip Readme says:
Quote
The ODBC Installer is an application for installing ODBC
Database Drivers, ODBC Administrator and ODBC Driver Manager.

To use the ODBC Installer unzip the file ODBCINST.ZIP into a directory.
That directory must be in your LIBPATH - OR - you LIBPATH must have the
path .; somewhere it it

example  LIPATH=.;C:\OS2;C:\OS2\DLL ......

The application was developed for a series of articles on ODBC
in OS2eZine - the OS/2 on line magazine  www.os2ezine.com
Title: Re: Intersolv/ODBC
Post by: Sean Casey on April 21, 2023, 05:36:39 pm
If you already have an ODBC manager and administrator installed, and have an ODBCINST.INI file, you can always use an INI editor to clone/edit any new entries.

I can't seem to find ODBCINST3.ZIP, but I have attached the ODBCINST2.ZIP file which automates the installation of the same demo ODBC drivers.

If someone has ODBCINST3.ZIP, it would be nice to have this uploaded to Hobbes.
Title: Re: Intersolv/ODBC
Post by: Doug Clark on April 25, 2023, 07:14:33 pm
The intersolv ODBC drivers were sold for OS/2, but I haven't been able to find retail versions for a couple of decades.  I also bought a set, probably from the same place Per E. Johannessen did, and they also were only windows.

As Sean Casey noted, you can use evaluation versions of Intersolv ODBC drivers with VIO/Command Line programs, such as Rexx/SQL ODBC.  This is because the evaluation versions put up a PM dialog box every 10 rows when fetching data to remind users to purchase the retail version.  If you aren't running in a PM session the dialog box never appears, although on older systems you might get a beep from the system speaker.  If you are running a PM program, such as StarOffice, with the Intersolv drivers you will get the reminder dialog box every ten rows.

As for other sources of ODBC drivers - commercial database vendors generally bundled ODBC drivers with their products.  These include Oracle, DB2, Watcom and SQLAnywhere.  In addition to those there are drivers that have been ported from the Linux world to OS/2, such as PostgreSQL, Sqlite, mySQL, etc.  Normally these are bundled with a ODBC Driver Manager/Administrator that have also been ported from Linux, such as from the UnixODBC or iODBC projects.  I have tested some drivers that were bundled with a Driver Manager from UnixODBC and what I found was the drivers work with either the Intersolv Driver Manager or the UnixODBC driver manager (as long as you respect version limitations), but the UnixODBC ODBC Administrator cannot administer Intersolv drivers - however the Intersolv Administrator can administer the UnixODBC version drivers.

ODBC version limitions
The ODBC API went through multiple versions - the major ones of concern to OS/2 are versions 2.x, 3.0, and 3.5.  The API specifies the functions that must be provided by a driver and how those functions operate.  Version 3 changed the names of many of the functions to align with standards, version 3.5 added functions for Unicode.

I should note that the version of the ODBC API that a driver, driver manager, and administrator is written to is not the same as the version number of the driver, driver manager or administrator.  For example the UnixODBC driver manager that is written to the API version 3.5 has many different release versions - as they discovered bugs or completed more of the driver manager they released new versions.

The ODBC API version restrictions are:  an application must connect to a driver written at its API version or higher.  A driver must connect using a driver manager at its API version or higher.  For example, an application written to the ODBC API version 2.x can connect to a driver written to ODBC API version 2.x or 3.0 or 3.5.  But an application written to ODBC API version 3 cannot connect with a driver written to ODBC API version 2.x

Title: Re: Intersolv/ODBC
Post by: Jan-Erik Lärka on April 27, 2023, 12:38:17 pm
The ODBC Admin maintain odbc.ini and odbcinst.ini that contain the paths to the drivers and settings.
If so, one could write a new one that look and behave well.

Is it odbc.dll that does major parts of the work under the hood then, or...?
Is it the different calling conventions used that cause problems with certain applications written with gcc or vac/wat?

JDBC to ODBC bridge would close the gap and enable us to connect to more databases.

A gui sql query tool with syntax higlightning would be very welcome as well.
Title: Re: Intersolv/ODBC
Post by: Per E. Johannessen on April 27, 2023, 02:00:16 pm
What about porting? Does anyone know about some open source package that could be used?
The old unixodbc 010 included a query tool which, at least for simple queries, worked with the provided samples  and the supplied odbc driver.
(Tried to use that odbc driver with VX-Rexx and VP-Rexx but could not make it work.)

I'd be happy to sponsor a project that would include an odbc driver that works with dBase files.
Title: Re: Intersolv/ODBC
Post by: Jan-Erik Lärka on April 27, 2023, 10:27:15 pm
i'd also sponsor work on an updated version that work with as many tools (e.g. office and development) and databases.
Title: Re: Intersolv/ODBC
Post by: Dave Yeo on April 27, 2023, 11:30:32 pm
Is this what you need? https://www.unixodbc.org/ (https://www.unixodbc.org/)
Also https://sourceforge.net/projects/unixodbc-gui-qt/ (https://sourceforge.net/projects/unixodbc-gui-qt/)
Title: Re: Intersolv/ODBC
Post by: Paul Smedley on April 27, 2023, 11:39:21 pm
I built unixodbc many years ago, but our toolset wasn't as mature back then, so I'm not sure the modules ever actually worked. Happy to have another look at it.
Title: Re: Intersolv/ODBC
Post by: Dave Yeo on April 28, 2023, 02:17:36 am
I built unixodbc many years ago, but our toolset wasn't as mature back then, so I'm not sure the modules ever actually worked. Happy to have another look at it.

I just tried, libtoolize went into a Perl loop and failed.
Title: Re: Intersolv/ODBC
Post by: Jan-Erik Lärka on April 28, 2023, 07:57:47 pm
This is what I had in mind for a GUI Admin tool I started to work on... if someone would like to contribute how to open settings for the drivers and handle settings etc.
Title: Re: Intersolv/ODBC
Post by: Per E. Johannessen on April 28, 2023, 08:48:03 pm
I built unixodbc many years ago, but our toolset wasn't as mature back then, so I'm not sure the modules ever actually worked. Happy to have another look at it.
That was back in 2015 and I still have some notes about the project. Part of the problem seemed to be lack of source code for odbc drivers, and the one supplied with unixodbc 010 had some bugs. What about the one that is included with OpenOffice or iODBC?
Title: Re: Intersolv/ODBC
Post by: Paul Smedley on April 29, 2023, 01:57:02 am
I built unixodbc many years ago, but our toolset wasn't as mature back then, so I'm not sure the modules ever actually worked. Happy to have another look at it.

I just tried, libtoolize went into a Perl loop and failed.

Yep, me too. Perhaps I'll try it with my updated Perl....
Title: Re: Intersolv/ODBC
Post by: Dave Yeo on April 29, 2023, 02:06:46 am
This is what I had in mind for a GUI Admin tool I started to work on... if someone would like to contribute how to open settings for the drivers and handle settings etc.

There's a Qt4/5 (I think Qt4 is stable) GUI admin tool for unixodbc as well.
Title: Re: Intersolv/ODBC
Post by: Jan-Erik Lärka on April 29, 2023, 09:54:23 am
There's a Qt4/5 (I think Qt4 is stable) GUI admin tool for unixodbc as well.
Yes, I've seen it for quite some time now.

The attached file was modeled after the text mode instodbc as of unixodbc version 2.3.4, though use rexx on OS/2 and can therefore be enhanced and translated easily. (English and Swedish included)
Title: Re: Intersolv/ODBC
Post by: Paul Smedley on April 29, 2023, 11:01:49 am
I built unixodbc many years ago, but our toolset wasn't as mature back then, so I'm not sure the modules ever actually worked. Happy to have another look at it.

I just tried, libtoolize went into a Perl loop and failed.

Yep, me too. Perhaps I'll try it with my updated Perl....

Updating Perl didn't help.....
Title: Re: Intersolv/ODBC
Post by: Doug Clark on April 30, 2023, 06:29:52 am
This is what I had in mind for a GUI Admin tool I started to work on... if someone would like to contribute how to open settings for the drivers and handle settings etc.

It looks nice Jan-Erik.

According to the ODBC documentation the function SQLConfigDataSource() is used to call the driver's setup routine, presumably including any dialog box(es) the driver needs to display to get info from the user to set up the datasource. 

The header files in the ODBC SDK specify calling convention for all functions in the SDK.

The UnixODBC driver manager that I got off of the web reports itself as version 3.52.  However I believe that UnixODBC at that time did not support fileDSNs, so neither does the OS/2 port.  The lack of FileDSNs isn't a big loss, in my opinion, since a FileDSN is just a DSN where the configuration information is stored in a separate disk file instead of being stored in ODBC.INI. Arca Noae may feel differently with their corporate customers: the idea of a FileDSN is the file can be created by a network administrator and stored on a file server, instead of requiring each user to create their own DSN on their own machines through the ODBC administator.

Also the concept of User and System DSNs doesn't make sense in OS/2 since OS/2 is really a single user system. That is why the Intersolv administrator only shows User DSN.  (System DSNs are available to all users of a machine, User DSNs are available only to a specific user.)


If Paul Smedley wants to pull the latest sources for UnixODBC and compile them for OS/2 that would be GREAT.  But please keep the following issues in mind.

#1 The format of the ODBC.INI (and possibly ODBCINST.INI - I just don't remember right now) produced by Intersolv and by UnixODBC are slightly different.  I don't think the linux world had an installed Intersolv base they needed to conform to and we do on OS/2.  It would be nice if the new UnixODBC would produce ODBC.INI and ODBCINST.INI files that match the format used by Intersolv.  That way a user could use those files (and the drivers) with either UnixODBC or Intersolv.  This is because of #2

#2 There are users that purchased licensed versions of Intersolv drivers and use those with OS/2 applications.  For example Lotus Smart Suite bundled a complete set of licensed drivers.  Unfortunately the licensing for Lotus Smart Suite limits the use of those drivers to Smart Suite applications,  It appears the application calls a special function (probably in the Intersolv driver manager) that checks the licensing information while connecting.  If that function cannot be implemented in the UnixODBC port then the user would need to switch between Intersolv ODBC and UnixODBC in order to continue to use their licensed drivers.  The function that is called is mentioned in one of the readmes for VisualAge Basic - sorry I don't remember more details right now.

Title: Re: Intersolv/ODBC
Post by: Jan-Erik Lärka on April 30, 2023, 09:24:45 am
According to the ODBC documentation the function SQLConfigDataSource() is used to call the driver's setup routine, presumably including any dialog box(es) the driver needs to display to get info from the user to set up the datasource. 

The header files in the ODBC SDK specify calling convention for all functions in the SDK.
The image posted come from the app I started to design with VX-Rexx as can be seen on the icon of the window in front.
If one would go ahead there, one need a support library for rexx to call SQLConfigDataSource(...), but would would need one to query the driver itself as well, but a rexx library provide greeat flexability, yet power and should be easy to assemble.

Wrote some java code that load jdbc4 drivers, list them and their settings that could be used to set thing up.
Would be much gained if the different jdbc drivers would appear just like individual odbc driver rows to avoid special manager window for those.

At the same time I began to tinker with ideas on how to create ODBC-to-JDBC-bridge, but the problem with floating point exceptions made me stop. I do have C/C++ code now that can load jvm.dll and use java functions... so BSF4ooRexx and ODBC-to-JDBC should be possible as long as one avoid debugging. But someone else has to come up with the code to shuffle data, queries etc.

The UnixODBC driver manager that I got off of the web reports itself as version 3.52.  However I believe that UnixODBC at that time did not support fileDSNs, so neither does the OS/2 port.  The lack of FileDSNs isn't a big loss, in my opinion, since a FileDSN is just a DSN where the configuration information is stored in a separate disk file instead of being stored in ODBC.INI. Arca Noae may feel differently with their corporate customers: the idea of a FileDSN is the file can be created by a network administrator and stored on a file server, instead of requiring each user to create their own DSN on their own machines through the ODBC administator.

Also the concept of User and System DSNs doesn't make sense in OS/2 since OS/2 is really a single user system. That is why the Intersolv administrator only shows User DSN.  (System DSNs are available to all users of a machine, User DSNs are available only to a specific user.)

If Paul Smedley wants to pull the latest sources for UnixODBC and compile them for OS/2 that would be GREAT.  But please keep the following issues in mind.

That is a very important part you mention below

#1 The format of the ODBC.INI (and possibly ODBCINST.INI - I just don't remember right now) produced by Intersolv and by UnixODBC are slightly different.  I don't think the linux world had an installed Intersolv base they needed to conform to and we do on OS/2.  It would be nice if the new UnixODBC would produce ODBC.INI and ODBCINST.INI files that match the format used by Intersolv.  That way a user could use those files (and the drivers) with either UnixODBC or Intersolv.  This is because of #2

How about the Q+E drivers with DBExpert?

#2 There are users that purchased licensed versions of Intersolv drivers and use those with OS/2 applications.  For example Lotus Smart Suite bundled a complete set of licensed drivers.  Unfortunately the licensing for Lotus Smart Suite limits the use of those drivers to Smart Suite applications,  It appears the application calls a special function (probably in the Intersolv driver manager) that checks the licensing information while connecting.  If that function cannot be implemented in the UnixODBC port then the user would need to switch between Intersolv ODBC and UnixODBC in order to continue to use their licensed drivers.  The function that is called is mentioned in one of the readmes for VisualAge Basic - sorry I don't remember more details right now.

rexx/ooRexx 5.0 support (something like in unixodbc 010)
Title: Re: Intersolv/ODBC
Post by: Per E. Johannessen on May 05, 2023, 03:09:31 pm
Does anyone if the odbc driver included with OpenOffice or the one in iODBC could be used?
Title: Re: Intersolv/ODBC
Post by: Jan-Erik Lärka on May 06, 2023, 09:04:46 am
I have to use a patched version of the Apache OpenOffice odbc.dll to list selectable datasources... but then again, base refuse to actually reinitialize the connection once one reopen any .odb-file.
Title: Re: Intersolv/ODBC
Post by: Per E. Johannessen on May 06, 2023, 02:13:22 pm
OK, but aren't the sources available? Perhaps someone could do necessary modifications to make it work with other programs than OpenOffice?