python - 通过 Python : sqlanydb. OperatingalError : Parse error: Cannot find . ini 文件连接 SQLAnywhere 时出现问题

标签 python sqlanywhere sybase-asa

恐怕这可能只是一个配置问题,但也可能是编码问题。但是,我正在尝试使用 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 一起运行的正确方法是什么?

最佳答案

如果您没有 ~/.odbc.ini 文件,您将收到此错误。您指定“DataSourceName=mytest”,它告诉 SQL Anywhere ODBC 驱动程序在 ~/.odbc.ini 中查找名为 mytest 的 DSN,但未找到 .ini 文件。

使用 dbdsn 实用程序创建有问题的 DSN。

全面披露:我在 SAP 从事 SQL Anywhere 工程工作。

关于python - 通过 Python : sqlanydb. OperatingalError : Parse error: Cannot find . ini 文件连接 SQLAnywhere 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26468357/

相关文章:

javascript - 如何在 HTML 和 Javascript 的帮助下从浏览器使用 python (Django) 访问我的网络摄像头?

php - 使用 ODBC 和 PHP 检索存储过程的数据

sybase - 如何清除sybase 15.7中的事务日志?

c++ - 带有 "partition by"的准备好的语句对 Sybase IQ 不起作用?

python - 估计凸包的纵横比

python - 如何在 Python 中列出目录(非递归)中的所有 tga 文件?

mysql - 如何将mysql db迁移到任何地方的sql

database - 如何计算 SQL Anywhere 11 数据库表中一行的哈希值?

子查询中 ORDER BY 的 SQL 错误(使用了 TOP)

python - int() 参数必须是字符串或数字,而不是 'SimpleLazyObject'