动态创建数据窗口时省略表名的方法
在使用synatax动态创建数据窗口时,如果我们关联了两个表,生成的列明会变为"表名_列名"的格式,但可能有时候又变为了仅"列名"的格式,很是困扰
如果我们在设计数据库时已经保证每个表的字段名称是唯一的,那么可以使用下面的方法进行处理,例如有两个表
CREATE TABLE T_MASTER(
MASTER_NO VARCHAR(10) NOT NULL,
MASTER_MEMO VARCHAR(255) NULL
)
CREATE TABLE T_DETAIL(
DETAIL_NO VARCHAR(10) NOT NULL,
DETAIL_DNO VARCHAR(10) NOT NULL,
DETAIL_MEMO VARCHAR(255) NULL
)
如果使用一般的语法动态创建数据窗口时,不管是使用
SELECT MASTER_NO,MASTER_MEMO,DETAIL_DNO,DETAIL_MEMO FROM T_MASTER,T_DETAIL WHERE MASTER_NO = DETAIL_NO
还是使用
SELECT T_MASTER.MASTER_NO,T_MASTER.MASTER_MEMO,T_DETAIL.DETAIL_DNO,T_DETAIL.DETAIL_MEMO FROM T_MASTER,T_DETAIL WHERE MASTER_NO = DETAIL_NO
数据窗口列可能变为
T_MASTER_MASTER_NO,T_MASTER_MASTER_MEMO,T_DETAIL_DETAIL_DNO,T_DETAIL_DETAIL_MEMO
这是因为PB为了避免列名重复而采用的一种命名方法,但这样就给我们实际应用时带来一定的小障碍,避免的方法也较简单,改写一下SQL语句即可
SELECT MASTER_NO,MASTER_MEMO,DETAIL_DNO,DETAIL_MEMO FROM (T_MASTER INNER JOIN T_DETAIL ON MASTER_NO = DETAIL_NO) WHERE ....
数据窗口列可能变为
MASTER_NO,MASTER_MEMO,DETAIL_DNO,DETAIL_MEMO
注意
(1)INNER JOIN,不要担心这个市SQL92规范,几乎所有数据库都支持,放心使用,它同平常书写的方式可以等价转换。
(2)括号,一定不能省略,否则不起作用。只有这样,PB才会认为(分析为)是一个表
如果我们在设计数据库时已经保证每个表的字段名称是唯一的,那么可以使用下面的方法进行处理,例如有两个表
CREATE TABLE T_MASTER(
MASTER_NO VARCHAR(10) NOT NULL,
MASTER_MEMO VARCHAR(255) NULL
)
CREATE TABLE T_DETAIL(
DETAIL_NO VARCHAR(10) NOT NULL,
DETAIL_DNO VARCHAR(10) NOT NULL,
DETAIL_MEMO VARCHAR(255) NULL
)
如果使用一般的语法动态创建数据窗口时,不管是使用
SELECT MASTER_NO,MASTER_MEMO,DETAIL_DNO,DETAIL_MEMO FROM T_MASTER,T_DETAIL WHERE MASTER_NO = DETAIL_NO
还是使用
SELECT T_MASTER.MASTER_NO,T_MASTER.MASTER_MEMO,T_DETAIL.DETAIL_DNO,T_DETAIL.DETAIL_MEMO FROM T_MASTER,T_DETAIL WHERE MASTER_NO = DETAIL_NO
数据窗口列可能变为
T_MASTER_MASTER_NO,T_MASTER_MASTER_MEMO,T_DETAIL_DETAIL_DNO,T_DETAIL_DETAIL_MEMO
这是因为PB为了避免列名重复而采用的一种命名方法,但这样就给我们实际应用时带来一定的小障碍,避免的方法也较简单,改写一下SQL语句即可
SELECT MASTER_NO,MASTER_MEMO,DETAIL_DNO,DETAIL_MEMO FROM (T_MASTER INNER JOIN T_DETAIL ON MASTER_NO = DETAIL_NO) WHERE ....
数据窗口列可能变为
MASTER_NO,MASTER_MEMO,DETAIL_DNO,DETAIL_MEMO
注意
(1)INNER JOIN,不要担心这个市SQL92规范,几乎所有数据库都支持,放心使用,它同平常书写的方式可以等价转换。
(2)括号,一定不能省略,否则不起作用。只有这样,PB才会认为(分析为)是一个表
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.