第十五章内置数据表_第1页
第十五章内置数据表_第2页
第十五章内置数据表_第3页
第十五章内置数据表_第4页
第十五章内置数据表_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE376第二部分用户指南第十五章内置数据表PAGE375PAGE365第十五章内置数据表CAREER的内置数据表类似于各种传统关系数据库中的数据表,具备:创建、删除、定位、更新、保存、读出记录及条件查询、装载记录等功能。内置数据表使用方便,运行效率高而对系统资源消耗较少。对于很多需要一定管理功能的监控项目,使用CAREER内置数据表就可不必捆绑各种关系数据库。

15.1定义内置数据表首先介绍一下有关概念。内置数据表:类似于传统关系数据库(DBMS)中的数据表,内置数据表是一张二维表,每列都有自己的名称,称作列名或字段名,行也称作记录。过滤条件:即查询条件,是由表字段名及其他条件组成的布尔表达式。在Draw的导航器中双击“数据表管理器/内置数据表”,出现“数据表定义”对话框:该对话框由两页组成:“表格初始内容”和“过滤器定义”。“表格初始内容”在输入框“名称”中输入内置数据表名称,但要注意,表名不能与已有的图形对象名称重名。在“列名”一行中指定列名及每列的数据类型。列名可以由字母、数字、汉字以及“$”、“_”等组成。数据类型包括:整型、实型、字符型、日期型等组成。在下面各行中可以输入记录内容。通过按钮“增加一行”、“插入一行”、“删除一行”来增加、插入和删除行。“过滤器定义”在过滤条件中输入限制条件,该限制条件为一布尔表达式,在“定位”、“删除”、“装载”和“选择”内置数据表时将会用到该过滤条件。装载表格时可以指定按某一关键字进行排序,可以指定升序或降序。指定好过滤条件和排序规则后,点击“增加”按钮将过滤条件加入下面的列表框中。对于列表框中的内容,可以通过“修改”按钮进行修改。也可以通过“删除”按钮删除某一条件。字段的引用方法是在在字段名称前加前缀“this.”,如“this.no”、“this.Weight”。请参考下图:

15.2内置数据表绑定内置数据表绑定过程就是将内置数据表中字段与CAREER变量建立对应关系的过程。若要绑定内置数据表,双击Draw导航器“数据表管理/数据表绑定”进入“数据表绑定对话框”,如下图所示为绑定表“MyBindTab”内容:

在“数据表绑定名称”中指定绑定表的名称,字段名与类型必须与内置数据表中的字段相一致。15.3相关函数CAREER提供一组对内置数据表进行操作的相关函数。可完成的操作包括:1、打开内置数据表(TableOpen):在进行内置数据表操作前,首先必须打开内置数据表。2、装载内置数据表(TableLoad):从指定文件装载内置数据表。3、插入记录(TableInsert):向内置数据表中插入记录。4、删除记录(TableDelete):按照过滤条件删除记录。5、定位记录(TableSeek):定位到符合过滤条件的第一个记录,该记录称为当前记录。6、修改当前记录(TablePut):用CAREER变量的当前值修改数据库当前记录的对应字段。变量与字段的对应关系由绑定表中所规定。7、读出当前记录内容(TableGet):用数据库当前记录的字段值修改CAREER变量值。变量与字段的对应关系由绑定表中所规定。8、保存内置数据表(TableSave):将对表的各种操作保存到文件。9、关闭内置数据表(TableClose):内置数据表操作完毕要调用该函数,以便其他人对其进行操作。10、查看内置数据表(TableSelect):如果想显示内置数据表的内容,可以建一表格控件,调用表格控件函数GridBind将该表格控件与内置数据表绑定,表格中所看到的内容与内置数据表中的内容完全一致。如果想要有条件的查看内置数据表,可以使用函数TableSelect,该函数中可以指定过滤条件,也可以查看部分列。下具体说明各个函数的语法。注意:内置数据表相关函数完成与内置数据表对象相关的一组操作,因此,在调用时必须指明是哪一个内置数据表,通常用内置数据表的对象名称来指定。先为内置数据表命名,然后使用“#对象名称.函数名称(参数)”格式来调用。如:“#Mytab.Open(0,-1)”。Mytab为内置数据表的对象名称。

