ADO Table Relationships ( 3 Tables )

Posted on 2004-10-07
Last Modified: 2013-11-23
Hello All;

  It seems that when you are creating the MasterSource/MasterFields
Table Relationships between 3-Tables. That it will only allow you to do "2"
Tables this way.
   Is there a way to do "3" Tables?

   Reason For 3 Tables:

The Database Program that I have made to Admin my KB Web Site.
I need to have "3 Tables" Relationship together so that I can add to Master
Categories when inserting new records.

  Could someone please let me know how to do "3 Table Relationships in

( P.S.
   Each of the Tables Fields are connected to "TDBEdits TDBMemos& TDBComboBox's"
   That I need to connect to. So when you click on a Field in the Main
   It needs to Display it's Relationship between the other Tables-Fields
   In the "TDBEdits TDBMemos& TDBComboBox's and so forth"
   And when creating new records in the Program, It needs to be able to
   To each of the Table-Fields the correct properties that are inserted or

Thank You All

Question by:Wayne Barron
LVL 11

Expert Comment

ID: 12256904
Did you try using SQL select? YOu can select even more tables together.

Something like  
select * from table1 t1, table2 t2, table3 t3 where t1.cod=t2.cod and t2.product=t3.product
or any other relationships.

Expert Comment

ID: 12259806
You can use a Query Component as a Primary/Master dataset.
Then use the Primary/Master AfterScroll event to Close then reopen Secondary/Detail  Query Component(s) with parameters.

This example happens to be using ClientDataSets, however it works just as well with TQuery.
While this is not as auto-magic as w/ TTable components, you will have more control and network conflicts are less likely.

procedure TForm1.wwClientDataSet1AfterScroll(DataSet: TDataSet);
  if ((PageControl1.ActivePageIndex <> 0)
  or not (wwClientDataSet1.RecordCount > 0)) then Exit;

    // Drafting Deatil Info. ---------------------------------------
    with wwClientDataSet4, Params do begin

      ParamByName('myDrawingRecord').Value := wwClientDataSet1Record_.AsString;

      Panel2.Caption :=
        'Record ' + IntToStr(wwClientDataSet1.RecNo) +
        ' of ' + IntToStr(wwClientDataSet1.RecordCount);

      Edit1.Text := wwClientDataSet1.FieldByName('JOB_NUM').Text;

    // Job Info ------------------------
    with wwClientDataSet5, Params do begin
      if  (wwClientDataSet1JOB_NUM.AsString <> wwClientDataSet5JOB_NUM.AsString) then begin // Job Number Has Changed
        ParamByName('myJobNumber').Value := wwClientDataSet1JOB_NUM.AsString;




LVL 30

Author Comment

by:Wayne Barron
ID: 12263682
Thanks for your replies in this.
[Surfer Joe] thanks for the code.
Maybe I am tired or something, But I could not get
It to work? Sorry. Maybe if explained a little bit of what everything
Does, then maybe.

  I have made a fully functional Demo.
Please download and take a look at it.
You will have to change to "Database" path in the ADOConnection
Located in the "DataModule = Form"

  The information that needs to be read is in the "PageControl [Content Tab] = "Choose" Title = ADO Table Relationships"
Please read the " Long Description" located in the " DBMemo"
Located at the bottom of the " ScrollBox "

Thank you all
LVL 30

Author Comment

by:Wayne Barron
ID: 12343036
If no one else comes in to assist in this question,
Then I will close this question, as it has been open for
Far to lond as it is.

Thank You

Accepted Solution

ee_ai_construct earned 0 total points
ID: 12552296
Question answered by asker or dialog valuable.
Closed, 50 points refunded.
ee_ai_construct (replacement part #xm34)
Community Support Admin

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
System restore point 4 91
Delphi: how to implement a User Shortcut mapper? 1 95
TEMBEDDEDWB how can i change its user agent ? 8 50
Delphi and Access based Enumeration 9 47
Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…
Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
This tutorial gives a high-level tour of the interface of Marketo (a marketing automation tool to help businesses track and engage prospective customers and drive them to purchase). You will see the main areas including Marketing Activities, Design …
Hi friends,  in this video  I'll show you how new windows 10 user can learn the using of windows 10. Thank you.

895 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now