دو شی AdoQuery یا AdoDataset به پروژه تان اضافه کنید. دو DataSource هم به پروژه اضافه کنید، و خصوصیت Dataset آنها را به ترتیب بر روی AdoQuery اول و دوم تنظیم کنید.
دستور SQL مربوط به داده Master را برای شی AdoQuery اول بنویسید.
برای AdoQuery دوم، ابتدا خصوصیت DataSource آن را بر روی DataSource متصل به داده Master تنظیم کنید. سپس در خصوصیت SQL آن دستور SQL مربوط به داده Detail را بنویسید.
در انتهای دستور SQL مربوط به Detail، یک گزاره WHERE اضافه کنید که حاوی شرط مربوط به رابطه Master\Detail باشه. برای این منظور، باید از پارامتری استفاده کنید که هم نام یکی از فیلدهای موجود در داده Master باشه، مثلا اگر داده Master شما حاوی داده های مشتریان هست، و فیلد کلید آن CustomerID هست؛ و داده Detail شما مربوط به سفارشات هر مشتری هست، و در آن فیلدی با نام CustID برای مشخص کردن مشتری هر سفارش وجود داره، باید در دستور SQL خودتان پارامتری هم نام فیلد CustomerID تعریف کنید، و در گزاره WHERE از آن استفاده کنید. در این صورت، کوئری Master و Detail فرضی شما به شکل زیر میشه:
/// Master
SELECT * FROM Customers
/// Detail
SELECT * FROM Orders WHERE CustID = :CustomerID
حالا می تونید کوئری Master و Detail را Active کنید. هر زمان که رکورد جاری در Master تغییر کنه، مقدار CustomerID رکورد جاری از Master خوانده میشه، و به پارامتر CustomerID در کوئری Detail اختصاص داده میشه، و کوئری Detail اجرا میشه، تا داده های متناسب با مقدار همون پارامتر را برگشت بده. به این ترتیب، در مثالی که زده شد، شما در کوئری Master لیست مشتریان را دارید، و در کوئری Detail لیست سفارشات مشتری انتخاب شده در Master را.
اگر میخواید این داده ها را در گرید نمایش بدید، دو گرید به فرم اضافه می کنید، خصوصیت DataSource یکی را بر روی DataSource متصل به Master تنظیم می کنید، و خصوصیت DataSource آن یکی را بر روی DataSource متصل به Detail.