你问的问题是不是主从表的关系? 要不就用表的关联: select a.zd1 as 1,a.zd2 as 2,a.zd3 as 3,a.zd4 as 4,b.zd1 as 5,b.zd2 as 6 from a full outer join b on a.zd=b.zd(关联的那个字段) where ....
使用快照,具体用法到www.oradb.net上去找,有相关文章
select a.zd1 as 1,a.zd2 as 2,a.zd3 as 3,a.zd4 as 4,b.zd1 as 5,b.zd2 as 6 from a full outer join b on a.zd=b.zd这句练语法都是错误的,SQL是不可以用纯数字作别名的
你不要使用关联,我认为你可以自己写代码控制比较方便。你通过SQL语句将你要的数据从数据库中SELECT出来,然后自己把值付给文本框,在提出更新的时候通过用UPDATE语句进行更新不就可以完成你的要求吗? 如: SELECT A.ZD1,A.ZD2,A.ZD3,A.ZD4,B.ZD5,B.ZD6,B.ZD7,B.ZD8 FROM A,B WHERE A.ZD1=B.ZD5 AND A.ZD2='001' IF NOT EOF THEN 给文本框付值 ENDIFUPDATE的时候用如下语句: UPDATE A SET ZD1='',ZD2='',ZD3='',ZD4='' WHERE ZD1='旧的值' AND ZD2='001' UPDATE B SET ZD5,..... 这样应该可以吧,而且可以自己控制比较安全,在使用事务就可以万无一失了
JCQ的回答还是比较满意的,我也从中学了一些东西,谢谢啊!!
to BluePig(吹猪): 哈哈.说的对,我那时一个大体的意思表示.我相信谁也不会犯那样的错误.
这问题比较简单。具体要看你用什么工具编了。有两种方法可以使它们保持同步。一种是在把DataSet2(从表)的DataSource设为和DataSet1(主表)关联的DataSource1,并把DataSet2的SQL设为:SELECT F1,F2,F3,F4 FROM TABLE_2 WHERE F1=:F1(DataSet1和DataSet2关联的字段为F1),他们自己会保证同步,但是这种方法在从表中添加数据的时候会出错。第二种是在DataSet1的AfterScroll事件或DataSource1的OnDataChange事件中写DataSet2.Close; DataSet2.ParamByName('F1').AsInteger:=DataSet1.FieldByName('F1').AsInteger; DataSet2.Open;就可以了,这样比较保险。数据变化时最好通过内部的触发器完成更新,而且在DataSet1的数据变化后使DataSet2关闭再打开,也就相当于一次会话,数据就会更新。
要不就用表的关联:
select a.zd1 as 1,a.zd2 as 2,a.zd3 as 3,a.zd4 as 4,b.zd1 as 5,b.zd2 as 6
from a full outer join b
on a.zd=b.zd(关联的那个字段)
where ....
from a full outer join b
on a.zd=b.zd这句练语法都是错误的,SQL是不可以用纯数字作别名的
如:
SELECT A.ZD1,A.ZD2,A.ZD3,A.ZD4,B.ZD5,B.ZD6,B.ZD7,B.ZD8 FROM A,B WHERE A.ZD1=B.ZD5 AND A.ZD2='001'
IF NOT EOF THEN
给文本框付值
ENDIFUPDATE的时候用如下语句:
UPDATE A SET ZD1='',ZD2='',ZD3='',ZD4='' WHERE ZD1='旧的值' AND ZD2='001'
UPDATE B SET ZD5,.....
这样应该可以吧,而且可以自己控制比较安全,在使用事务就可以万无一失了
哈哈.说的对,我那时一个大体的意思表示.我相信谁也不会犯那样的错误.
DataSet2.ParamByName('F1').AsInteger:=DataSet1.FieldByName('F1').AsInteger;
DataSet2.Open;就可以了,这样比较保险。数据变化时最好通过内部的触发器完成更新,而且在DataSet1的数据变化后使DataSet2关闭再打开,也就相当于一次会话,数据就会更新。