收藏 分享(赏)

紫金桥数据转储1.docx

上传人:scg750829 文档编号:7185997 上传时间:2019-05-09 格式:DOCX 页数:17 大小:156.91KB
下载 相关 举报
紫金桥数据转储1.docx_第1页
第1页 / 共17页
紫金桥数据转储1.docx_第2页
第2页 / 共17页
紫金桥数据转储1.docx_第3页
第3页 / 共17页
紫金桥数据转储1.docx_第4页
第4页 / 共17页
紫金桥数据转储1.docx_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、如何与关系数据库通信如何与普通数据库通信 紫金桥 实时数据库系统可以与普通关系数据库(DBMS)通讯,将紫金桥实时数据库系统的实时数据或历史数据保存到关系数据库中;也可以将关系数据库中的数据导入到紫金桥实时数据库系统。有两种方法实现两者通信,一是通过 ODBCGATE 转储程序,该程序可以实现实时数据的周期性转储或历史数据到关系库的存储。另一方法是通过紫金桥系统提供的的 SQL 函数实现与关系库的通信。前者比较简单,后者比较灵活,但是实现比较复杂。一. ODBCGATE 转储数据ODBCGATE 是紫金桥的实用程序之一,支持 Microsoft 的开放数据库互连(Open Database C

2、onnectivity-ODBC),能够访问其它支持 ODBC 接口的 DBMS 系统或数据文件,它可以实现以下几个功能: 将 DB 中的实时数据传送到 DBMS 中;或者将 DBMS 中的数据记录更新到 DB 中。 将 DB 中的 历史数据转储到 DBMS 中去。 运行转储程序1) 启动菜单运行“紫金桥实时数据库系统/ODBCGATE“。2) 在本机设置中指定自动启动。执行文件位于安装目录,文件名为 ODBCGATE.EXE。历史转储ODBCGate 的历史转储,可将 DB 中某段时间的历史数据一次性转储到 DBMS 中去。在 ODBCGate 中可以定义将 DB 中哪些点装载到 DBMS

3、中的哪个表中,同时还可以指定时间段和采样周期等。每个采样点的历史数据被转储到 DBMS 中多个记录中,表结构如下:字段名 类型 长度日期时间 日期型 点名 字符串 32数值 字符串 32历史转储组态1.激活菜单“文件(F)/历史转储组态”,进入“历史数据转储组态”对话框对话框中的组态信息由三个属性页组成:“数据库”属性页、“时间”属性页以及“点定义”属性页。“数据库”属性页单击标签名“数据库”切换到“数据库”属性页。名称:历史数据转储名称,系统可以同时进行多个历史数据转储,每个转储都有一唯一的名称。数据库名: 数据库连接描述信息,可以单击连接按钮,选择数据源,这时将出现如下对话框:注意只有数据

4、源名空时才出现该对话框。选择要进行连接的数据源,单击“确定”按钮返回(连接 ODBC 接口程序的数据源在 ODBC 管理器中创建与配置,可以在“控制面板”程序组中启动 ODBC 管理器程序)。此时,如果连接成功,系统会自动将连接 DBMS 的连接命令加入到“数据库/名称”输入项内。数据表名:此项用于指定 DBMS 中要创建的数据表的名称。在输入项“名称”内可直接输入数据表的名称。如果已经与 DBMS 正确建立连接,点击下拉按钮,列表框会列出 DBMS 中可访问的数据表名称。可以从中选择一个表名作为要进行转储的数据表,若想删除数据表,则单击“删除”按钮。“时间”属性页单击标签名“时间”切换到“时

