[Info-vax] VMS databases

Arne Vajhøj arne at vajhoej.dk
Sat Nov 18 09:22:52 EST 2023


On 11/17/2023 8:10 PM, Arne Vajhøj wrote:
> I just did another little article.
> 
> https://www.vajhoej.dk/arne/articles/vmsdbx.html
> 
> providing some examples for the databases available on VMS (Rdb, MySQL,
> SQLite, Mimer, Derby, H2, HSQLDB) in various programming languages
> (Cobol, C, Pascal, Java, Jython, Python, PHP).
> 
> Nothing surprising and a lot of overlap with previous
> articles, but a different perspective.

Niel Rieck replied (for some reason the post did not propagate
to eternal-september, so this is a manual copy from Google Groups):

 > Two additional points.
 >
 > 1) I've done a bit of hacking with SQLite (on both OpenVMS + Linux )
 > and can inform that it should only be used in single user
 > applications. When any process issues an "update table" command, all
 > other processes are locked out.

For multi user scenarios database servers are usually better than
embedded databases.

I would have thougth SQLite could only have locked some part of
the database when doing an UPDATE, but ...

 > 2) Back in 2016 I received a copy of MariaDB-5.5 for OpenVMS Itanium
 > from Mark Berryman. Since 90% of our VMS stuff is written in BASIC, I
 > spent more than a few days trying to glue Mark's client code to my
 > BASIC programs (we are in the process of moving our data from RMS to
 > MariaDB). Linking the object files was fairly easy using Mark's
 > instructions. Trying to pass string arrays from C to BASIC was a
 > little more difficult. My eventual solution involved created string
 > arrays in a BASIC declared COMMON then had C employ str$get1_dx() to
 > copy the data back. I would be interested to learn if you had a better
 > method.

 > https://neilrieck.net/demo_vms_html/mysql_api_demo14_c.html
 > (crude c demo)
 > https://neilrieck.net/demo_vms_html/mysql_demo14_bas.html
 > (crude BASIC demo)

VMS Basic is as it is and the libmysql API is what it is and
any solution is constrained by that.

I do not have any magic solution for the problem. I would
probably have made the API differently (but differently does
not necessarily mean better).

Arne





More information about the Info-vax mailing list