1、TableOpen(nAccessMode,nDataSource)说明打开内置数据表,在进行内置数据表操作前,首先必须打开内置数据表。参数nAccessMode为整型,为打开方式,0,表示允许读写,1表示只读。nDataSource为整型,为数据源序号,-1表示内置数据表在本地。注意:数据源序号与数据源定义列表中所看到的顺序相同,序号从0开始。其他内置数据表操作中所用到的文件名称,都在该数据源所指定的机器上。示例#Mytab.TableOpen(0,-1);以可“读写”方式打开本地内置数据表。2、TableInsert("BindTableName")说明向内置数据表中插入一条记录。参数BindTableName:绑定表名称。,字符串类型。绑定表指定了插入记录中每一字段与CAREER变量的对应关系。对应的CAREER变量的当前值将作为插入记录中对应字段的值。如果绑定表名称为空,将插入一条空记录。注意插入的浮点数的小数位数决定于绑定变量的数值范围,即在变量定义时指定的最大/最小值。示例1)、#Mytab1.TableInsert(""); 插入一条空记录。 可以通过变量#Mytab1.no,#Mytab1.weight,#Mytab1.time来修改新插入记录各字段的值。2)、Mytab1.TableInsert("MyBindTab"); 插入一条记录。 例如,对于“15.2”节中的绑定表“MyBindTab”,CAREER变量train_no的当前值为1,oil_weight的当前值为150.0,load_time值为“2001/8/415:30:28”,此时插入一个记录后,各字段的值即为:no:1,weigth: 150.0,time: 2001/8/415:30:283、TableDelete(FilterNumber)说明删除记录。从内置数据表中删除符合过滤条件的记录。参数FilterNumber过滤条件号,为整型。只有符合该条件的记录,才会被删除。示例

#Mytab.GridDeleteRecord(2);//将装车日期为2001/7/260:0:0以前的记录从文件中删除。 4、TableSeek(FilterNum)说明查找符合条件的记录,从当前位置开始查找,并将第一条符合条件的记录作为当前记录,如果没有找到,再回头从首记或尾记录录开始查找。参数FilterNumber过滤条件号,为整型。将查到的符合该条件的记录作为当前记录。如果过滤条件中排序为“升序”,将从前往后查找,若为“降序”将从后往前查找。示例#Mytab.SeekTable(1);//将定位到第3条记录。 5、TablePut("BindTableName")说明修改当前记录。用CAREER变量的当前值修改数据库当前记录的对应字段。变量与字段的对应关系由绑定表中所规定。调用该函数前应当先调用SeekTable定位到要更新的记录。参数BindTableName:绑定表名称,字符串类型。绑定表指定了要修改的记录中每一字段与CAREER变量的对应关系。执行该函数后将用对应的CAREER变量的当前值来修改当前记录对应字段的值。示例#Mytab.SeekTable(0);//定位到第一条记录,因为其no等于1#Mytab.TablePut(“MyBindTab”);//将第一条记录对应字段no, Weight,time分别用CAREER变量train_no,oil_weight,load_time的当前值来更新。6、TableGet("BindTableName")

说明

读出当前记录内容。执行该函数后将用数据库当前记录的字段值修改CAREER变量值。变量与字段的对应关系由绑定表中所规定。调用该函数前应当先调用SeekTable定位到要检取的记录。

参数BindTableName:绑定表名称,字符串类型。绑定表指定了记录中字段与CAREER变量的对应关系。将用对应的CAREER变量的当前值来修改当前记录对应字段的值。示例#Mytab.SeekTable(0);//定位到第一条记录,因为其no等于1#Mytab.GetFromToTable(“MyBindTab”);//将第一条记录对应字段的值分别赋到CAREER变量no,Weight,time中。Mytab为内置数据表名称。7、TableLoad(FileName)说明从指定的文件中装载内置数据表,内置数据表原有内容将被删除。不要频繁调用,以免不必要的增加系统开销。参数FileName字符串类型,文件路径名。可以是绝对路径,也可以为相对路径。缺省路径名为应用目录下的UserDat子目录。文件所在机器参见TableOpen中数据源的说明。示例

