首先是试着用ironpython 跑sqlalchemy 

1. 第一个问题是出在__solt__对于python私有变量的解释

python对私有变量约定用__开头,实际中,它被存储为_ClassName__variablename ,ironpython 在__solt__中说明时需要用实际存储的变量名

 

修改pool.py 中的

 

class _ConnectionFairy(object):
    """Proxies a DB-API connection and provides return-on-dereference support."""

    __slots__ = '_pool', '_ConnectionFairy__counter', 'connection', '_connection_record', '__weakref__', '_detached_info'

 

同样的问题还在_CursorFairy类中
class _CursorFairy(object):
    __slots__ = '_CursorFairy__parent', 'cursor', 'execute'

 

2. echo=True启用log时出现

ValueError: _getframe is not implemented for non-zero depth

用echo=False逃过

 

3.autoload=True时出现Key errors

 不使用autoload

 

在接下来的测试中出现了不少错误,如

select([categories.c.id,categories.c.name,func.count(products.c.id)],from_obj=[categories.join(products)]).group_by(categories.c.id,categories.c.name)

 

这个func.count 通不过,提示key error ,这个错误出现的概率还是停多的

 

然后试着用jython 跑sqlalchemy ,使用了http://fwierzbicki.blogspot.com/2007/07/sqlalchemy-mysql-and-jython.html 这里的实现,修改了logging/util.Set两个地方

但显然,生成的sql 有问题,像上面的 from 部分 是  from core_category ,core_product ,core_category inner join core_product

 

接着继续折腾zxJDBC ,这个是python的jdbc 的 dbapi实现,试了ms的sql server jdbc驱动,在select * from core_category 就出错,经查看是nvarchar的输出问题,如果单独使用jdbc ,这个问题是不存在

 


 

posted on 2008-11-09 11:02  jjxstudio  阅读(263)  评论(0编辑  收藏  举报