GNat Ada 95 Database Environment - (GNADE)
Version 1.5.3b

Editor M.Erdmann
29.1.2005


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 (dos and cygwin)

Overview

This release provides correction fixes for the common build procedure for windows (dos based), cygwin based and other *nix systems and a new version of the mysql bindings.

Additionaly the use of the GPS system of ACT.com has been taken into account, which means for each component a centralized gps project files has been created (see documentation).The blob handling for the mysql bindings has been changed.

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
Patrice Freydiere frett27@free.fr

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 pkg-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
9.2
Linux - Suse 9.1
Windows XP
www.mysql.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 4 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, Windows XP, Linux

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.5.0 are listed in the release note 1.5.2.

Bug Ref. Fixed in Short Description Comments
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
917392 1.5.2 Version switch for gnade-config does not work gnade-config
917382 1.5.2 gnade-config in rpm provides wrong path gnade-config
916707 1.5.2 Architecture code wring on windows platform Makefile
916689 1.5.2 win32 was missing in windows installer gnade.iss
914050 1.5.2 MySQL package does not compile Makefile
916689 1.5.3 win32 was missing in windows installer gnade.iss
916691 1.5.3 Architecture code wring on windows platform configure.bat
917382 1.5.3 gnade-config in rpm provides wrong path gnade-config
917392 1.5.3 Version switch for gnade-config does not work gnade-config
920461 1.5.3 Patch: Native Mysql blob enhancement mysql bindings
914918 1.5.3 Patch: GNADE 1.5.1: All native bindings laways build Makefiles
758949 1.5.3 Patch: GNAT -gnaty Fixes for OCI Binding OCI bindings
920081 1.5.3 standalone project not at the correct place
920080 1.5.3 Standalon project file contains wronmg path
920061 1.5.3 esql error messages do not comply to the standards scanner.adb
919476 1.5.3 SQL tool online help is wrong sql.adb
958153 1.5.3a gnatlink fails refere to fix: 962705
958841 1.5.3a MySQL:Blob handling looses memory Free added
958852 1.5.3a make dist does not build from dist. file Makefile
962705 1.5.3a --no-odbc switch does not work any more configure.in
962706 1.5.3a Samples of not build bindings are created Makefile
962709 1.5.3a procompiled documentation is missing 1.5.3 Makefile
963456 1.5.3a documentation is missing in 1.5.3 tar ball duplicate 962709
963467 1.5.3a clean does not work on linux srcuinst.sh.in
963615 1.5.3a dcumentation is build even openjade it not available configure.in
958841 1.5.3b MySQL:Blob handling looses memory gnu-db-mysql.ads
1022959 1.5.3b Memory leak in Gnu.Db.Postgresql.Database postgres bindings
1089954 1.5.3b PROGRAM error in Finalize procedure gnu.db.sqlite

Known Problems

Bug Short Description Comments
1009569 Constraint_Error in samples/odbc/demo con_attr Currently unclear, may be the debian release is based on old sources?.

Restrictions

Software

The GNADE code and the documentation is distributed in the following archive/package 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.
setup-gnade-X.Y.Z.exe Setup for Windows with executables, libraries and source code requiered to clone the windows installment. Please note, that not all components of the source tree are available in this installment.

The software may be obtained from the CVS (pls. refere to the details at the project page) using the tag GNADE_1_5_3a.

Installation

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)
innosetup 4.1.5.1 www.innosetup.org (windows)

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.

Local Development Environment

Generally speeking, the GNADE source code tree is not intended for application development. The applications should always be developed in the user space of the developer or the development team. A sample is provided under samples/standalone.

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 (DOS based installation)

Unpacking and configuration

Not applicable, see systemwide installation.

Installation of the Database

The package does not support the automatic installation of a test data base. This needs to be done manually.

Compiling and testing

This is not explicitly requiered. The windows installer provides all libraries, include files and binaries for application development. The sources are part of the installation, but they need not to be compiled.

Systemwide Installation

Download the gnade-setup-X.Y.Z.exe of Version 1.5.3 into any directory and exetute it. Per default the GNADE will be installed on C:\GNADE. After installing the variable GNADE_BASE will be added to your environment. In order to access the executables of GNADE add the following string to your path:

PATH=.....;%GNADE_BASEPATH%/win32-bin;..

The installation provides the following components:

Software Development Kit

The SDK contains all libraries and package files in order to develop odbc based applications by writing Ada 95 code using odbc or by means of the embedded SQL preprocessor gesql.

ODBC Database tools

This is a set of tools which should work with any RDBMS product providing an ODBC interface. It allowes to export/import tables and to execute queries.

GNADE source code
This is the source code of the GNADE distributtion. In order to recompile GNADE change into the directory c:\gnade\source and execute the configure.bat command. Afterwards simply exectue make.

In difference to the Linux implementation all native bindings are build and no automatic database setup is done. In order to build the samples figure out which database products are available and install the apropriate samples from source/samples. In order to do so you need to modify the following configuration variable in make.conf.win32 by removing the not applicable products.

NATIVE_BINDINGS=odbc mysql sqlite postgres oci

After you have changed this files you need to run the configure.bat script.

Projectfiles and GPS

If you intend to use GPS or to include the centralized gnade project file into your project set in you loca environment the following variables:

ADA_PROJECT_PATH=%ADA_PROJECT_PATH%;%GNADE_BASEPATH%

This allows GNAT and GPS to access the GNADE specific project file.

Installation on Windows using Cygwin

The cygwin environment is understood as an GNU build environment, which mean, the same procedures are applicable as in case of the *nix based installations, except for the following limitations:

Unpacking and Configuration

$ gunzip -c gnade-src-<version>.tar.gz | tar xvf -
$ cd gnade-src-<version>
$ ./configure 

Installation of the Database

Not applicable

Compiling an testing

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

$ make

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.

During installation a startup script will be installed at /etc/profile.d which adjusts the path in such a way that the executable will be available in the default login environment.

Installation of cygwin packages

This is a todo.

Contrib Tool Installation

Not applicable.

Local Development Environment

The example development environment ist located under examples/standalone.


$Id: note_1.5.3b.html,v 1.4 2005/01/29 15:46:02 merdmann Exp $