#Mytab.TableLoad(“MyFile.dat”);

8、TableSave(FileName)

说明保存内置数据表,将对表的各种操作保存到文件。要想使操作保存到内置数据表必须调用该函数。建议完成一系列操作后调用该函数,不要频繁调用,以免不必要的增加系统开销。参数FileName字符串类型,文件路径名。可以是绝对路径,也可以为相对路径。缺省路径名为应用目录下的UserDat子目录。文件所在机器参见TableOpen中数据源的说明。

示例

#Mytab.TableSave(“MyFile.dat”);

9、TableClose()

说明

关闭内置数据表,内置数据表操作完毕要调用该函数,以便其他人对该内置数据表其进行读写操作。

参数无。

示例

#Mytab.TableClose();

10、TableSelect(FilterNum,GridObjName)

说明

将符合条件的记录选入表格中。参数

FilterNum在内置数据表中定义的过滤条件号,为整型。GridObjName为表格对象名称,字符串类型。但要注意,已经与内置数据表捆绑的表格不能再作为选入目的地。如果表格中的列数少于文件中的列数,只显示表格中有的列。如果表格中有多余的列,其内容将为空。示例

#Mytab.TableSelect(0,“MyGrid”);

//Mytab为内置数据表名称。15.4表格控件表格控件是CAREER提供的一种Windows控件(关于控件的内容请参考十四章),它配合内置数据表或SQL数据表模板使用。通过表格控件,可以在CAREER画面上显示、控制内置数据表或SQL数据表。表格控件是一张二维表,由表头与记录两部分组成。表头下面每一行为一个记录,记录由若干字段组成。15.4.1定义表格控件选择菜单命令“插入/Window组件/表格”,在当前窗口中插入一个表格控件,双击该控件出现表格设置对话框:

该属性框由三页组成:“表格初始内容”、“过滤器定义”和“外观”。“表格初始内容”在“列名”一行中指定及每列的名称,列名可以由字母、数字、汉字以及”$”、”_”等组成。注意:当表格控件与内置数据表配合使用时,如果用函数GridBind与内置数据表进行了绑定,表格控件的内容将与内置数据表完全一致,表格控件中定义的“列名”将被忽略。如果内置数据表用函数TableSelect进行查询,并将查询结果显示到表格控件时,内置数据表将按照表格控件的“列名”对应自己的“字段名”来显示数据,“列名”与“字段名”一致时,则在该列显示该字段的数据。在“类型”一行中指定数据类型,包括:整型、实型、字符型、日期型等。可以在下面的行中录入一些初始数据。可以通过按钮“增加一行”、“插入一行”、“删除一行”来增加行、插入行和删除行。“过滤条件”在该页中指定限制条件,该限制条件为一布尔表达式。装载表格时可以指定按某一关键字进行排序,可以指定升序或降序。指定好过滤条件和排序规则后,点击“增加”按钮将过滤条件加入下面的列表框中。对于列表框中的内容,可以通过“修改”按钮进行修改。也可以通过“删除”按钮删除某一条件。在书写过滤条件的表达式时可以引用列名,引用的方法是在列名前加前缀“this.”,如“this.no”、“this.Weight”。过滤条件将用于表格相关函数,如:LoadTable、DeleteRecordFromFile等。

“外观”在该页中可以指定表格文本的背景色、前景色及显示字体。

