PDA

View Full Version : چطور میشه دو تا Ado Query رو Master/Detail کرد



mskm100
پنج شنبه 08 فروردین 1387, 15:55 عصر
سلام دوستان
سال نو مبارک

می خواستم بدونم چطور میشه دو تا Ado Query رو با هم Master/Detail کرد.
فکر کنم با دستورات SQL بشه این کار رو کرد ولی نمی دونم چه دستوراتی رو باید از طریق دلفی روی بانکم اجرا کنم.

babak_delphi
پنج شنبه 08 فروردین 1387, 16:15 عصر
من در مواقع لزوم (مثلا جدول سربرگ و جدول جزئیات در فاکتور) با کدنویسی این کار رو انجام میدهم
مثلا با تعریف فیلد کلیدی و کلید خارجی که معمولا در جدول Master (در این مثال جدول سربرگ) یک فیلد ID و در جدول Detail (در این مثال جزئیات فاکتور) یک فیلد مثلا با نام Main_ID تعریف میکنم و در زمان حذف یا اصلاح یک رکورد از جدول Master ، رکوردهای متناظر با اون رو در جدول Detail ، اصلاح یا حذف میکنم
البته برای TTable یا ADOTable قضیه فرق میکنه که حتما میدونید.

dkhatibi
پنج شنبه 08 فروردین 1387, 16:47 عصر
هر AdoQuery یک خاصیت MasterSource دارد.
کوذری ماستر خود را به یک دیتا سورس نسبت دهید و دیتاسوررس متناظر اون را به خاصیت MasterSourc=ce دیتایل. فیلدهای مشترک را نیز بعدا تعیین نمایید.

Developer Programmer
یک شنبه 11 فروردین 1387, 09:46 صبح
کوذری ماستر خود را به یک دیتا سورس نسبت دهید و دیتاسوررس متناظر اون را به خاصیت MasterSourc=ce دیتایل. فیلدهای مشترک را نیز بعدا تعیین نمایید.
چی؟ متوجه نشدم؛ یه خورده جامع توضیح بده!

maisam57
یک شنبه 11 فروردین 1387, 11:41 صبح
with adoquery1
begin
Close;
SQL.Clear;
SQL.Add('select * from master');
Open;
end;
with adoquery2
begin
DataSource:=adoquery1;
Close;
SQL.Clear;
SQL.Add('select * from detail where id=:id');
Open;
end;

یادت نره فیلد id باید توی master و detail باشه

Developer Programmer
یک شنبه 11 فروردین 1387, 12:30 عصر
DataSource:=adoquery1
دلفی خطا میگیره : TDataSource, TAdoQuery دو نوع متفاوتن

vcldeveloper
دوشنبه 12 فروردین 1387, 01:49 صبح
دلفی خطا میگیره : TDataSource, TAdoQuery دو نوع متفاوتن
باید یک DataSource به AdoQuery1 متصل کنی، بعد در خصوصیت مربوطه در دیتاست دوم، مقدار DataSource را روی DataSource ایی که به AdoQuery1 متصل هست، قرار بدی.