当前位置: 代码迷 >> 综合 >> python连接sqlanywhere数据库资料
  详细解决方案

python连接sqlanywhere数据库资料

热度:33   发布时间:2024-03-08 18:32:48.0

SQL Anywhere 10或更高版本:

安装sqlanydb模块
以管理用户身份运行以下命令以安装 sqlanydb:python setup.py install
或者,您可以使用pip:pip install sqlanydb
转换器功能
这个库包装sqlanydbdbcapic库。检索时 值,则C API返回以下类型之一:A_无效的_类型
a_二进制
一串
a_双
阿武64
A_val64
阿武32
A_val32
a_val16
阿图16
阿武8
A_val8
其他类型作为上述类型返回。例如,数字类型是 作为字符串返回要让sqlanydb返回不同或自定义的python对象,可以注册 使用sqlanydb模块进行回调,使用 register_converter(datatype, callback)。回调是一个接受 一个参数,要转换的类型,并应返回转换后的值。 数据类型是模块中存在的DT_变量之一。可用于注册转换器的类型:不输入日期
日期
dt_时间
时间戳
dt_varchar
dt_fixchar
特朗瓦查尔
dt_字符串
双dt_
dt_浮点
dt_十进制
dt_int
斯莫林特酒店
dt_二进制
长二进制
迪丁因特
dt_bigint
取消打印
dt_unssmalint
dt_unsbigint
dt_位
德特朗瓦查尔
例如,要将数值类型作为python Decimal对象返回:import decimaldef decimal_callback(valueToConvert):return decimal.Decimal(valueToConvert)sqlanydb.register_converter(sqlanydb.DT_DECIMAL, decimal_callback)
测试sqlanydb模块
测试到SQL Anywhere的Python接口是否正常工作 首先启动SQL Anywhere附带的演示数据库 安装,然后使用 以下内容:import sqlanydb
conn = sqlanydb.connect(uid='dba', pwd='sql', eng='demo', dbn='demo' )
curs = conn.cursor()
curs.execute("select 'Hello, world!'")
print( "SQL Anywhere says: %s" % curs.fetchone() )
curs.close()
conn.close()
运行测试脚本并确保获得预期的输出:> python test_sqlany.py
SQL Anywhere says: Hello, world!

老版本的使用pyodbc

字符串是con = pydobc.connect(dsn="myDSN")  

import pyodbc
import pandas as pdcnxn = pyodbc.connect("DSN=RevDSN")
print(cnxn)
data = pd.DataFrame(pd.read_sql_query(query, cnxn))
cnxn.close()
import pyodbc
cnxn = pyodbc.connect('Driver={SQL Anywhere 17};LINKS=TCPIP{HOST=<server ip here>};PORT=2638;UID=admin;PWD=<password here>;ENG=<engine name>;DBN=<database name>;')
cursor = cnxn.cursor()
cursor.execute("select top 10 * from dba.<table name>") 
for row in cursor:                                                                   print(row) 

 

  相关解决方案