5、间”属性页。在“时间”属性页中指定关于历史数据转储的各种时间参数。开始日期:用“年”、“月”、“日”表示。开始时间:用“时”、“分”、“秒”表示。时间长度:单位可以为:日、时或分。采样间隔:历史数据的采样周期。单位可以为:时、分或秒。“点定义”属性页单击标签名“点定义”切换到“点定义”属性页。在“点定义”属性页中指定 DBMS 数据表要记录的点。名称:记录到数据库中的名称,一般与点名相同。点名:实时数据库中的点名。类型:数据类型。长度:字符个数,只对字符串类型有效。当指定了名称、数据类型、对应的 DB 点、参数名后,然后单击“增加”按钮。通过“增加”,“删除”,“修改“等按钮可以增加新的点,或

6、修改删除已有的记录。单击“导出“可以将表格中内容导出导文本文件中。单击“导入“可以将文本文件中的内容导入到表格中。注: 文本文件为制表符格式,可以在 Excel 中编辑,然后导入。组态完毕后,单击“历史数据转储组态”对话框“确定”按钮。执行历史转储当完成了历史转储组态后,激活菜单命令“文件(F)/开始历史转储”,开始历史转储过程。此时系统出现进度条以提示数据转储的过程。浏览历史转储结果如果想查看 DBMS 中转储数据的结果,可以激活菜单命令“查看/浏览历史库”,ODBCGate 自动显示查询到的 DBMS 数据记录)。二、实时转储ODBCGate 的实时转储完成 DB 与 DBMS 之间的实时

7、数据转储。ODBCGate 的实时数据转储功能用来建立紫金桥实时数据库 DB 与 DBMS 之间的实时数据连接。而且数据传送是双向的,不仅能够将 DB 的实时数据装载到 DBMS 中,还可以将 DBMS 中各字段的数值读入 DB。实时转储可以同时建立与多个 DBMS 的多个数据表的实时连接。每个实时连接对一名称。ODBCGate 通过名称来管理多个连接的多个任务,连接的数量不受限制。在利用 ODBCGate 进行实时转储时,要定义将 DB 中哪些点装载到哪个 DBMS 中的哪个表中。每个采样点的实时数据被装载到 DBMS 中后占据一个(更新方式)或多个记录。组态1. 激活菜单“文件(F)/实时

8、数据转储组态”,进入“实时数据转储定义”对话框。在此对话框中,可以增加一个访问名、修改或删除一个已建访问名。ODBCGate 通过访问名以区别连接不同的 ODBC 接口和不同的数据表,定义的访问名标识必须唯一。对话框中“数据库”和“点定义” 属性页与历史转储相同,下面介绍一下“其它” 属性页。数据流向:此选择项指定在系统运行时是由 DB 的数据实时更新到 DBMS,还是由 DBMS 中的数据记录实时更新到 DB 的数据。更新周期:用于指定当前访问名进行实时数据转储的执行周期。单位可以是日、时、分、秒。更新周期最快不能小于 5 秒。修正时间:相对于零点偏置时间,该值必须小于更新周期。如周期为一天

9、,修正时间为 1 小时。那么每日 1 时转储一次。如周期为 1 小时,修正时间为 10 分。那么每小时 10 分转储一次。如果在“数据流向”中选择“实时库到管理库”,那么 ODBCGate 更新 DBMS 中数据记录时将有两种方式:更新方式和插入方式。对于更新方式,对应一个 DB 点,ODBCGate 仅在 DBMS 中维护一条记录,并周期性地更新这一记录的数据;对于插入方式,则没插入一次,增加一条记录,以“流水帐”方式记录 DB 中实时数据变化的过程。如果在“数据流向”中选择“管理库到实时库”,那么 ODBCGate 用 DBMS 数据记录更新 DB 数据仅有一种方式:更新方式。插入方式选择

10、项将被禁止。此时,ODBCGate 周期性地访问 DBMS 中数据记录,并用获取的数据记录更新 DB 中对应的点参数值。如果 DBMS 数据表中对应 DB 中某点参数的字段名数据记录不唯一,那么 ODBCGate 将不能保证用于更新的数据记录是想要更新的记录,因此, DBMS 管理员在定义数据表字段属性时,最好将对应 DB 点参数的字段名定义为 unique(记录唯一)属性,以防止产生错误数据。如果在“存储方式”中选择了“插入方式”,则需要指定 DBMS 保存数据记录的时间长度。最短的时间为 1 天。比如,当指定了保存天数为 10 天时,ODBCGate 将维护 DBMS 中数据表中的数据记录

