table1(与主表相连)->datasource1->(dbedit1,dbedit2........)
table2(与从表相连)->datasource2->dbgrid1.
table2的mastersource属性已经设置成了datasource1,masterfields属性
已经设置成了主表的关键字。好象所有属性都设置好了,可是dbgrid1中却
不显示从表的记录,但是从表的各属性却显示在dbgrid1的顶端(应该是意味
着与从表已经连接上了吧)。我不解这是什么原因,dbedit,datasource,dbgrid
各控件的属性我应该都设置好了啊。

解决方案 »

  1.   

    TABLE ACTIVE 为TRUE了没?
    数据库设计没问题吧!
      

  2.   

    table1和table2我都open了啊,只要我把table2的mastersouce属性datasouce1清空后,
    dbgrid又可以显示记录了,只是不能主从查询(这一点我想每个人都明白)。请帮我看看。
      

  3.   

    你的masterfields中的字段也就是从表中没有和主表关键字所符合的纪录
      

  4.   

    没有记录就意味着主表的当前记录跟从表关联不上呗,主表也用dbgrid,然后在主表中移动记录指针,移动到能关联上的记录,看从表dbgrid有无记录就知道到底是哪的毛病了。
      

  5.   

    不知道是怎么回事,你先扔下这个,自己找个简单的做,看能不能做出来。
    DBDEMOS里面有两个名为orders.db和customer.db,它们可以通过custno字段关联
    主表:dbgrid1,datasource1,table1,dbnavigator1
    设置以下属性:
    datasource1.dataset = table1
    dbgrid1.datasource = datasource1
    dbnavigator1.datasource = datasource1
    table1.databasename = DBDEMOS
    table1.tablename = orders.db
    从表:dbgrid2,datasource2,table2
    设置以下属性:
    datasource2.dataset = table2
    dbgrid2.datasource = datasource2
    table2.databasename = DBDEMOS
    table2.tablename = customer.db
    table2.mastersource = datasource1
    table2.masterfield = custno
    这个能出来的话,比较一下,找找问题所在。
      

  6.   

    比如你的Table在“e:\data\   
    设置如下:
    Table.datasource ->"e:\data"
      

  7.   

    设置MasterFields的值
    例如:
      begin
        with Table1 do
        begin
          Active := False;
          TableName := 'Pos.DB';
          IndexFieldNames := 'UDR';
          Table1.Active := true;
          DataSource1.DataSet := Table1;
        end;
        with Table2 do
        begin
          Active := False;
          TableName := 'Pos_line.DB';
          IndexFieldNames := 'UDR';
          MasterFields:= 'UDR';
          MasterSource := DataSource1;
          Active := true;
          DataSource2.DataSet := Table2;
        end;