我目前正在使用sybpydb连接到 Sybase 15.7 服务器。似乎连接正常:
import sys
sys.path.append('/dba/sybase/ase/15.7/OCS-15_0/python/python26_64r/lib')
sys.path.append('/dba/sybase/ase/15.7/OCS-15_0/lib')
import sybpydb
conn = sybpydb.connect(user='usr', password='pass', servername='serv')
工作正常。更改我的任何连接详细信息都会导致连接错误。
然后我选择一个数据库:
curr = conn.cursor()
curr.execute('use db_1')
但是,现在当我尝试运行查询时,它总是返回None
print curr.execute('select * from table_1')
我试过在同一个中运行use
和select
查询execute
,我试过在每个之后都包含go
命令,我试过curr.connection.commit()
在每个之后都使用,但都没有成功。我已经确认,使用dbartisan
and isql
,我使用的相同查询返回条目。
为什么我在 python 中的查询没有得到结果?
编辑:
只是一些额外的信息。为了使sybpydb
导入工作,我不得不更改两个环境变量。我将库路径(与我添加到的相同sys.path
)添加到$LD_LIBRARY_PATH
,即:
setenv LD_LIBRARY_PATH "$LD_LIBRARY_PATH":dba/sybase/ase/15.7/OCS-15_0/python/python26_64r/lib:/dba/sybase/ase/15.7/OCS-15_0/lib
我不得不将SYBASE
路径从 12.5 更改为 15.7。这一切都是在csh
.
如果我打印 conn.error(),在每个 curr.execute() 之后,我得到:
("Server message: number(5701) severity(10) state(2) line(0)\n\tChanged database context to 'master'.\n\n", 5701)