11、数不会超出 10 天内所能生成的记录数。运行实时转储当完成了实时转储组态后,激活菜单命令“文件(F)/运行实时转储”,开始实时转储过程。浏览实时转储结果若要查看 DBMS 中实时数据转储结果,可以激活菜单命令“查看/浏览实时库”,出现“选择访问名”对话框,在上面选择要查看的转储访问名,但击“确认”按钮。系统参数单击“文件/系统参数“菜单,出现如下对话框,在此指定是否使用多线程,每次运行时是否进行表结构检查,以及初始是否进入运行态等。主机名单击“文件/主机名“菜单,出现如下对话框,在此可以指定远程实时数据库名称。二.SQL 函数SQL(结构化查询语言)是关系数据库使用的用来检索、更新和管理数据标

12、准语言。开放式数据库互连(ODBC)是 Microsoft 的标准 API。RealInfo 通过 ODBC API 访问 SQL 数据源,并为之封装了多种数据库访问函数即 SQL 函数,用户通过这些函数可以创建、删除数据表;向数据表中插入、更新记录、定位记录、读取记录内容,从而实现 RealInfo 与关系数据库间的双向传送。1.与关系数据库建立连接要与关系数据库打交道,首先要调用函数 SQLConnect 与其建立连接。SQLConnect( ConnectID, SourceDesc) 说明 与指定的数据库建立连接。如果指定的远程数据库不存在,该函数可能要等待几十秒。参数 Connect

13、ID 整型,数据源标识,为返回值,该值将用于其它后续 SQL 函数。 SourceDesc 字符串,数据源描述。数据源描述可以通过脚本中工具条 按钮“SQL 连接“按钮得到。 注意事项 数据源使用完后,使用 SQLDisconnect 来断开连接 。示例 SQLConnect(ConnectID,“DSN=abc;DBQ=D:0abc.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;UID=admin;“);2. 创建数据表创建数据表除了要定义表名称外,还要定义数据表的结构,即数据表有哪些字段,每一字段的数据类型,是

14、否为关键字,数据长度等信息。字段的多少不定,这些信息内容较多,因此我们通过单独的配置程序定义,称之为“表模板”。表模板定义在导航器中选择“画面/数据表管理/表模板”将出现如下所示对话框:对话框各项说明:名称输入表模板名称,名称可以是英文字母、“_“,或数字的组合,也可以为汉字,但是不能为纯数字。最大长度为 32 个字符。增加添加一行。 删除删除表格模板中当前行。 插入在当前行之上插入一行。保存保存表格模板内容。表格各列说明字段名输入列名。字段名最多为 31 个字符。类型选择数据类型。索引选择索引类型。“唯一”,该列内每一值必须为唯一的。 “非唯一”,该列内的值不必是唯一的。 “无”,没有索引。

15、 允许空值选择是否允许有空值。3. SQLCreateTable建立好表模板后,通过函数 SQLCreateTable 建立数据表,该函数说明如下:SQLCreateTable(ConnectID,TableName,TemplateName) 说明 使用表模板在数据库中创建数据表 。参数 ConnectID 数据源标识,由 SQLConnect 调用返回。 TableName 字符串类型,新建的数据表名称。 TemplateName 字符串类型,使用的表模板名称。 注意事项 数据表模板必须在 SQL 管理器中事先建立。表模板中字符串长度一定要合适。示例 SQLCreateTable(Conn

16、ectID,“Mytab“, “TMPL1“);4. 插入记录与数据库通信,最重要的事情就是向数据库中插入记录,插入记录就要指明记录中每个字段的值,值的来源是实时数据库,各字段的值是如何与数据库中的点或变量对应的呢,这是通过绑定表来定义的。绑定表规定了数据表中的字段与紫金桥的变量之间的对应关系,插入或更新记录时各字段将取对应的变量的当前值, 从关系数据库读取数据将更新对应的 RealInfo 变量的当前值,即其规定的是一种双向数据传送变量与字段间的对应关系。绑定表定义在导航器中选择“画面/数据表管理/绑定表”将出现如下所示对话框:对话框各项说明:名称输入绑定表名称,名称可以是英文字母、“_“,

