用Query组件进行数据录入时,不允许使用多表关联的SQL查询语句。例如,动态查询学生姓名、学号、宿舍与性别等的SQL语句:
Select XA0102,XA0104,GC0102,XA01 19,XA01 14 FROM XA01,GC02
WHERE XA0106=GC0101 and XA01 14=:TB0301是不能对数据表进行编辑修改,即不能录入修改学生宿舍XA01 19等内容。要用Query组件实现对数据表的编辑修改,SQL语句只能是对单表进行查询的Select语句,在上例中的语句必须改成
Select XA0102,XA0104,XA0106,XA01 19,XA01 14 FROM XA01
WHERE XA01 14=:TB0301
再将RequestLive属性改为True,才能对学生宿舍XA0119等内容进行录入修改。如何做到既能显示学生性别,又能录入学生宿舍,这就要用到计算字段。
所谓计算字段并不是数据表中实际存放的字段,而是根据需要自定义的字段。这些字段的值是根据数据表中其他字段值动态计算出来的,所以称为计算字段。下面结合例题来说明计算字段的定义与使用方法。
例6.20在例6.19中的Query—XA01数据集中增加“学生性别”计算字段,编写宿舍录入程序。
①在例6.19的窗体内添加Table组件与GC01数据表连接,设置Table组件的属性如下:
·Name Table—GC01。
·DatabaseName xsda。
·TableName GC01.db。
·IndexFieldName GC0 101。
·Active True o
②在Query—XA01组件中增加计算字段xB。双击Query—XA01组件激活字段编辑器,在编辑框内右击鼠标,在弹出式菜单中选择New Fields,设置新字段的属性如下:
·Name XB。
·Type String。
·Size 10。
·Field Type Lookup。 使用主从表的关联
·Lookup Keys GC0101。 从表的关联字段为学生性别编码GCnl01
·Result Field GC0102。 从表返回字段为学生性别GC0102
·Key Fields XA0106。 主表的关联字段为学生性别编码XA0106
·Dataset Table—GC01。 从表的数据集组件为Table—GC01
设置结果如图6.21所示。
计算字段xB的值是通过主从表的关联关系XA0106=GC0101,由学生档案表XA01中的性别编码XA0106字段值定位性别编码表GC01中记录,并通过GC0102字段返回性别名称,而获知男或女。
责任编辑:小草