TBytesField
TVarBytesField 字符串 不允许 不允许 不允许 不允许
TBlobField
────────────────────────────────────
TMemoField 二进制 不允许 不允许 不允许 不允许
TGraphilField 字段
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
上述这些转换函数可以在任何与字段部件有关的表达式中使用只要是表中允许进行转换的数据类型这些转换函数其实是当做字段部件的属性来使用的它们可以出现在赋值语句的两边例如下面的程序代码是将字段部件TableMyField的字段值转变成字符串类型的数据并将它赋给编辑框Edit的Text属性
EditText := TableMyFieldAsString;
而下面的代码是进行相反的操作它将编辑框部件Edit的Text属性值以字符串的形式赋给字段TableMyFieldTableMyField通过AsString接受字符串并将其转变成自身的数据类型
TableMyFieldAsString :=EditText;
字段部件的访问
字段部件对应着数据库表中实际的字段用户要读写数据库表中的字段值其实是通过访问相应的字段部件进行的在前面的章节中我们介绍过在Delphi的数据库应用程序中有两类字段部件一类是利用字段编辑器创建的永久性字段部件另一类是随着数据集部件被激活(被打开)而动态生成的字段部件对于永久性字段部件的访问可以直接调用使用字段部件的名字进行假设我们在设计阶段利用字段编辑器创建了对应于CustomerDB表中Company字段的字段部件TableCompany下面的代码访问Company字段的字段值并将该字段值显示在编辑框部件Edit中
EditText := TableCompanyValue;
因为company字段是字符串类型的数据它与Edit中的数据类型相匹配的因此可以直接使用字段部件的Value属性读取字段值如果两个变量的类型不匹配则要使用表中的转换函数进行字段值的读取例如要读取CustomerDB表中的CustNo字段的值并将它显示在编辑模框Edit中假设我们已用字段编辑器(Fields Editor)创建了CustNo相应的字段部件TableCustNo则程序代码如下
EditText := TableCustNoAsString;
访问动态生成的字段部件相对要困难一些因为动态生成的字段部件是没有自己的名字的我们必须利用特殊的手段获得数据库表中各字段对应的字段部件然后对字段进行访问一般采用的方法有两种
● 使用数据集部件的Fields属性
● 使用数据集部件的FieldByName方法
使用数据集部件的Fields属性访问数据库表中各字段
数据集部件的Fields属性是与数据集部件相连的数据库表中各个字段对应的动态字段部件的名字列表因此我们可以通过Fields属性的下标(即索引号)来访问各字段部件从而达到访问数据库表中的各个字段索引号从开始也就是说数据库表中第一个字段对应着Fields列表的第一行即索引第二个字段对应的Fields的索引号为以此类推下面的例子是访问CustomerDB表中的第一个字段并在编辑框Edit中显示其字段值假设Table与数据库表CustomerDB相连
EditText := TableFields[]AsString;
下面的代码是将编辑框Edit中的字符值赋给CustomerDB表中当前记录的第一个字段以实现修改CustomerDB表中的字段值
TableFields[]AsString := EditText;
使用数据集部件的FieldByName方法访问字段部件
在数据集部件所拥有的方法中有一个FieldByName方法它是专门用于访问数据集部件中动态生成的字段部件的调用FieldByName方法时必须要把数据库表中的字段名作为参数传给FieldByName调用该方法后便可以得到该字段所对应的字段部件这样通过字段部件我们便可以读写表中相应的字段值了用这种方法访问字段部件时必须要知道数据库表中各个字段的名字否则是没有办法调用该方法的还是基于上面的假设下面是访问CustomerDB表中的CustNo字段的程序代码
EditText := TableFieldByName(CustNo)AsString;
TableFieldByName(CustNo)AsString := EditText;
在使用这两种方法访问动态生成的字段部件时可以使用表中的转换函数在变量和字段值之间进行数据类型的转换
字段编辑器的使用
字段编辑器(Fields Editor)主要是用于创建永久性的字段部件在前面的内容中我们知道当TTable或TQuery部件与数据库表相连接时且TTable或TQuery部件被激活时(Active属性被设置成True或调用Open方法)Delphi便动态地为表中各字段创建相应的字段部件字段部件中包含着相应字段的很多信息如字段值字段值的显示编辑格式等有时我们在应用程序中为了更加方便可靠地访问数据库表中各个字段需要创建永久性的字段部件这时我们必须要借助于字段编辑器来实现我们的设想字段编辑器的主要功能如下
● 创建永久性的字段部件
● 修改永久性字段的显示属性如显示格式显示宽度等
● 删除永久性的字段部件
● 增加新的永久性的字段部件
● 定义计算字段(不对应数据库表中实际的字段字段值根据表中其他字段的值计算得出)
打开字段编辑器
为TTable和TQuery部件打开字段编辑有两种方法
● 用鼠标左键双击TTable或TQuery部件
● 选择TTable部件或TQuery部件然后单击鼠标右键然后从弹出式菜单中选择 Fields Editor
字段编辑器Fields Editor被打开以后窗体的名字和数据集部件的名字会显示在窗口的标题上
字段编辑器Fields itor中的Fields列表框是用于显示已经创建的永久性字段部件的名字的字段编辑器Fields Editor第一次被打开时该列表框是空的因为在此之前的字段部件都是动态生成的只要Fields列表框中有字段部件那么与数据集部件相连的数据浏览部件中只显示Fields中列出的字段的字段值在Fields列表框中可以通过拖放字段部件的名字来改变相应的字段值在数据浏览部件中的显示顺序如在TDBGrid部件中根据各字段在Fields列表框中的顺序显示各字段的值
在字段编辑器Fields Editor窗体上面的导航按钮是用来移动TTable或TQuery部件中的记录指针的使用导航按钮可以将记录指针向前向后移动也可以移到第一条记录处或最后一条记录处
字段编辑器中的弹出式菜单
[] [] [] []