纯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论坛

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如果在使用JDBC时不包含db驱动程序会发生什么?   发生错误时使用JAXWS跟踪XML请求/响应   java servlet版本getServletContext()。getEffectiveMajorVersion()在我使用3时给了我2.5   jakarta mail在Java中使用Javamail获取消息contenttype时出错   java正在获取WebSphere app Server的实例名称   java在javafx中向TreeItem添加了一个addEventHandler   java我们可以在运行时从泛型类型实例化一个对象吗?   带倒计时的java循环[自动重新启动]   java将画布转换为位图   java在tomcat7上运行shell脚本   使用列表更新java hibernate实体   java如何替换� 字符串中带有“,”的字符?   使用SwingGUI的java简单ClientServer程序   java使用smtp在javamail中以附件形式发送超链接   selenium中的java用户登录身份验证?