什么是货物盘点组盘

Table组件的方法
数据库访问组件DataSource、Table、DataBase的应用(中)
在本讲中将继续讲解table组件并介绍数据集打开时动态产生的Fields组件,Fields组件虽然没有在组件面板中出现,但却是一个经常使用的组件。
Table组件的方法
移动定位记录指针的方法:
在操作数据集记录时,指针移动是用得比较多的一个功能。常用的方法有四个:First—定位记录指针到第一条记录,Last—定位记录指针到最后一条记录,Next—定位记录指针到下一条记录,Prior——定位记录指针到上一条记录。Delphi还提供了函数MoveBy,可用来一次移动指定的记录条数,比如:Table1.MoveBy(5),指针向前移动5。注意:在移动指针的过程中必须检测EOF、BOF属性,防止指针出界错误。
& 与数据浏览组件的连接方法:
DisableControls方法,切断数据集与数据浏览组件的连接。意义在于:若不切断连接,当用户对数据集中的记录进行修改、遍历等操作时的每次记录指针的移动都会引起浏览组件的显示内容更新,这样屏幕会不断闪烁且处理速度会大大降低。EnableControls方法,&
在对记录的操作进行完毕后恢复连接。Refresh方法,
刷新浏览组件的显示内容。一般当用户对记录做了修改、删除或添加后用此方法更新显示内容。
&& 记录查找方法:
SetKey、GotoKey、GotoNearest方法,SetKey用来将数据表置为查找状态,然后指定查找字段的值,用GotoKey方法查找匹配的记录,GotoNearest方法用于不精确查找,当有精确匹配的记录时,会将指针移到此记录处,若没有找到精确匹配的记录会移到最接近的记录处。注意:必须确保要查找的字段为关键字段或已建立了索引的字段,否则出错;对关键字段或多个索引字段查询时,只能为相邻的字段指定查找值。
FindKey、FindNearest方法,FindKey方法的功能和SetKey、GotoKey两种方法完成的功能一样,简单易用。可用FindKey代替两种方法的组合。可检测FindKey返回值,若找不到匹配记录,则返回值为False
。FindNearest则是不精确查找,和GotoNearest类似。
&数据集记录的更新方法
数据集记录的更新操作主要有:记录的修改、插入、删除等。常用的方法介绍如下:
Edit方法,在对数据集中的记录进行修改前,必须先将数据集设置为编辑状态。当数据集处于编辑状态时,移动记录指针或调用Post方法都可保存修改的记录。Append方法是在数据表的末尾添加一条新记录。当然,此新记录各字段都是空的,用户必须为每个字段赋值。Insert方法是在当前记录指针的后面加一条记录,当用户为新记录名字段赋值后必须用Post方法或隐式的方法调用Post方法保存新增记录。
AppendRecord、InsertRecord方法,这两个方法和Append、Insert类似,它们也是用来在数据表尾部和中间插入一条记录,但这两个方法包含记录字段参数值,并且在完成后隐式地调用Post方法,用户不必再用Post方法保存记录。
语法:AppendRecord([字段1,字段2…]);
InsertRecord([字段1,字段2…]);
例如,对有四个字段(姓名、职称、电话、备注)的记录进行如下操作:
AppendRecord([‘刘明’, ‘工程师’, ‘2343322’])
InsertRecord([‘王明’,NIL,‘2343308’, ‘调出’])
第一行代码添加了一条记录,前三个字段赋值而第四个备注字段没有赋值。AppendRecord则自动用空值填充,可省略的字段只能为后面连续的字段,对不连续字段中不需赋值字段必须用NIL。如第二句代码,职称字段不赋值,不能写成下面这样:
InsertRecord([‘王明’,‘2343308’, ‘98年调出’])
这样会把电话赋给职称字段。
& 对自动赋值字段ID,用上面的方法为ID字段赋值时将不起作用,程序自动为其赋值。
SetFields方法,用来修改记录的字段值,可一次修改当前记录的所有字段或任意个字段值。语法:SetFields([字段1、字段2、…]);调用SetFields方法必须先将数据表置为编辑状态,调用后还要显式调用Post方法保存修改,对不需要修改的字段必须赋值为NIL。
Delete方法,删除当前指针所指的记录,并自动将指针指向下一条记录,同时将数据集置为Browse状态。Post
方法用于记录的更新,当修改、插入记录后将修改保存到数据表。在前面的方法中有介绍和使用。Cancel方法取消当前的操作。在没调用Post方法之前使用,若使用了Post方法则Cancel方法达不到目的。
Fields组件
Fields组件又可称为字段组件、字段对象,它对应着数据表中的字段。它是在打开数据表时动态产生的,并在数据表被关闭时自动消失,Field组件可以控制表中的每一列是否在数据浏览部件中显示以及以何种格式显示等等。通过字段编辑器(Fields
Editor)我们可以建立永久性的Field 列表供Delphi应用程序使用,通过Fields&
Editor建立的永久性的字段会自动地加入到程序库单元的TForm类型定义中
,它们保存在应用程序中,即使数据表的基本结构发生了改变,它也是一直保留着,当然如果修改后的表中使得原来所定义的字段对象不再存在了,Delphi应用程序在运行过程中会给出错误信息。
字段对象的类型
字段对象对应数据库记录中的各个字段,因为数据库记录中的字段有多种数据类型,因此对记录字段可能出现的每一种数据类型都有一个独立的Field类型与之对应。Field的类型如下:
&&&&&&&&&&&&
TBooleanField&&&&&&&&&&
布尔型数据
&&&&&&&&&&&&
TCurrentyField&&&&&&&&&&
货币型数据
&&&&&&&&&&&&
TStringField&&&&&&&&&&&&
字符串数据
&&&&&&&&&&&&
TIntegerField&&&&&&&&&&&&
整数型数据
&&&&&&&&&&TBLOB&&&&&&&&&&&&&&&&
大二进制对象
创建永久性的字段对象
使用Fields
Editor可以为数据表中的字段创建相应的永久性的TField对象,通过它,我们可以定义数据表中各字段的显示属性和显示顺序以及控制字段的取值范围等。下面以一个例子详细说明如何使用Fields
Editor定义字段。
首先在窗体中放置一个Table组件、一个DataSource组件,并设定好Table组件的数据库名称和数据表名称,DataSource组件的DataSet属性设定为Table1,在窗体上再放置一个DBGrid组件用来观察字段定义的实际效果,设定其DataSource属性为DataSource1。激活Table1,在窗体中将看到所有的字段都显示在DBGrid中,这是在没有定义字段对象的缺省状态。
现在我们来定义字段对象。在Table1组件的FieldDefs属性后单击省略号或双击Table1组件都可以打开字段编辑器。在对话框中单击鼠标邮件,从快捷菜单中选择“Add
Fields”将会出现Add Fields对话框。在Add
Fields对话框中列出了当前数据表中所有的字段,从字段列表框中选择你要在DBGrid网格中显示的字段。可以一次选中多个字段,方法是按住CTRL键选择需要的字段,然后单击OK按钮。此时窗体中的DBGrid1中只显示被选中的几个字段值,而不再显示表中其它的字段值。若要改变字段的显示顺序。可在字段编辑器对话框中用鼠标左键直接拖动字段到新的位置即可。&&&
字段对象的主要属性
虽然字段对象是不可见的对象,但它也同样具有属性。在程序设计阶段,我们可以设置它的有关属性,方法是:在字段编辑器(Fields
Editor)中用鼠标单击选择要设置属性的字段,在Object Inspector中就可以修改字段对象的属性。
&Alignment属性,字段值的显示方式:左对齐、右对齐、居中
&DisplayFormat属性,
显示数据格式。比如,对数字可以这样写:#.##,表示显示两位小数。
&DisplayLabel属性,字段在网格部件中显示时的标题,缺省情况下字段的标题就是字段名
&EditFormat属性,限定用户输入字段值的范围。
&FieldName属性,在数据表中对应于该字段对象的字段名称
&Index属性,指定该字段对象在数据集部件中的逻辑位置。
&Name属性,
字段对象的名称,缺省情况下,它是TTable、TQuery部件的名称加上字段的名称。
&ReadOnly属性,说明该字段是否能被修改,当该属性值为True时,该字段不能被修改
&Visible属性, 当该属性值为True时,在与之相连的网格部件中将不显示该字段
字段对象的访问&&&&&&&&&&&&&&
字段对象分为动态字段对象和用字段编辑器创建的永久性的字段对象。
因为动态字段对象是没有自己的名字的,永久性的字段对象有自己的名字,所以对这两种字段对象的访问方法是不一样的。&&&&&&&&&&&&
动态字段对象的访问。
动态字段对象是在数据表打开时动态生成的,每一个字段对象对应于数据表中的一个字段(即记录的一列),Table或Query部件中所有的字段对象都在属性Fields列表中,Fields列表中的字段对象就像数组元素一样拥有自己的索引号,我们可以用这个索引号来访问字段对象。索引号在程序运行时赋值,从0开始。如:Table1.Fields[1].DisplayLabel:='部门名称'。
在程序中通过字段名来访问字段会更加明了,在Table部件中,提供了一个名为FieldByName的方法以便让我们通过列名访问字段对象,如:
Table1.FieldByName('部门名称').Value:='办公室';
永久性字段对象的访问
通过字段编辑器Fields Editor
建立的永久性字段对象的访问相对于动态字段对象的访问要简单一些,在程序中可以直接通过字段对象的名称(即Name属性)进行访问。
例如:Table1Yname.DisplayLabel:='部门名称';这里Yname是数据表中字段的名称。注意:虽然DELPHI支持汉字作为字段名,但还是建议大家字段名用英文字符。对汉字字段名,DELPHI的字段编辑器的NAME属性将不使用汉字,比如数据表中汉字为字段名的字段“部门名称”,DELPHI自动给它的名称为:Table1StringField,而不是“Table1部门名称”。对自动编号和整数型的用汉字作字段名称的字段,自动给予的名称为Table1AutoIncField、Table1IntegerField,如果有多个相同数据类型的汉字字段将给它们编号。
字段对象的读取和赋值
通过字段对象的Value属性,我们可以读取和给字段对象赋值。 如:
Table1.FieldByName('部门名称').Value:='办公室';这条语句给'部门名称’字段赋值。注意:从字段对象中读取字段值时必须要将它赋给与其数据类型相匹配的变量,否则会出错。如果类型不匹配,则要经过一定的转换才能够相互赋值。字段对象的字段值可以转换成以下几种类型的数据:&&&
&&&&&&&&&&
AsString:&& 将字段值转换成字符串数据
&&&&&&&&&&
AsBoolean:& 将字段值转换成布尔型数据
&&&&&&&&AsDateTime:
将字段值转换成日期时间数据
&&&&&&&&&&
AsFloat:&&&
将字段值转换成数值型数据
&&&&&&&&&&
AsInteger:& 将字段值转换成整数型数据
比如将“周期”这个数值字段的值在一个文本框中显示出来:
Edit1.Text:= Table1.FieldByName('周期').Value;
上面这条语句类型不匹配,需要转换,因为Edit1.Text 是文本,而库存是数值。需改写如下:
Edit1.Text:= Table1.FieldByName('周期').Value.AsString;
计算字段对象的建立。
根据需要,有时要在数据表内现有字段的基础上增加一些自定义的字段,这些字段并不是数据表中实际存在的字段,它们常常是根据数据表中的其它的字段动态地计算出来的,这些字段被称为计算字段。计算字段是在编程中常用的一个手段,它在程序运行时生成,在程序结束时消失,不会保存在数据表中占用空间。
下面介绍这个字段的创建方法:
打开字段编辑器Fields Editor,在Fields Editor窗口中,单击鼠标右键,选择“New
Fields”菜单项,弹出New Fields对话框。在New
Fields对话框中,输入名称如“total”并设定好数据类型,单击“Ok”按钮,关闭New Field对话框。当Fields
Editor 窗口重新出现时, 注意新的字段“total”已经出现在Fields列表框中。
&建立了计算字段对象,下面需要让其显示我们所需的数据。在Object
Inspector窗口中,选择Table1部件的Event页,双击OnCalcField事件,为Table1OnCalcField编写事件处理过程如下:&&&
&&& procedure
TForm1.Table1OnCalcFields(DataSet:TDataSet);
& With table1 Do
& FieldByName('total’).Value:=
FieldByName('库存').Value* FieldByName('单价').V
字段对象的事件和方法较少使用,这里就不介绍了。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。亚马逊意外错误报歉,由于程序执行时,遇到意外错误,您刚刚操作没有执行成功,请稍后重试。或将此错误报告给我们的客服中心:推荐您,确认您的操作无误后,再继续其他操作。您可以通过亚马逊,获得更多的帮助。第三方登录:相关文章推荐:
11g ocr asm修改冗余方式
乙方的人在安装grid infra的时候把所有的磁盘都划入一个磁盘组,然后在建库的时候又把库也建在了这个磁盘组。
这种做法会不会给以后带来隐患?如果有隐患,有什么解决办法吗?谢谢!
阅读(2065) 回复(6)
其他文章推荐
ITPUB官方微博:
Oracle10g,
asm中的磁盘冗余策略比较简单 :外部冗余、标准冗余和高度冗余
比如说对于标准冗余(Normal Redundancy),asm要求该磁盘组至少要拥有两个failure磁盘组,即提供双倍镜像保护,对于同一份数据(asm中镜像单位
不是磁盘,也不是块,而是一种AU的单位,该单位大小默认是1M)将有主从两份镜像,并且asm通过算法来自动确保主、从镜像不会存在于同一份failure磁
盘组,这样就保障了就算整个failure磁盘组都损坏,数据...
阅读(3586) 回复(7)
本帖最后由 oracle_mao 于
09:11 编辑
1 概述1.1 环境 在安装asm磁盘时采用了extenrnal的冗余模式,现在需要将冗余模式改为normail的冗余模式。1.2 三种冗余模式1.2.1 EXTERNAL模式 External redundancy(1ocr and no copies)An external redundancy disk group requires a minimum of one disk device.The effective disk space in an external redundancy disk group is the sum of the disk space in all of its ...
阅读(5882) 回复(16)
在虚拟机上安装RAC,使用裸设备+asm管理磁盘组,但是在创建的时候不小心使用到了normal Redundancy,一下子就用了两个磁盘,由于是用来学习用的,不想搞什么冗余了,想修改成external Redundancy模式,请问大家怎么修改冗余属性?
阅读(6180) 回复(10)
最近接手一个库是11gR2的,ocrcheck发现ocr是放在asm磁盘上的,记得11g以前ocr不是放裸设备就是ocfs,现在11gr2 ocr可以放asm了,不小的改进.
一个疑问难道CRS启动是在asm后启动吗? 要不怎么能用得到asm磁盘呢?
[rac1@test ~]$ ocrcheckStatus of Oracle Cluster Registry is as follows :
Total space (kbytes)
Used space (kbytes)
阅读(936) 回复(6)
突然想到个问题,如果asm磁盘组只有一个asm磁盘,选择了normal冗余。
这样做是不是没有实际意义?因为一块盘坏了,冗余也没了。
而且如果选择normal冗余,磁盘组中的磁盘数量是不是最好是偶数?如果是奇数冗余会怎么做?
不知道实际当中大家是怎么用的。
阅读(2215) 回复(12)
阅读(240) 回复(0)
查看votedisk信息
[root@rac1 bin]# ./crsctl query css votedisk
File Universal Id
File Name Disk group
-----------------
--------- ---------
649b109da77a4f0cbf4b922be1b44312 (ORCL:VOL1) [GRIDDG]
Located 1 voting disk(s).
查看ocr信息
[root@rac1 bin]# ./ocrcheck
阅读(930) 回复(0)
11g R2替换ocr盘:
检查ocr盘信息:
[root@s2-11g grid]# ocrcheck -config
Oracle Cluster Registry configuration is :
Device/File Name
[root@s2-11g grid]# more /etc/oracle/ocr.loc
ocrconfig_loc=+ocrVOT
local_only=FALSE
新添加替换的ocr磁盘组:
[root@s2-11g grid]# ocrconfig -add +NocrVOTE
阅读(2700) 回复(0)
阅读(30) 回复(0)
阅读(30) 回复(0)
盛拓传媒:
北京皓辰网域网络信息技术有限公司. 版权所有
北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证:编号(京)字第1149号
ITPUB推荐文章解答你所有技术难题

我要回帖

更多关于 货物组件配置 的文章

 

随机推荐