Download Latest Version tpc-c-ifmx.tar.gz (392.7 kB)
Email in envelope

Get an email when there's a new version of IIUG Software Repository

Home / ESQL / sqsl-0.06 / db2sqc
Name Modified Size InfoDownloads / Week
Parent folder
db2api.y 2020-05-11 4.3 kB
db2src.h 2020-05-11 1.1 kB
db2src.sqc 2020-05-11 34.3 kB
Makefile.am 2020-05-11 3.2 kB
Makefile.in 2020-05-11 13.0 kB
Totals: 5 Items   55.9 kB 0
Sqsl 0.06 release notes					Jan 27, 2009

The current release has just been ripped off the 4glWorks source and
autoconfiscated. The x4gl based demo clients need to be cleaned up extensively.
The readme needs to be slightly less skimpy...

Installation
============
The only requirements are CliSDK (c4gl will do in place of CliSDK) and Cygwin
with both the native and MinGW gcc compilers (no need to install a separate
MinGW environment) for NT builds.
The optional curses demo and DB2 sources require c4gl (not RDS, though, sorry)
and/or Aubit 4gl (Aubit 4gl requires a working CliSDK environment) and DB2
respectively.
The command line interpreter demo client can be linked with the readline
library, if available.

Not much else is needed aside from working environments for all of the above
being accessible at the same time.
The only exception is the DB2 sqc source, which requires a DB2 installation
with a precompiler available, a sample database (just run db2sampl) and
possibly, depending on the DB2 version, the DB2CLP environmental variable
set to point to the shell the software is being built from (the syntax is
**<shell process id>**).
As you would expect, the following will get you going:

configure [--with-readline[=path]]
make
make install

Please see INSTALL for further installation details.

Binaries
========
curses.4ge
curses.4ae
cli

More documentation on these in doc/clients.txt. The first is a curses based
dbaccess like application based around Informix 4gl, the second offers the 
same functionality but over Aubit 4gl, while the last is command line
oriented / readline library based, and does NOT require esql/c or any
x4gl to be compiled.

Libraries
=========
libsqsli4gl
libsqslaubit
libsqsl

They essentially offer the same functionality, namely the whole of the
scripting language interpreter. The first, predictably, offers an Informix
4gl interface, the second Aubit 4gl, the last plain C.
As you might guess this is to give you the option of embedding the interpreter
wherever, as opposed to being forced to use my puny demo programs.
Buildingwise, while the last ONLY requires esql/c, the first does require
Informix 4gl, while the second both esql/c and Aubit 4gl.
For the sake of clarity, Informix esql/c is required no matter what engine
the tool will connect to, as it is used to implement datetime, date, decimal,
etc calculations.

Data sources
============
ifmx
ifmx4
db2sqc
db2cli
db2esql

Sources are implemented as shared objects - the naming conventions is 
fgw<source name>.<shared object extension> (.so or .dll to be completely clear).
The ifmx source gets built by default, unless no esql/c is available and the
only c4gl at hand is a V4, in which case it's the ifmx4 source that gets built
(the last time the ifmx4 source has been built and used was around the year
2000, so you are very much on your own with that one).

The db2esql source is provided as a demo, and gets built, but not installed,
if the CliSDK version found is 2.90 or greater. The issue is that the CliSDK
esql/c runtime libraries use the same symbol names for Informix and DB2
connectivity, so chances are that the db2esql source will at some stage take
a wrong turn, end up in the Informix communicaton layer, and segv.
Interestingly, once the db2esql source is loaded, chances are that the ifmx
source might decide to take a wrong turn, end up in the DB2 connectivity
layer, and segv.
The only reliable way to use the db2esql source is to compile both the sqls
library and the the frontend binary in DB2 mode (how to do that correctly
is left as an exercise to the reader) and not use it in conjunction with
the ifmx source.

As far as I know there is no plan no make esql/c applications concurrently
connect to Informix and DB2, which makes the db2esql source of limited use.

The doc directory contains documentation on the other sources.

SQSLDIR
=======
This environmental variable points to the directory that holds forms,
help files and related stuff which the curses interfaces use.
There is a curses script to fix everything the curses based binaries need.
Said script will pick up whatever curses based (Informix or Aubit) is present,
or you can pass it an extension as the only argument, and it will pick up
the binary of your choice. Aubit and Informix based binaries can coexist in
the same directory.
SQSLDIR also specifies the location of shared objects containing data sources
or user defined functions.

User authentication and server connection string format
=======================================================
In a nutshell, mostly, if the database engine and connenctivity layer in use
supports <insert favourite buzzword, here>, then sqsl does too.
Currently, exceptions are anything that requires callbacks, like PAM challenges.

Security
========
Although care has been taken to avoid buffer overruns and other similar
amenities, no claim is being made on the security risks you could run into
when using this software. In particular, bear in mind that user defined
functions and the location of the shared objects being pointed by an
environmental variable do allow for malicious code to be unknowingly
executed.

Demo sqsl code
==============
is provided in the demo directory. Sketchy notes on the examples is provided
in doc/demo.txt.
Source: README, updated 2020-05-11