On Nov 24, 2008, at 11:47 PM, Harish Vishwanath wrote:

> Hello,
>
> Thanks for your reply. Please see the below implementation :
>
> Implementation 1:
>
> >>> def my_con_func():
> ...     print "My Connection func"
> ...     import sqlite3.dbapi2 as sqlite
> ...     con = sqlite.connect(":memory:")
> ...     con.text_factory=str
> ...     return con
> ...
> >>> engine = create_engine("sqlite:///",creator=my_con_func)
> >>> engine
> Engine(sqlite:///)
> >>> engine.connect()
> My Connection func
> <sqlalchemy.engine.base.Connection object at 0x01B1ADB0>
> >>> engine.connect().connection.connection.text_factory
> <type 'str'>
>
>
> Implementation 2:
>
> >>> anotherengine = create_engine("sqlite:///:memory:")
> >>> anotherengine.connect().connection.connection.text_factory = str
>
> I would like to know which one is better, since I am afraid if I am  
> missing some create_engine inbuilt implementation while returning  
> custom connection object (in Implementation 1). Please let me know  
> your suggestion.

go with this one:

from sqlalchemy.interfaces import PoolListener
class SetTextFactory(PoolListener):
     def connect(self, dbapi_con, con_record):
         dbapi_con.text_factory = str

engine = create_engine('sqlite://', listeners=[SetTextFactory()])

implementation 1 is fine, you can stay with it if you want - I just  
think "creator" is a little klunky since you have to re-import sqlite  
and connect manually.   implementation 2 will only work for a single- 
threaded application and will break if the pool implementation is  
changed, unless you set-up text_factory every time connect() is called  
(which is usually impossible).


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to