恐怕这只是一个配置问题,但也可能是编码方面的一些问题。但是,我试图使用Python和sqlanydb连接数据库。SQLAnywhere安装在/opt/sybase中,Shell正在查找sa_config.sh文件。
与普通工具的连接工作良好:例如
dbisql -c "uid=dba;pwd=sql;eng=mydemo"但是,当我尝试在Python中使用
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import ctypes
import sqlanydb
def main(args):
db1 = sqlanydb.connect( userid="DBA",
password="sql",
DataSourceName="mytest")
db1.close
return 0
if __name__ == '__main__':
import sys
sys.exit(main(sys.argv))它失败了
Traceback (most recent call last):
File "./myfile.py", line 52, in <module>
sys.exit(main(sys.argv))
File "./myfile.py", line 42, in main
DataSourceName="mytest")
File "/usr/local/lib/python2.7/dist-packages/sqlanydb.py", line 461, in connect
return Connection(args, kwargs)
File "/usr/local/lib/python2.7/dist-packages/sqlanydb.py", line 510, in __init__
self.handleerror(*error)
File "/usr/local/lib/python2.7/dist-packages/sqlanydb.py", line 520, in handleerror
eh(self, None, errorclass, errorvalue)
File "/usr/local/lib/python2.7/dist-packages/sqlanydb.py", line 342, in standardErrorHandler
raise errorclass(errorvalue)
sqlanydb.OperationalError: Parse error: Cannot find .ini file我查看了sqlanydb的源代码,但此时没有找到对.ini文件的任何引用。那么,使ASA16能够使用sqlanydb运行的正确方法是什么?
发布于 2014-10-20 17:34:31
如果没有~/.odbc.ini文件,就会出现这样的错误。您正在指定"DataSourceName=mytest",它告诉SQL驱动程序在~/.odbc.ini中查找名为mytest的DSN,但是没有找到.ini文件。
使用dbdsn实用程序创建有问题的DSN。
完全披露:我在SQL工程公司为SAP工作。
https://stackoverflow.com/questions/26468357
复制相似问题