(Resend since I hit reply instead or reply-all)

Wow, I'm really glad to see this topic has garnered such great
response from everyone.  This make me really hopeful that we
can solve this issue.

On 4/20/07, Anthony Tuininga <[EMAIL PROTECTED]> wrote:

I've been following this thread and it would appear that no real
consensus has been reached as of yet. I've looked at the api used by
sqlite and knowing its storage and type definition system it makes
good sense. I am considering adding the following to cx_Oracle,
following some of the examples given so far with modifications needed
for Oracle, and I'd appreciate any input you might have.

cursor.setdefaulttype(databaseType, type)
connection.setdefaulttype(databaseType, type)


I like the sounds of this.  What are you thinking the databaseType
parameter?  I can see using the standard database types that the
modules expose (STRING, BINARY, NUMBER, DATETIME,
and ROWID) along with extended types that are custom to the
database API.  If the extended types were derived from the
standard types, then a bit of code that was portable could use
STRING to say that all strings map to Unicode or whatever, and
code that used an advanced feature of a database could map
NVARCHAR to Unicode and map VARCHAR to non-Unicode.

registeradapter(type, databaseType, fromPythonMethod, toPythonMethod)

This would specify that whenver an object of the given type is bound
to a cursor, that the fromPythonMethod method would be invoked with
the value and would expect a return value that can be directly bound
to the databaseType. The toPythonMethod method would be invoked when
columns are retrieved and would accept the databaseType value and
expect back a value of the given type.


Is this mapped as a tuple of type and databaseType? Or is this mapping
saying that to get to/from type you used the database type on the db side
and the correct function based on direction?

Some help on the names would be appreciated as well -- its the worst
part of programming. :-) I've tried to use the DB API style of naming
-- all lower case without any underscores even though it isn't my
personal favorite.


I kind of like Robert's suggestions below about using an exposed
mapping object and being explicit about the direction of the conversion.
So I would suggest names like "defaulttypefromdb" and "defaulttypetodb"
(again using the existing  db api naming style)

Jim Patterson
_______________________________________________
DB-SIG maillist  -  DB-SIG@python.org
http://mail.python.org/mailman/listinfo/db-sig

Reply via email to