alias DataObjectFromSqlCreateTable!(import("db.sql"), "users") User;
                                 // sql source code , table to fetch

void main() {
    auto obj = new User(null); // that null should actually be a db handle if
you want to be able to commit changes

    // read/write access to the user table, with compile time
    // type and name checks

    obj.first = "Changing my name!";
    obj.date_last_edited = getUTCtime();

    obj.commitChanges(); // save your writes back to the database,
(reasonably) efficiently
}



D can! It can dynamically make those DataObjects too, with the
same syntax, but you lose compile time checks for obvious reasons.


I just couldn't help but laugh a bit when I ran this thing through
CTFE and found it actually worked, so figured I'd share a positive
message with you guys :-)

See my code here:

http://arsdnet.net/dcode/database.d

You might want a database implementation to play with too:

http://arsdnet.net/dcode/mysql.d (best for this purpose so far)
http://arsdnet.net/dcode/sqlite.d (but the others work too)
http://arsdnet.net/dcode/postgres.d

A simple db.sql file is here:
http://arsdnet.net/dcode/db.sql

It's just a list of CREATE TABLE commands. I ran the program over
a far more complex file too and it worked, but it isn't a super
smart parser so you can probably break it pretty easily. (for one,
it is case sensitive where as standard SQL is not)

Reply via email to