列宽指定选中表格控件,单击右键,选择右键菜单“编辑”,这时控件变为可编辑状态。可以通过拖拽表头的列的分隔线来调整列宽。操作表格控件的内容可以在组态时输入,也可以在运行时动态追加。可以定义过滤条件以实现简单的查询。可以指定按某一关键字排序。可以按条件删除记录。可以直接引用列名来指定过滤条件。表格控件支持的快捷键:Ctrl+N,增加一行,新增行与其前一行内容相同。Ctrl+C,拷贝一行,将当前行存入粘贴板。Ctrl+V,将粘贴板内容复制到当前行。Ctrl+X,删除一行,并将该行存入粘贴板。Ctrl+I,在当前行之上插入一空行。 注意:只有含有表格控件的窗口打开时,才可以对表格控件进行操作,如果想在窗口未打开时,也能对其操作,建议使用数据表。表格控件可以与数据表配合使用,数据表保存数据,表格控件对其内容进行显示。15.4.2相关函数注意:表格控件相关函数完成与表格控件对象相关的一组操作,因此,在调用时必须指明是哪一个表格控件,通常用表格控件的对象名称来指定。先为表格控件命名,然后使用“#对象名称.函数名称(参数)”格式来调用。如:“#Tab1.GridLoad("FileName.txt",0);”,其中“Tab1”为表格控件的对象名称。

1、GridOpen(nAccessMode,nDataSource)说明打开表格控件,在对远程内置数据表操作前,首先必须打开表格控件。以便建立远程连接。不执行该操作,数据源默认为本地。参数nAccessMode为整型,为打开方式,0,表示允许读写,1表示只读。nDataSour为整型,为数据源序号,-1表示内置数据表在本地。注意数据源序号与数据源定义列表中所看到的顺序相同,序号从0开始。其他数据表操作中所用到的文件名称,都在该数据源所指定的机器上。示例#Tab1.GridOpen(0,-1);以可“读写”方式打开表格控件。2、GridLoad(FileName,FilterNumber)说明装载表格控件。从指定的文件中装载表格控件,文件中的记录将按条件”Condition”过滤。表中原有内容将被删除。参数FileName,字符串类型,文件路径名。可以是绝对路径,也可以为相对路径。缺省路径名为应用目录下的UserDat子目录。FilterNumber,过滤条件序号,为整型。只有符合该条件的记录,才会被装载。过滤条件在表格属性中定义。注意:如果表格中的列数少于文件中的列数,只显示表格中有的列。如果表格中有多余的列,其内容将为空。示例:假设有一份装车记录单no为车号,time为装车时间,Weight为装车量。#tab1.GridLoad(“MyTab”,0);将车号为5,装车量大于100(吨)的记录装入表格。#tab1.GridLoad(“MyTab”,1);将装车日期为2001/7/260:0:0以后的记录装入表格。#tab1为表格对象名称(‘#’为对象名标识)。3、GridSave(FileName)说明保存表格。将表格的数据保存到指定的文件中。 文件格式第一行为表头,其后每一行为一个记录,每一行以回车换行符结束(/r/n)。字段间一制表符分隔。参数 FileName字符串类型,文件路径名。可以是绝对路径,也可以为相对路径。缺省路径名为应用目录下的UserDat子目录。 示例 #tab1.GridSave(“MyTab2”);#tab1为表格对象名称(‘#’为对象名标识)。 4、GridDeleteRecord(FileName,FilterNo)说明删除记录。从指定的文件中删除符合条件”Condition”的记录。 参数 FileName,字符串类型,文件路径名。可以是绝对路径,也可以为相对路径。缺省路径名为应用目录下的UserDat子目录。 FilterNo,过滤条件号,为整型。只有符合该条件的记录,才会被删除。 示例 参见LoadTable中示例说明。 GridDeleteRecord(“MyTab”,2); 将装车日期为2001/7/260:0:0以前的记录从文件中删除。 注意,是从文件中删除记录,而不是从表中删除记录。5、doubleGridGetColSum(FiledName)说明求某一列的合计值。 参数 FiledName,列名称,为字符串类型。返回值为列的合计值。示例 参见LoadTable中示例说明。sum=#tab1.GridGetColSum(“Weight”)#tab1为表格对象名称(‘#’为对象名标识)。6、intGridGetRowCount()说明取得表格中的记录个数 参数 返回值为记录个数,整型。示例 参见GridLoad中示例说明。 count=#tab1.GridGetRowCount() #tab1为表格对象名称(‘#’为对象名标识)。7、GridInsertLine(BindTableName)说明插入一行。 参数 BindTableName:绑定表名称,为字符串类型。绑定表指定了插入行中每一列与CARE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论