root / README

View | Annotate | Download (6.3 KB)

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