• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

gnat/H03-May-2022-7246

gpr/H07-May-2022-147123

manual/H10-Aug-2012-11,1909,176

samples/H10-Aug-2012-1,245725

scripts/H03-May-2022-455226

src/H10-Aug-2012-3,8872,315

COPYINGH A D10-Aug-20121 KiB2218

GPLH A D10-Aug-201217.6 KiB341281

HISTORYH A D10-Aug-20126.6 KiB207171

INSTALLH A D10-Aug-2012191 115

MakefileH A D10-Aug-2012347 2311

READMEH A D10-Aug-20126.3 KiB185138

configureH A D03-May-20223 KiB17297

configure.localH A D10-Aug-2012128 112

versionH A D10-Aug-20126 21

README

1$Id: README,v 1.19 2004/10/07 03:35:27 wwg Exp $
2
3
4
5===========================================================================
6=                             APQ Version 3.0                             =
7===========================================================================
8=                      The APQ Ada95 Database Library                     =
9=                                                                         =
10=  This package has the commmon part for all the APQ drivers available.   =
11=  In order to connect to a database, you'll have to download and install =
12= one of the database bindings being:                                     =
13=        * MySQL :: apq-mysql package                                     =
14=        * PostgreSQL :: apq-postgresql package                           =
15=        * Ms. SQL Server/Sybase :: apq-ct_lib package                    =
16=        * Sybase (more specialized) :: apq-sybase                        =
17=                                                                         =
18= Authors:                                                                =
19=   Warren W. Gay VE3WWG <ve3wwg@cogeco.ca>                               =
20=                http://home.cogeco.ca/~ve3wwg                            =
21=   Marcelo C. de Freitas <marcelo@kow.com.br>                            =
22===========================================================================
23
24
25Why use APQ over other products?
26
27
28APQ Features:
29-------------
30
31  - It is a thick binding, making it natural for Ada programmers.
32  - It is very simple to use, making programming easy.
33  - Can be used with strong Ada types.
34  - Generic procedure and function support for strong types.
35  - Supports multiple database engines generically
36  - MySQL supported as of APQ-2.0
37  - Sybase supported as of APQ-2.2
38  - Database neutral code is possible (portable)
39
40  - Full BLOB support (for PostgreSQL)
41  - Blob I/O is performed through Ada95 stream I/O.
42  - High performance blob I/O through buffered stream I/O
43  - Optionally blob I/O can be unbuffered.
44
45  - Native binding (no ODBC muss or fuss!)
46  - Full support for NULL values.
47  - Additional support for DATE, TIME and TIMESTAMP data types.
48  - Some support for TIMEZONE types (PostgreSQL)
49  - Supports bit string types (PostgreSQL)
50  - Leaves the SQL in human readable form
51
52  - 4 levels of tracing for application debugging
53    - Trace_None  (no tracing)
54    - Trace_DB    (C library trace information only)
55    - Trace_APQ   (SQL query trace information only)
56    - Trace_Full  (both Trace_DB and Trace_APQ)
57  - Trace_APQ output can be fed as SQL text for testing
58
59  - Non restritive license :
60    - MGPL (GNAT Modified GNU Public License)
61
62  - Extensive manual, with examples for nearly every function.
63    - notice while the manual hasn't been update for a while, it's
64    still a great source of information.
65  - Manual includes a chapter on generic database programming.
66
67  - Experimental support of the Decimal_Type package (using
68    decimal routines used internally by the PostgreSQL database
69    engine).
70  - Under active development and use
71
72Design Goals:
73-------------
74
75The main design goals for the APQ binding development were:
76
77  - simple to use
78  - easy to read
79  - reliable
80  - database vendor neutral (generic database programming)
81  - at the user's option, strongly typed
82  - strong blob support
83  - No C language interfaces or types
84  - good documentation
85
86It is the authors' belief that these goals have been suitably met,
87although the package is still undergoing active research. Excluding blob
88support, there are only 2 tagged object types that the programmer must
89become familiar with. These objects include Finalization and  nicely
90clean up after themselves. Blob support adds one more tagged object that
91the programmer can interact with.
92
93  1. The Connection_Type object for database connections
94  2. The Query_Type object for SQL interactions with server
95  3. The Blob_Type type for Blob I/O and operations
96
97Having few objects reduces the learning curve substantially. A large
98number of functions and procedures are overloaded -- reusing the same
99name. This also reduces the learning curve, since the remaining
100differences are only in the involved data types. Much complexity
101is hidden within the state driven objects.
102
103The APQ binding allows the Ada95 programmer to interface with blobs
104using stream I/O. This preserves the Ada advantage for strong type
105checking while making it simple for the programmer to perform I/O. As of
106APQ 1.2, the blob I/O is buffered, giving the stream I/O for blobs a
107major performance boost. No longer will the programmer need to search
108for performance work-arounds for blob operations.
109
110Version 2.2 of APQ brings Sybase into the fold of supported
111databases. This is particularly useful now that Sybase has
112generously made their ASE-12.5x Express edition of their
113server available to developers for free.
114
115Version 3.0 provides full compatibility with the FreeTDS library,
116thus providing Microsoft SQL Server support in adition to the
117already existing Sybase support.
118
119Trial Programs:
120---------------
121
122In the 3.0 the old trial programs has been removed from the distribution.
123
124However, there are some examples in the "samples" folder for testing
125some of the features (but not all of them).
126
127If you'd like to help, providing such tests would be agreat place to
128start.
129
130
131Platforms:
132----------
133
134These are the platforms where we've been sucessful in compilling and using APQ so far:
135
136OS:
137	Linux Kernel 2.6
138	Windows 2k, 2k3, XP and Vista
139Compiler:
140	GNAT 3.14p
141	GNAT GCC 4.2 and 4.3
142
143Database Servers:
144	PostgreSQL 7.3.5
145	MySQL 4.0.14 and 5.0.76
146	Sybase ASE 12.52
147	Microsoft SQL Server 2005
148
149While not yet tested on all platforms, this package will likely
150port well for must UNIX platforms, including:
151
152 - FreeBSD		(untested)
153 - NetBSD 		(untested)
154 - OpenBSD		(untested)
155 - HP-UX 10.2 or higher (untested)
156 - Sun Solaris 		(untested)
157
158
159Win32 Builds:
160-------------
161
162Win32 builds are now possible. See the pdf document
163named win32.pdf for instructions on how to build APQ
164from sources.
165
166
167Feedback:
168---------
169
170Please feedback suggestion and bugs to the project homepage:
171	http://framework.kow.com.br
172
173When reporing bugs please provide also:
174	. Database server with version
175	. OS with version
176	. Ada compiler with version
177
178
179Thank-you for downloading and using APQ.
180
181
182See file HISTORY for revision history
183
184- End -
185