2008年7月27日twining 网站上的介绍是Twining aims to be an IronPython DSL for working with databases. 不过,现在称为dsl 还是有点早. 个人感觉只能是一个 utility class
twining 是为数不多的专门为ironpython写的代码. 它能够完成常见的数据库维护操作,像备份,导入导出数据,使用也比较简单
1. 创建一个连接字符串
2. 构造一个database实例
3. 通过该实例进行操作,如
backupto/run_sql/table(tableName)/ping/copyto/importfrom...
值得注意的是,调用table(tablename)并不像我们想像的会返回一个table实例并对其进行操作,实际上,twining有个类register,里面有一些类变量tableRegister,databaseRegister,transforms,warning等. 调用table(tableName)仅仅是设置register.tableRegister值,返回的还是database实例
from Twining import database
connectionString='server=(local);user id=sa;pwd=;database=mydb"
db=database(connectionString)
db.backup('c:\\mydb.bak')
twining的代码很简单,由下面一些类组成
register - 全局的设定
database - database 类
copyto - 主要对table进行export操作
importfrom 主要对table进行import操作
sqlhelper 进行ExecuteReader/ExecuteNoQuery 操作
个人感觉这个代码命名上有些小问题,像py文件应该用小写,类名应该用大写(否则像database(connectionString)这样会让人误以为 database是个方法). 另外,oo模型也不算漂亮. 但总的来说,是段 实用的代码.而且是专门for ironpython,所以值得推荐一下