你用Select语句将两个表的内容取到一个结果集合中,然后放入ADODC,将文本框和ADODC绑定

解决方案 »

  1.   

    你问的问题是不是主从表的关系?
    要不就用表的关联:
    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 ....
      

  2.   

    使用快照,具体用法到www.oradb.net上去找,有相关文章
      

  3.   

    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是不可以用纯数字作别名的
      

  4.   

    你不要使用关联,我认为你可以自己写代码控制比较方便。你通过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,.....
    这样应该可以吧,而且可以自己控制比较安全,在使用事务就可以万无一失了
      

  5.   

    JCQ的回答还是比较满意的,我也从中学了一些东西,谢谢啊!!
      

  6.   

    to BluePig(吹猪):
    哈哈.说的对,我那时一个大体的意思表示.我相信谁也不会犯那样的错误.
      

  7.   

    这问题比较简单。具体要看你用什么工具编了。有两种方法可以使它们保持同步。一种是在把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关闭再打开,也就相当于一次会话,数据就会更新。