1.一个adoconnection,两个adoquery。怎样设置主从表。
2.在做好了主从表后,怎样写出增加,修改,保存,删除功能。

解决方案 »

  1.   

    1.可以在AfterScroll事件里手工处理主从关联
    2.使用事物处理进行编辑修改
      

  2.   

    可以祥細點嗎?
    主表:select * from master
    從表:select * from detail where zbxh=:xh
      

  3.   

    主从表和用adoquery不搭噶啊
    adoquery连两张表,然后你自己在程序控制操作就行了不知道你要实现什么样的功能
      

  4.   

    SQL中有客户表(xh,khbh,kh_name):主表
           产品表(zbxh,khbh,cpbh,cp_name):从表
    xh,khbh,kh_name      zbxh  khbh  cpbh  cp_name
    1   001   联想        1     001   电脑1 联想电脑1
                          1     001   电脑2 联想电脑2
    以上一个客户对应两个产品,就是一对多,
    我想用adoquery来实现这样的主从,所以
      

  5.   

    不知道楼主是不是这个意思:
    查询语句 Select * from CP,KuCun where KuCun.CPID=CP.ID
    这样关联查询两个表, 简单。
      

  6.   

    主/细表通常在编写数据库应用程序时,会遇到数据分散在多个彼此相关的数据库表中的情况。较为典型的例子是客户表(Customer)和订单表(Order)。其中,对应于每一个客户,在Customer表中都有一个记录,而对于每一项订单,在Order表中也有一个对应的记录。因为每一个订单都来自特定的客户,这样,就在两个数据库表之间形成了一种自然的关系。这是一种一对多的关系,因为一个客户可能有多个订单(这时,Customer是主表,Order是细表)。在Delphi中,可以方便地建立数据库表之间的主细关系。事实上,在设计期间就可以通过ObjectInspector确立这种关系。因此,有时甚至不需要编写任何的代码。假设有一个新项目,其中有两组数
    据库组件,每一组中包含一个TTable组件(Table1/Table2)、一个TDataSource组件(DataSource1/DataSource2)和TDBGrid组件(DBGrid1/DBGrid2)。DBGrid1与Table1之间通过DataSource1建立关联,DBGrid2与Table2之间通过DataSource2关联。两个TTalbe组件的DatabaseName属性设为DBDEMOS,把Table1的TableName属性设为CUSTOMER.DB,把Table2的TableName属性设为ORDERS.DB。此时,这个窗体包含了两个不相关的数据库表。接下来要做的就是在这两个表之间实现关联,这需要用到细表的MasterSource 属性和MasterFields属性。在本项目中,把Table2的MasterSource属性设为DataSource1。当试图编辑MasterFields属性时,会出现一个Field Link Designer对话框,在此对话框中,需要指定通过哪些字段来把两个数据库表连接起来,在这里使用表示客户编号的CustNo字段。因为CustNo字段并非ORDERS表的主索引的组成部分,所以要用到包含CustNo字段的副索引。为此,就要在Field LinkDesigner对话框的Available Indexes框内选择CustNo字段。在选择了CustNo索引后,就可以从DetailFields和Master Fields框内选择CustNo字段,然后单击A d d按钮创建两个数据库表之间的链接。最后,单击O K按钮就完成了主/细表的关联。现在,如果对Table1进行浏览时,Table2所显示的数据仅限于特定的记录,这些记录的CustNo字段的值必须与Table1当前记录的CustNo字段的值相同。呵呵,这段我在CSDN上贴过N次了,都快背下来了!楼主以后先搜一搜,有很多问题都有答案的:-)
      

  7.   

    我想知道用query组成的主、从表。而不是Table
      

  8.   

    主表(Query1):select * from master 
    加DataSource1所dataset属性设为Query1
    从表(Query2):select * from detail where zbxh=:xh(xh为master中的一个字段)
    把Query2的MasterDataSource设为DataSource1
    加 DataSource2把其DataSet属性设为Query2
    这样加上DBGrid或者DBEdit就可以成为主从表了。
      

  9.   

    对了上面的Query(或ADOQuery)的Connection属性都是你加的那个ADOConnection.
    主从表成了后就可以写新增:
    ...NewBtnClick(sender :TObject);//新增
    begin
      Query1.insert;
      Query2.insert;//其它附加代码都可以加上
    end;
    ...EditBtnClick(sender :TObject);//编辑
    begin
      Query1.insert;
      Query2.insert;//其它附加代码都可以加上
    end;
    ...PostBtnClick(sender :TObject);
    begin
      Query1.Post;(若是缓存就写Query1.ApplyUpdate(0);
      Query2.Post;//其它附加代码都可以加上
    end;
    ...DeleteBtnClick(sender :TObject);
    begin
      Query2.First;
      while not Query2.EOF do
        Query2.delete;(若是缓存就写Query1.ApplyUpdate(0);
      Query1.delete;//其它附加代码都可以加上
    end;
      

  10.   

    1.可以在AfterScroll事件里手工处理主从关联
    2.使用事物处理进行编辑修改
      

  11.   

    不是还要一个TDataSource吗?把从表的ADOQuery1 的属性 DataSource 设为这个TDataSource就可以了,用两个dbgrid就可以显示数据了。
      

  12.   


    通常在编写数据库应用程序时,会遇到数据分散在多个彼此相关的数据库表中的情况。较为典型的例子是客户表(Customer)和订单表(Order)。其中,对应于每一个客户,在Customer表中都有一个记录,而对于每一项订单,在Order表中也有一个对应的记录。因为每一个订单都来自特定的客户,这样,就在两个数据库表之间形成了一种自然的关系。这是一种一对多的关系,因为一个客户可能有多个订单(这时,Customer是主表,Order是细表)。在Delphi中,可以方便地建立数据库表之间的主细关系。事实上,在设计期间就可以通过ObjectInspector确立这种关系。因此,有时甚至不需要编写任何的代码。假设有一个新项目,其中有两组数
    据库组件,每一组中包含一个TTable组件(Table1/Table2)、一个TDataSource组件(DataSource1/DataSource2)和TDBGrid组件(DBGrid1/DBGrid2)。DBGrid1与Table1之间通过DataSource1建立关联,DBGrid2与Table2之间通过DataSource2关联。两个TTalbe组件的DatabaseName属性设为DBDEMOS,把Table1的TableName属性设为CUSTOMER.DB,把Table2的TableName属性设为ORDERS.DB。此时,这个窗体包含了两个不相关的数据库表。接下来要做的就是在这两个表之间实现关联,这需要用到细表的MasterSource 属性和MasterFields属性。在本项目中,把Table2的MasterSource属性设为DataSource1。当试图编辑MasterFields属性时,会出现一个Field Link Designer对话框,在此对话框中,需要指定通过哪些字段来把两个数据库表连接起来,在这里使用表示客户编号的CustNo字段。因为CustNo字段并非ORDERS表的主索引的组成部分,所以要用到包含CustNo字段的副索引。为此,就要在Field LinkDesigner对话框的Available Indexes框内选择CustNo字段。在选择了CustNo索引后,就可以从DetailFields和Master Fields框内选择CustNo字段,然后单击A d d按钮创建两个数据库表之间的链接。最后,单击O K按钮就完成了主/细表的关联。现在,如果对Table1进行浏览时,Table2所显示的数据仅限于特定的记录,这些记录的CustNo字段的值必须与Table1当前记录的CustNo字段的值相同。
      

  13.   

    myling(阿德) 的回答已经很明确的讲清楚了主从表的关系以及在 DELPHI  中的实现方法.
    也就是相关属性的设置, 不要想的太过于难理解.
      

  14.   

    对于SELECT , UPDATE, DELETE 等操作,还是和别的数据库的操作是相同的,
    但是要注意主从表之间的数据对应关系.
      

  15.   

    怎样设置主从表你要是想通过控件来实现简单的关联的话
    你得用Table!不能用Query1!
      

  16.   

    用Table实现比较简单,用Query并非不能实现,只是比较麻烦,主要方法是使用SQL语句动态的拼凑来完成的,谁想要例程,可给我发消息。
      

  17.   

    你把从表使用tadodataset就行
    我试过很好用的
    使用时设一下adodataset.masterfields and mastersource 就可以了