纯python sql anywhere数据库接口
sqlanydb的Python项目详细描述
这个包为sql anywhere数据库提供了一个python接口 服务器此接口符合PEP 249。
要求
在安装sqlanydb接口之前,请确保 系统上安装了以下组件。
- python 2.4或更高版本(包括python 3.x)
- 如果缺少python cTypes模块
- 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!
许可证
此软件包是根据apache许可2.0版的条款授权的。见 有关详细信息的许可证文件。
反馈和问题
有关此项目的反馈,或有关在任何地方使用SQL的一般问题 请使用http://sqlanywhere-forum.sap.com/上的SQL Anywhere论坛