SqlAlchemy在MS SQL中添加记录后挂起

2024-10-01 22:40:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在Jython上运行SQLAlchemy,并尝试使用jTDS和windows身份验证连接到mssql数据库。我可以很好地查询和删除,但当我尝试插入新值时,它将在提交时挂起。在

print 'before add'
session.add(newVal)
print 'after add'
session.commit()
print 'after commit'

我看到了前两个打印语句,但没有看到最后一个。我的CPU快用完了,甚至不能直接使用mssqlmanagementstudio查询表。当我终止jythonjava进程时,我可以再次查询,但新值还没有添加。在

奇怪的是,我可以使用SQL命令直接插入值:

^{pr2}$

你知道我做错了什么吗?在

下面是一个缩短的堆栈跟踪:

"MainThread" prio=6 tid=0x0000000000def000 nid=0x528 runnable [0x0000000002c3d000]
   java.lang.Thread.State: RUNNABLE
    at java.lang.Throwable.fillInStackTrace(Native Method)
    - locked <0x0000000021e98880> (a org.python.core.PyException)
    at org.python.core.PyException.fillInStackTrace(PyException.java:70)
    at java.lang.Throwable.<init>(Throwable.java:181)
    at java.lang.Exception.<init>(Unknown Source)
    at java.lang.RuntimeException.<init>(Unknown Source)
    at org.python.core.PyException.<init>(PyException.java:46)
    at org.python.core.PyException.<init>(PyException.java:43)
    at org.python.core.PyException.<init>(PyException.java:61)
    at org.python.core.Py.AttributeError(Py.java:145)
    at org.python.core.PyObject.noAttributeError(PyObject.java:936)
    at org.python.core.PyObject.object___getattribute__(PyObject.java:3694)
    at org.python.core.PyObject$object___getattribute___exposer.__call__(Unknown Source)
    at org.python.core.PyObjectDerived.__findattr_ex__(PyObjectDerived.java:993)
    at org.python.core.PyObject.__getattr__(PyObject.java:929)
    at sqlalchemy.dialects.mssql.zxjdbc$py.post_exec$3(C:\Users\pchavez\bin\netbeans\NetBeans 6.7 Python EA2\python1\jython-2.5\Lib\site-packages\sqlalchemy\dialects\mssql\zxjdbc.py:52)
    at sqlalchemy.dialects.mssql.zxjdbc$py.call_function(C:\Users\pchavez\bin\netbeans\NetBeans 6.7 Python EA2\python1\jython-2.5\Lib\site-packages\sqlalchemy\dialects\mssql\zxjdbc.py)
    at org.python.core.PyTableCode.call(PyTableCode.java:165)

    ...

    at org.python.pycode._pyx0.f$0(C:\Users\pchavez\sqltool\src\db\sqltest.py:99)
    at org.python.pycode._pyx0.call_function(C:\Users\pchavez\sqltool\src\db\sqltest.py)
    at org.python.core.PyTableCode.call(PyTableCode.java:165)
    at org.python.core.PyCode.call(PyCode.java:18)
    at org.python.core.Py.runCode(Py.java:1197)
    at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:166)
    at org.python.util.jython.run(jython.java:229)
    at org.python.util.jython.main(jython.java:117)

据我所知,它是sqlalchemy.方言.mssql.zxjdbc模块:

def post_exec(self):
    if self._embedded_scope_identity:
        while True:
            ...

Tags: pyorgcorelangsqlalchemyinitjythonjava

热门问题