python连接sqlanywhere数据库资料

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 decimal

def 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 pd

cnxn = 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) 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值