GNat Ada 95 Database Environment - (GNADE)
Version 1.5.1
Editor M.Erdmann
9.3.2004


Abstract

The objective of the GNADE project is to provide various packages which are allowing Ada 95 applications to access relational data base procducts, mainly SQL RDBMS.


Contents

Overview

Legal Stuff
Copyright
Authors
Contributions

Contact
New Features
Supported ODBC / Database Products
Supported native bindings
Supported Platforms & Compilers
Other components

Problems
Fixed Problems
Known Problems
Restrictions

Installation
Installation on linux
Installation on Windows

Overview

This release provides the first time a common build procedure for windows and *unix systems. Additionaly the use of the GPS system of ACT.com has been taken into account, which means for each component a gps project files has been created.

Features of the Release:

This release of the GNADE project is intended for building with GNAT (the GNU Ada compiler) on the platforms Linux, Solaris and Windows NT/95/2000.

Legal Stuff

License and Copyright

The GNU Public License (GPL) applies with the following extension to all components of this release

As a special exception, if other files instantiate generics from GNADE Ada units, or you link GNADE Ada units or libraries with other files to produce an executable, these units or libraries do not by itself cause the resulting executable to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the executable file might be covered by the GNU Public License.

The documentation has been put under the Free GNU Documentation License.

Authors

The authors and copyright holders of the GNADE project are:

Jürgen Pfeifer juergen.pfeifer@gmx.net
Michael Erdmann Michael.Erdmann@snafu.de
Sune Falck sunef@hem.passagen.se
Julio Cano julius_bip@yahoo.com
Dimitry Anisimikov anisimkov@yahoo.com
François Fabien fr.fabien@infonie.fr
Stephen Leake stephen_leake@acm.org
Denis Chalon denis.chalon@itris.fr
Bon Lam c.lam@student.utwente.nl

Contributions

Special regards to the following persons which have contributed to the project:

Pascal Obry p.obry@wanadoo.fr
James Hopper jhopper@woh.rr.com
Vasile V. Alaiba alaiba@ozland.ro
Andreas Almroth andreas@almroth.com

Contact

Bug Reports http://sourceforge.net/projects/gnade M.Erdmann
GNADE Discussions http://lists.sourceforge.net/lists/listinfo/gnade-develop M.Erdmann
Project Page http://gnade.sourceforge.net/
http://sourceforge.net/projects/gnade
M.Erdmann
Dev. Coordination Michael.Erdmann@snafu.de Michael Erdmann

New Features

Feature Req, Short Description Version Status
540161 Exception in statements 1.3 complete
552327 Support of gnat 3.14 1.3.3 complete
563921 Explicit Database Connection 1.3.4b complete
590779 Preprocessor invokation 1.3.7 complete
591707 pkg-config support 1.3.7a complete (see Notes)
688243 Support of OS/X 1.4.2 complete

Note 1- If okg-config is found on a system, the systemwide installation script will install the package descriptor in the path which is given in the file etc/config.site:

site_pkgconfig_path=<your path>

If nothing is given /usr/local/lib/pkgconfig is assumed.

Supported ODBC and Database Products

Even the GNADE project except for the native data base bindings is expected to work with all ODBC compliant data base products. The following products are known to work with GNADE assuming, that you are using the correct driver manager.

Component Description Version OS Distribution/Source of the release
PostgreSQL PostgreSQL Database 7.0.3
7.2
Linux - Redhat 7.0
Linux - SuSe 7.0 Solaris
Linux - Debian 2.2, 3.0
Windows NT/2000
www.postgresql.org
Mimer Mimer SQL RDBMS 8.2(.4G) Solaris Linux Windows NT www.mimer.com
MySQL MySQL Database MyODBC 3.23.22
2.50.36-1
Linux www.mysql.com
3.23.35a
2.50.36
Windows 2000 www.mysql.com
3.23.47
3.51.02
Windows 98 www.mysql.com
MS SQL Server 7.0 Windows 2000 Microsoft
SQL Server 2000 Windows 2000 Microsoft
Oracle Lite 8i Windows 95 Oracle
SQLite SQLite emb. Database 2.8.2-1 Linux www.sqlite.org

The GNADE project installation procedure provides for theses product test data bases. If your data base is not listed below, the GNADE project will be very likely usable but the test data base has to be installed manually.

The following Driver Managerare known to work with this and/or previous releases:

Component Description Version Operating System Comments
unixODBC ODBC Driver Manager 2.2.3 Linux www.unixodbc.org
2.0.5 Solaris 8 www.unixodbc.org
2.1.1-7 Linux Debian www.unixodbc.org
MS ODBC ODBC Driver Manager 3.5.10 Windows 95, 98 Microsoft

The iODBC 3.04 implementation on Solaris seems to have a problem with the handling of cursor states. It should not be used.

Supported native bindings

Database Product Version Comments
PostgreSQL 7.03 Thin binding
MySQL Thick binding
Oracle OCI 8i lite Oracle Call Interface
SQLite 2.8.2 and higher

Other Components

Beside of the ODBC and the native bindings, the project provides add on components as:

ADBC

