[ Home Page ] [ Eiffel Archive ] [ Eiffel Classes and Clusters
]
 |
eSQL: The Eiffel SQL Library
|
Written by Patrick
Doyle.
esql-0.12.tar.gz (12,700 bytes)
- source code
eSQL_Article.txt (4,377 bytes) -
article about eSQL
http://www.elj.com/epan/by_author/pd/esql/esql-980712.html
(eSQL EPAN page)
http://www.ecf.toronto.edu/~doylep/eiffel/
(eSQL home page)
http://www.ecf.toronto.edu/~doylep/
(Patrick Doyle's home page)
Description
eSQL is a library for easily executing SQL queries using any
supported database engine. Currently, only the mSQL engine from
Hughes Technologies (http://www.hughes.com.au/)
is supported, and only for SmallEiffel, but hopefully as the
library matures it will come to support more engines and
compilers.
The library is based on a set of ADTs which describe the
functionality of the library in an abstract manner. These ADTs
are then implemented for the particular database engines and
compilers supported by the library. The engine/compiler-specific
portion of the library is itself structured in such a way as to
promote expandability and flexibility.
Readme file
All files copyright 1998 Patrick Doyle and others.
See forum.txt for
details.
(This project and README are still very much under
construction...)
Included in this tar are the following items:
- The eSQL abstract data types, in the adt
directory.
- A generic SQL test program, in adt/test
- An implementation of the ADTs for the mSQL (mini-SQL)
database under SmallEiffel, in the msql_eiffel
directory; and an implementation of the test program in msql_eiffel/test.
- A Makefile which will build and run the mSQL
test program.
- A loadpath.se file which will help SmallEiffel
find all the classes.
- An embyonic ODBC implementation. (Not even close to
usable.)
To build and run the test program, do this:
- Make sure you have /usr/lib/libmsql.a in place.
(A symbolic link will do.)
- Put the msql.h header from mSQL where it can be
reached by "#include <msql/msql.h>".
- Put the emsql.h header from this package where
it can be reached by "#include
<eiffel/emsql.h>".
- Execute make. It will compare the output of the
program with the test output provided in this package. A
successful test means no output.
Mail me at doylep@ecf.toronto.edu
with any comments or questions.
Issues to resolve:
- Should the ADTs inherit from any standard classes to make
them more useful? Should their interfaces be changed in
any way to make them more standard?
- Is the interface general enough to support a wide variety
of SQL databases? For instance, is it reasonable that
"disconnect" can have "not connected"
as a postcondition?
- Is there a better way to support multiple compilers than
to reimplement the API class for each one?
[ Home Page ] [ Eiffel Archive ] [ Eiffel Classes and Clusters
]