[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [stellation-res] Database abstraction
|
Hi Mark,
It seems to me that you are complicating things more than necessary.
You are targeting 6 databases that need 6 different SQL scripts, not 6.000 different ones. The Postrgres version is ready; the Oracle version is working; don know the status of DB2 and I can modify the script for Firebird/InterBase. The only missing scripts are MySQL/InnoDB and you can search for a volunteer to fix the script when someone shows interest in using MySQL or InnoDB.
Please e-mail me the latest Postgres script and I will give you tomorrow the Firebird version.
Regards,
Rodolfo
On Tue, 2002-08-13 at 11:06, Mark C. Chu-Carroll wrote:
So... I'm looking at trying to create a database abstraction layer that
will work accross Postgres, DB2, Oracle, MySQL/InnoDB, and
Firebird.
One option is to totally automate the SQL generation process. This
allows us to smoothly handle things like the INNODB declarations
that need to go onto the end of table creations, variations in typenames,
etc.
I've tried a first cut at doing this for table creation. I'm looking at a
bit of test code, and I can't decide whether I like it (it's nicely abstract,
and quite easy to write), or hate it (it's hard to see the SQL in it). Here's
a sample: what do you folks think: is this a good direction, or am I being
idiotically abstract?
Here's the original SQL:
CREATE TABLE Properties (INTEGER aid,
INTEGER vid,
INTEGER inheritable,
VARCHAR(200) name,
VARCHAR(1600) value,
CONSTRAINT fk3 FOREIGN KEY (aid, vid) REFERENCES Versions(aid, vid)
PRIMARY KEY(aid, vid, name))
Here's the corresponding code:
DatabaseCreateTableCommand cmd =
_db.createTable("Properties")
.addIntegerField("aid")
.addIntegerField("vid")
.addIntegerField("inheritable")
.addShortStringField("name")
.addLongStringField("value")
.beginForeignKeyConstraint("fk3", "FOREIGN KEY")
.addConstraintField("aid")
.addConstraintField("vid")
.beginForeignKeyReferences("Versions")
.addConstraintField("aid")
.addConstraintField("vid")
.endForeignKeyConstraint()
.beginPrimaryKeyConstraint()
.addConstraintField("aid")
.addConstraintField("vid")
.addConstraintField("name")
.endPrimaryKeyConstraint()
.endCommand();
--
Mark Craig Chu-Carroll, IBM T.J. Watson Research Center
*** The Stellation project: Advanced SCM for Collaboration
*** http://www.eclipse.org/stellation
*** Work Email: mcc@xxxxxxxxxxxxxx ------- Personal Email: markcc@xxxxxxxxxxx
_______________________________________________
stellation-res mailing list
stellation-res@xxxxxxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/stellation-res
--
MAXPROGRAMS
IBM Business Partner
Microsoft MSDN Business Connection Partner
rmraya@xxxxxxxxxxxxxxx
http://www.maxprograms.com
|