The ADBC interface is a highly experimental package which works on top of PostgreSQL and MySQL. Since the interface is completly unstable it is not recommentded to use this interface in application at the current point in time. Since the interest in the Ada community was quite low it is questionable whether the development of this interface will be continued.

Contributed Tools

Tools are not part of this release. Constributed code is released as separate packages since they do not depend on a certain version of the GNADE environment.

Supported Platforms / Compilers

Compiler Version Operating Systems
GNAT 3.13p Linux, Windows
GNAT 3.14p Linux (Debian, Redhat, SuSe), Solaris 8, Windows
GNAT 3.15p
GNAT 3.15a Win98

Problems

This section contain an overview of known, fixed problems and restrictions (limitations). Please report all errors via the error report system at the source forge project page.

Fixed Problems

Problems reported earlier then 1.2.0 are listed in the release note 1.4.0

Bug Ref. Fixed in Short Description Comments
477766 1.2.0 longblob not correctly handled gnu-db-mysql.adb, gnu-db-mysql.ads
538349 1.3.1 SELECT sum(valeur) incorrect translated esql_parser.adb updated
533949 1.3.1 Firsttime installation with MimerSQL failes gnade.mimer.sql
538350 1.3.1 Null value not handled correctly esql_parser.adb
540160 1.3.1 Wrong cursor state in case of failed que gnu-db-esql_support-odbc.adb
540163 1.3.1 Debug granularity esql_parser.adb
543343 1.3.2 Case sensitve cursors esql_parser.adb
552325 1.3.3 configure fails on Solaris 2.8 configure.in, configure.gues
553343 1.3.3 odbc demo raises Need_Data exception demo.gpq
554383 1.3.3 odbc demo does not return any value odbc bindings
554929 1.3.3 esql moves 'pragma Source_Reference' esql-translator (driver.adb)
557135 1.3.4 make install fails (invalid option -C) A resoable desfault will be assumed.
555169 1.3.4 segmentation fault in SQLSetEnvAttr odbc bindings updated
562994 1.3.4 Gigi Error with Solaris 8 odbc bindings changes
562998 1.3.4 Assert & Debug are not passed to ODBC sharedlib.sh.in, staticlib.sh.in changed
563257 1.3.4a ODBC bindings does not compile on Win 98 gnadevars.sh changed
563259 1.3.4a ODBC shared lib always build makefile updated
563332 1.3.4a gesql insert useless spaces in query esql_parser updated
563769 1.3.4b Subpackages are not evaluated correctly esql_parser updated
565952 1.3.5 Domain Qualification not handled esql_parser updated
565951 1.3.5 SQL Strings are not handled correctly esql_parser updated
566413 1.3.5a static libraries not build for adbc Makefile modified
566414 1.3.5a Useless printouts in gesql esql_parser updated
566429 1.3.5a esql & debugcode not compilable any more esql_parser updated
568396 1.3.6a config.gpq missing MANIFEST updated
567600 1.3.6a gesql translator includes odbc bindings esql_parser updated
567553 1.3.6a FeeBSD build chmod failes makefiles
566635 1.3.6a FreeBSD Makefile Problems (1.3.5a) Makefiles
585539 1.3.7 mysql and prosgresql does not link Makefiles
590569 1.3.7 Default cursor does not work esql_parser.adb, esql_support.odbc
597264 1.3.7a postgreSQL sdk not installed but native Makefiles, autoconf.in, ..
602598 1.3.7a makeliv.ali should be removed from distr staticlib.sh, sharedlib.sh
609204 1.3.7b debian: install failes install.sh
612521 1.3.7d pkg-config contains unbuild natives makefiles, configure.in
640172 1.4.1 odbc example failes to link makefile, configure.in
640171 1.4.1 make clean failes in mysql sample makefiles
637947 1.4.1 sql_standard package missing rpm spec.
637949 1.4.1 SuSe 8.1 installation failes Makefile(s)
637951 1.4.1 rpm build failes on SuSe 8.1 Makefile
637952 1.4.1 Sample database with MimerSQL 8.2.4G mimer.sql
659298 1.4.1 rpm does not contain the *.o and *.ali gnade.spec, rpmfiles.sh
659301 1.4.1 rpm samples are not compilable gnade-config, Makefile
659418 1.4.1 standalone example does not work gnade-config, Makefile
700087 1.4.2 odbc example failes with mimer dynamic.gpq
700088 1.4.2 unixODBC is not preferenced configure.in
724091 1.4.3 Memory leak in MySQL bindings mysql bindings
730626 1.4.3 Cursros not correctly closed esql_support
733462 1.4.3 Close cursor failes in case of insert esql_support
758450 1.4.3a rpm not build MANIFEST file
758452 1.4.3a postgres samples not compilable Makeifle of psotgres sample
758462 1.4.3a rpm failes if oracle bindings are included ./configure script
805896 1.5.0 gnade config creates useless -l gnade-config
813238 1.5.0 odbc.ini and odbcinist.ini nor correctly placed Makefile
813239 1.5.0 make of the adbc sample failes Makefile
813243 1.5.0 snadalone example does not compile Makefile
813615 1.5.0 sqlite sample does not compile correctly Makefile
813617 1.5.0 distribution build for sqlite does not work MANIFEST
805896 1.5.1 gnade config creates useless -l configure
813238 1.5.1 odbc.ini and odbcinist.ini nor correctly placed install
813239 1.5.1 make of the adbc sample failes Makefile
813243 1.5.1 snadalone example does not compile Makefile
813615 1.5.1 sqlite sample does not compile correctly Makefile
813617 1.5.1 distribution build for sqlite does not work MANIFEST
865741 1.5.1 Useless debug inserted esql_parser
865742 1.5.1 Excpetion message not shown esql_parser

