那有ado的master/detail 的列子下載﹐找到了馬上給分

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/1461/1461487.xml?temp=.6605951
      

  2.   

    现在就让我们以一个实际的范例
    来说明如何使用A D O E x p r e s s组件提供的M a s t e r / D e t a i l的功能。
    1) 在D e l p h i集成开发环境中建立一个新的项目。然后在主窗体中加入
    TA D O C o n n e c t i o n组件连接数据库,让它连接到范例N o r t h Wi n d数据库。再放入
    TA D O Q u e r y组件。设定它的C o n n e c t i o n属性值为刚才的TA D O C o n n e c t i o n组件,设
    定它的S Q L属性值为: select * from Suppliers。再设定它的A c t i v e属性值为Tr u e,
    以便从S u p p l i e r s数据表中选择数据。接着在主窗体中加入T D a t a S o u r c e,设定它的
    D a t a S e t属性值为刚才的TA D O Q u e r y组件,再加入T D B C t r l G r i d组件,并且在其中
    加入S u p p l i e r s数据表的数据感知组件。此时主窗体看起来应该类似如图2 - 2 3所示。
    2) 再于主窗体中加入另外一个TA D O Q u e r y。设定它的C o n n e c t i o n属性值为步
    骤1 )的TA D O C o n n e c t i o n组件,然后设定它的S Q L属性值为:select * from Products
    Where SupplierID = :SupplierID。在范例N o r t h Wi n d数据库中,S u p p l i e r s数据表和
    P r o d u c t s数据表有M a s t e r / D e t a i l关系,而且这两个数据表以S u p p l i e r I D这个字段作为
    连接的索引字段。因此在这个新的TA D O Q u e r y组件中,它的S Q L属性值会以动态
    参数: S u p p l i e r I D作为从P r o d u c t s选取数据的依据,而动态参数: S u p p l i e r I D则会由步
    骤1 )中的Master TA D O Q u e r y组件提供。稍后会说明如何让这两个TA D O Q u e r y组件
    连接在一起。现在接着放入T D a t a S o u r c e组件,设定它的D a t a s e t属性值为刚才加入
    的TA D O Q u e r y组件。最后放入T D B N a v i g a t o r和T D B G r i d组件,并且设定它们的
    D a t a S o u r c e属性值为刚才加入的T D a t a S o u r c e组件。
    3) 现在这个步骤是让步骤1 )和步骤2 )形成M a s t e r / D e t a i l关系的关键步骤,我们
    只需要设定步骤2 ) 中的TA D O Q u e r y组件的D a t a S o u r c e 属性值为步骤1 )中的
    T D a t a S o u r c e组件。这样当步骤1 )的TA D O Q u e r y组件从S u p p l i e r s数据表选取数据时,
    便会把S u p p l i e r s数据表中的S u p p l i e r I D传递给步骤2 )的TA D O Q u e r y,让它以这个
    S u p p l i e r I D关键值做为从P r o d u c t s数据表选取数据的过滤标准。现在我们可以把步
    骤2 )的TA D O Q u e r y组件的A c t i v e属性值设定Tr u e以便开始处理D e t a i l的数据表。
    请编译这个范例应用程序并且执行它,那么你应该可以看到类似图2 - 2 5所示
    的画面。当我们使用窗体上方的N a v i g a t o r浏览M a s t e r数据时,下方的D B G r i d就会
    显示D e t a i l数据表相关的数据。现在这个范例应用程序已经是一个可以使用A D O技
    术处理M a s t e r / D e t a i l关系的数据库应用程序。
    现在让我们在这个范例M a s t e r / D e t a i l应用程序中对数据进行修改,看看这个范
    例是否能够正确地处理修改的数据。
    在上面的内容中我们讨论了如何使用A D O E x p r e s s开发M a s t e r / D e t a i l关系的应
    用程序。虽然通过A D O E x p r e s s组件可以快速地开发M a s t e r / D e t a i l关系的应用程序,
    也可以在应用程序中修改M a s t e r、D e t a i l或是同时修改M a s t e r / D e t a i l的数据再更新
    回数据库之中。但是当应用程序同时更新M a s t e r / D e t a i l数据时,这个动作却可能非
    常危险,因为A D O会使用不同的S Q L命令来更新数据。这可能会造成只更新了
    M a s t e r数据而没有更新D e t a i l数据的情形。但是,如果在M a s t e r数据表被更新之后,数据库或系统发生了问题,
    那么便会造成D e t a i l的数据无法更新回数据库中。对于这样的情形我们应该如何确
    保数据的正确性呢?这就需要使用A D O提供的事务管理功能。