Statistics
| Branch: | Tag: | Revision:

root / README @ master

History | View | Annotate | Download (6.3 kB)

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