Statistics
| Branch: | Tag: | Revision:

root / README @ master

History | View | Annotate | Download (6.3 kB)

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
25
Why use APQ over other products?
26
27
28
APQ 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
72
Design Goals:
73
-------------
74
75
The 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
86
It is the authors' belief that these goals have been suitably met,
87
although the package is still undergoing active research. Excluding blob
88
support, there are only 2 tagged object types that the programmer must
89
become familiar with. These objects include Finalization and  nicely
90
clean up after themselves. Blob support adds one more tagged object that
91
the 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
97
Having few objects reduces the learning curve substantially. A large
98
number of functions and procedures are overloaded -- reusing the same
99
name. This also reduces the learning curve, since the remaining
100
differences are only in the involved data types. Much complexity
101
is hidden within the state driven objects.
102
103
The APQ binding allows the Ada95 programmer to interface with blobs
104
using stream I/O. This preserves the Ada advantage for strong type
105
checking while making it simple for the programmer to perform I/O. As of
106
APQ 1.2, the blob I/O is buffered, giving the stream I/O for blobs a
107
major performance boost. No longer will the programmer need to search
108
for performance work-arounds for blob operations.
109
110
Version 2.2 of APQ brings Sybase into the fold of supported
111
databases. This is particularly useful now that Sybase has
112
generously made their ASE-12.5x Express edition of their
113
server available to developers for free.
114
115
Version 3.0 provides full compatibility with the FreeTDS library, 
116
thus providing Microsoft SQL Server support in adition to the
117
already existing Sybase support.
118
119
Trial Programs:
120
---------------
121
122
In the 3.0 the old trial programs has been removed from the distribution.
123
124
However, there are some examples in the "samples" folder for testing
125
some of the features (but not all of them).
126
127
If you'd like to help, providing such tests would be agreat place to
128
start.
129
130
131
Platforms:
132
----------
133
134
These are the platforms where we've been sucessful in compilling and using APQ so far:
135
136
OS:
137
	Linux Kernel 2.6
138
	Windows 2k, 2k3, XP and Vista
139
Compiler:
140
	GNAT 3.14p
141
	GNAT GCC 4.2 and 4.3
142
143
Database 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
149
While not yet tested on all platforms, this package will likely
150
port 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
159
Win32 Builds:
160
-------------
161
162
Win32 builds are now possible. See the pdf document
163
named win32.pdf for instructions on how to build APQ
164
from sources.
165
166
167
Feedback:
168
---------
169
170
Please feedback suggestion and bugs to the project homepage:
171
	http://framework.kow.com.br
172
173
When reporing bugs please provide also:
174
	. Database server with version
175
	. OS with version
176
	. Ada compiler with version
177
178
179
Thank-you for downloading and using APQ.
180
181
182
See file HISTORY for revision history
183
184
- End -