Known Problems

Bug Ref. Short Description Comments
411141 Missing ";" for "EXEC SQL DECLARE DB01 D" This problem may be bypassed by putting a semicolon in the source code.

Restrictions

Installation

The GNADE code and the documentation is distributed in the following files:

File Contents
gnade-src-X.Y.Z.tar.gz Complete GNADE source code distribution GNU compressed tar file
gnade-src-X.Y:Z.zip Complete GNADE source code distribution as ZIP file.
gnade-X.Y.Z-xx.src.rpm Source rpm used to build the binary packages
gnade-X.Y.Z-xx.i686.rpm Linux binaries and executables in RPM format.

The installation of this software requires the following components:

Component Version Origin
gzip 1.2.4 GNU
unzip 5.42 Infozip
zip 2.2 Infozip
tar - GNU or native
autoconf 2.52 GNU
gmake 3.79.1 GNU
gnat 3.14p, 3.13p ACT distribution (ftp://cs.ny.edu/)
gawk 3.0.3 GNU
rpm www.rpm.org (only if rpm is to be installed)

Installation on Linux/Unix

Unpacking and Configuration

$ gunzip -c gnade-src-<version>.tar.gz | tar xvf -
$ cd gnade-src-<version>
$ ./configure [ --sampledb=<rdbms> [ native(s) ]

This allows you to specify for which RDBMS product you wish to create a sample data bases and for which RDBMS products you wish to build native bindings. If nothing is given only the ODBC based parts will be build.

The following RDBMS prducts are supported.

If the value is omitted because your data base product is not listed,, all subsequent steps regarding the data base installation may be skipped and you have to install the test database manually.

Installation of the Database

Depending on the installation of the data base you have specified in the configure script command, you have to execute the following step either by using a DBA account our you may use your own user account

$ su ..dba..
$ gmake createuser

After the database and the database user has been configured, the ODBC interface has to be configured. The directory ./samples/sample_db contains sample files for the unixODBC driver manager. The files odbc.ini.sample odbcinst.ini.sample have to be copied to /etc/odbc.ini and /etc/odbcinst.ini.sample.

Compiling an testing

After the creation of the data base user, the final build may be done by:

$ gmake

Test code is located in the directory ./samples. In order to test the functionality of the ODBC interface use the examples in ./odbc or ./esql.

Systemwide Installation

In order to install the build products on your system login as root and execute the following command in the installation directory of this package:

make install

The makefile will run a script which installs all components on your system that they are available to other users as well. The target directories are specified in the etc/site.config file.

In case of upgrading from 1.4.1 to a higer version please perform the following steps prio to the installation of the package:

cd /usr/lib ; rm libgnade*

cd /usr/bin; rm gesql gnade-config

cd /usr/lib/ada; rm -rf gnade

or if you have installed the rpm package, simply run:

rpm -e <gnade-package>

Include the new location of the GNADE environment both in the PATH variable and in the loader configuration:

In /etc/profile.local add

PATH=$PATH:/usr/local/gnade/bin ; export PATH

In/etc/ld.so.confadd the line /usr/local/gnade/lib and execute

ldconfig -v

Installation of the RPM packages

The installation of the executable package done by executing the following command:

rpm -ivh gnade-1.4.0-4.i686.rpm.

This will install the production results at the following places in the filesystem:

libraries - /usr/lib/libgnade*
documentation - /usr/share/doc/gnade-1.4.0
binaries - /usr/bin

Since this is the first rpm release no deinstallation has to be done.

Contrib Tool Installation

The GNADE project provides tools which are add on packages to the GNADE source packages. The following tools are installable with this distribution:

For the installation please follow the procedure below after you have installed the GNADE source release.

In order to install the tool run as root in the installation directory of GNADE the command:

make install

Since the installation procedure installs also the GNADE release ensure that the current status is usable for systemwide installation.

If it does not work

If this installation procedure fails you may use the Makefile in the directory ./win32. This will require some manual adoptions but it is a starting point.

In any case if you encounter a problem please contact the GNADE team asap.

Installation on Windows NT

For window users a zip file is provided. In order to install perform the following steps:

> unzip gnade-src-<version>.zip
> cd gnade-src-<version>/win32
> make 

Please note, this works with or without Cygwin installed.

Note that the Windows distribution of GNAT is in two parts; the standard GNAT tools in gnat-3.14p-nt.exe and the extra Windows tools and libraries in gnatwin-3.14p.exe. Both must be installed.


$Id: note_1.5.1.html,v 1.3 2004/03/09 12:59:17 merdmann Exp $