سلام دوستان
سال نو مبارک
می خواستم بدونم چطور میشه دو تا Ado Query رو با هم Master/Detail کرد.
فکر کنم با دستورات SQL بشه این کار رو کرد ولی نمی دونم چه دستوراتی رو باید از طریق دلفی روی بانکم اجرا کنم.
سلام دوستان
سال نو مبارک
می خواستم بدونم چطور میشه دو تا Ado Query رو با هم Master/Detail کرد.
فکر کنم با دستورات SQL بشه این کار رو کرد ولی نمی دونم چه دستوراتی رو باید از طریق دلفی روی بانکم اجرا کنم.
من در مواقع لزوم (مثلا جدول سربرگ و جدول جزئیات در فاکتور) با کدنویسی این کار رو انجام میدهم
مثلا با تعریف فیلد کلیدی و کلید خارجی که معمولا در جدول Master (در این مثال جدول سربرگ) یک فیلد ID و در جدول Detail (در این مثال جزئیات فاکتور) یک فیلد مثلا با نام Main_ID تعریف میکنم و در زمان حذف یا اصلاح یک رکورد از جدول Master ، رکوردهای متناظر با اون رو در جدول Detail ، اصلاح یا حذف میکنم
البته برای TTable یا ADOTable قضیه فرق میکنه که حتما میدونید.
هر AdoQuery یک خاصیت MasterSource دارد.
کوذری ماستر خود را به یک دیتا سورس نسبت دهید و دیتاسوررس متناظر اون را به خاصیت MasterSourc=ce دیتایل. فیلدهای مشترک را نیز بعدا تعیین نمایید.
چی؟ متوجه نشدم؛ یه خورده جامع توضیح بده!کوذری ماستر خود را به یک دیتا سورس نسبت دهید و دیتاسوررس متناظر اون را به خاصیت MasterSourc=ce دیتایل. فیلدهای مشترک را نیز بعدا تعیین نمایید.
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 باشه
دلفی خطا میگیره : TDataSource, TAdoQuery دو نوع متفاوتنDataSource:=adoquery1
باید یک DataSource به AdoQuery1 متصل کنی، بعد در خصوصیت مربوطه در دیتاست دوم، مقدار DataSource را روی DataSource ایی که به AdoQuery1 متصل هست، قرار بدی.دلفی خطا میگیره : TDataSource, TAdoQuery دو نوع متفاوتن
وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.