开放数据库互连(ODBC)应用:数据库的读写
当仿真数据源为数据库时,需要对数据库进行读写操作;或者当数据量过大,TableFile查询数据过于繁琐时,可以利用数据库进行操作。在Plant Simulation中读取数据库就需要ODBC进行数据库的连接。这里以SQL Server数据库为例。
ODBC的创建:
Windows系统自带ODBC管理工具,可设置ODBC数据源。ODBC数据源的创建方法可参见百度。
ODBC的连接:
模型默认不带有ODBC模块,需要手动加载。选择”Home”选项卡下的”Manage Class Library”按钮,在弹出的对话框中找到”ODBC”,选择后确定,即可加载ODBC模块。加载完成后,ODBC模块位于工具箱的”Information Flow”选项卡下。
ODBC界面如上图所示,选择需要读取的数据库(”Database”),然后填入用户名和密码,点击”Login”即可。如果连接失败,需要检查ODBC数据源的设置。
基础函数:
login(Database:<string>, UserName:<string>, Password:<string>)
连接ODBC。Database为ODBC名称;UserName为数据库用户名;Password为数据库密码。
示例:ODBC.login (“TestDB”, “sa”, “123456”)
logout
断开ODBC连接。
示例:ODBC. logout
sql(Result:<table>, SQLString:<string>)
向数据库传入SQL语句并执行,返回结果。Result为结果储存表格,当无返回结果时可不填,如执行delete语句;SQLString为需要执行的SQL语句。
示例:ODBC.sql ( table, “select * from xyz” )
SQLString字符串支持格式化字符串操作。
示例:
var uid : integer
var type : string
uid := 1
type := “U”
ODBC. sql (dataInput, “SELECT name FROM xyz WHERE uid = %d AND type = ‘%s’ “, uid, type )
如上例中所示,输入的字符串为 “SELECT name FROM xyz WHERE uid = 1 AND type = ‘U’ ” ,即 %d 被 uid 的变量值替换,%s 被 type 的值替换。
字符串格式化符号如下:
s: 字符型
d: 整型
u: 正整数
o: 八进制
x: 十六进制
f: 浮点型
updateTable(SourceData:<table>, SQLTable:<string>, RowNumber:<integer>)
可以根据Plant Simulation中表格的数据更新数据库中表的数据。SourceData为Plant Simulation中表格;SQLTable为数据库中表格名称;RowNumber为数据行号。
示例:ODBC. updateTable ( TableFile, ” Name_of_Table ” , 3 ) //更新数据库中”Name_of_Table “表的的三行的值,替换为TableFile中第三行的值。
高级函数
在数据库进行大规模数据写入时,为了提高写入效率,需要在事务中进行插入处理,数据库事务定义可参见百度百科。在Plant Simulation中的事务操作涉及Transaction, beginTrans, commitTrans, rollbackTrans等函数,具体使用方法可参见帮助文档。