dyork wrote:
> "Dennis Lee Bieber" <[EMAIL PROTECTED]> wrote in message
> news:[EMAIL PROTECTED]
>
> > If you actually look at what the various DB-API adapters produce
> > when sending to the database engine, floats, bools, etc. are all sent as
> > string representations; about the only source for problems would be
> > involved in the number of significant digits transferred for a float
> > (you might feed 15 digits in, and only get 7 or 10 back)
>
> Having written adapters myself, I would not be confident that is true. It's
> convenient to use native formats for floats and ints, and strings for
> everything else. Regardless, you get trouble with (a) nulls (b) dates/times
> (c) decimal/currency (d) precision mismatches (e)  collation mismatches (f)
> blobs (g) Unicode (h) special values like NaN. It takes great attention to
> detail to be sure it all works, and I really don't want to write it (again).
>
> I'd just like to choose some product X and "It Just Works"!

Ah. Then feel free to have a look at Dejavu, wherein I've worked all
that out for you (okay, not NaN, but that wouldn't be hard).

A quick look over
http://projects.amor.org/dejavu/browser/trunk/storage/storemysql.py
shows proper string escaping, correct handling of 1/0 for True and
False, encoding, max precision, CURDATE, automatic scaling to BLOB
columns for bytes > 255, and BLOB index limitations. All of the Null,
date/time, decimal, unicode, and other type adaptation support is in
the generic
http://projects.amor.org/dejavu/browser/trunk/storage/geniusql.py

The same goes for Postgres, MS Access, SQLite, and SQL Server. Firebird
and sqlite3 are in the works.

Simple docs at http://projects.amor.org/docs/dejavu/


Robert Brewer
System Architect
Amor Ministries
[EMAIL PROTECTED]

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to