17、或数字的组合,也可以为汉字,但是不能为纯数字。最大长度为 32 个字符。增加添加一行。 删除删除绑定表中当前行。 插入在当前行之上插入一行。保存保存绑定表内容。表格各列说明字段名输入列名。字段名最多为 31 个字符。类型选择数据类型,一般要与表模板中定义相同。变量名输入与该字段关联的变量名称。5. SQLInsert 函数向关系数据库插入数据,要调用函数 SQLInsert,函数说明如下:SQLInsert(ConnectID, TableName, BindName) 说明 将绑定表中指定的变量的当前值插入到数据表中。 参数 ConnectID 整型,数据源标识,由 SQLConnect 调

18、用返回。 TableName 字符串类型,为数据库中数据表名称。 BindName 字符串类型,所使用的绑定表名称。 注意事项 TableName 为数据库中数据表名称,而不是表模板名称。 示例 SQLInsert(ConnectID,“Mytab“, “BIND1“);更新数据,可以调用函数 SQLUpdate6.查询通过 SQLSelect 函数可以对数据库内容进行查询,查询结果可以通过 SQLDisplay 显示,通过函数SQLStatistics 可以对查询结果进统计。SQLFirst,SQLLast,SQLPrev, SQLMoveTo 等用于移动光标位置。SQLSelect(Con

19、nectID,TableName, WhereExpr) 说明 选择数据表中符合条件的记录,该函数返回一数据集。可以使用如下函数 SQLFirst(),SQLLast(),SQLNext(),SQLPrev()定位记录。 参数 ConnectID 数据源标识,由 SQLConnect 调用返回。 TableName 字符串,数据表名称。 WhereExpr 字符串,选择表达式,只有符合该条件的记录被选中。条件中可以指明按哪个字段排序,关键字为 ORDER BY;以及升序还是降序,关键字为 DESC/ASCE。示例 SQLSelect(ConnectID,“Mytab“,“);选择所有记录。 S

20、QLSelect (ConnectID,“Mytab“,“TEMP =0 ORDER BY NAME DESC“);只选择字段 TEMP 大于等于 0 的记录。 并按 NAME 降序排列。SQLDisplay(RowCount) 说明 显示由 SQLSelect()选择的数据集中的记录。参数RowCount 每屏记录数。 示例 SQLDisplay(20); 显示从当前光标位置以下 20 条记录。7. 读取关系库数据通过 SQL 函数除了可以向关系库数据插入数据外,也可以从关系库数据中读取数据,函数 SQLGet用于读取关系库数据的数据。该函数说明如下:SQLGet(BindName )说明从

21、当前数据表中当前记录(当前光标位置)获取数据。当前记录行中各字段的值将赋给对应的紫金桥变量,字段与紫金桥变量的对应关系由绑定表 BindTableName 决定。如果当前记录集中有多条记录,检取的记录为当前记录,为了检取其他记录,可以通过 SQLNext,SQLPrev 重新定位当前记录,然后再调用 SQLGet。参数BindName 字符串,使用的捆绑表名称。注意:调用该函数前,必须在前面调用过 SQLSelect。示例SQLSelect (ConnectID,“MyTab1“,“A = 50“);SQLFirst();SQLGet(“Bind1“);8. 查看调试信息通过 SQLGetLastError(ErrorDesc)可以得到上次 SQL 语句的执行情况。参数 ErrorDesc 为错误描述信息,可以在画面中显示。此外通过 SQL 函数还可以删除数据表,删除记录,对数据库内容进行统计等。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报