PDA

View Full Version : ایجاد یک فیلد Lookup در AdoQuery



Unique
پنج شنبه 03 خرداد 1386, 17:24 عصر
سلام ،

تا حالا کسی سعی کرده یک فیلد Lookup برای یک AdoQuery بنویسه :
مثلا فکر کنید



select order_code,order_product,order_customer from orders

حالا order_customer یک فیلد کلیدی خارجی است برای جدول Customers
و می خواهیم lookup کنیم روی این جدول .



with TStringField.Create(myQuery) do
begin
FieldName := 'cus';
FieldKind := fkLookup;
DataSet := myQuery;
Lookup := true;
Name := DataSet.Name + FieldName;
KeyFields := 'order_customer';
LookupDataSet := cusTable;
LookupKeyFields := 'customer_id';
LookupResultField := 'customer_fullname';
myQuery.FieldDefs.Add(FieldName, ftString, 255, False);
myQuery.FieldDefs.Update;
end;


ولی این جواب نمیده و خطای :

Field 'order_customer' not found

را میده .

من وقتی Field های query را loop کردم دیدم فقط فیلد تعریفی من را داره ولی اگر FieldDefs را loop کنم متوجه میشم که همه را داره الا فیلد من را .
کسی میتونه کمک کنه ؟

SYNDROME
پنج شنبه 03 خرداد 1386, 17:54 عصر
با سلام

سلام ،

تا حالا کسی سعی کرده یک فیلد Lookup برای یک AdoQuery بنویسه :
مثلا فکر کنید



select order_code,order_product,order_customer from orders

حالا order_customer یک فیلد کلیدی خارجی است برای جدول Customers
و می خواهیم lookup کنیم روی این جدول .



with TStringField.Create(myQuery) do
begin
FieldName := 'cus';
FieldKind := fkLookup;
DataSet := myQuery;
Lookup := true;
Name := DataSet.Name + FieldName;
KeyFields := 'order_customer';
LookupDataSet := cusTable;
LookupKeyFields := 'customer_id';
LookupResultField := 'customer_fullname';
myQuery.FieldDefs.Add(FieldName, ftString, 255, False);
myQuery.FieldDefs.Update;
end;


ولی این جواب نمیده و خطای :

Field 'order_customer' not found

را میده .

من وقتی Field های query را loop کردم دیدم فقط فیلد تعریفی من را داره ولی اگر FieldDefs را loop کنم متوجه میشم که همه را داره الا فیلد من را .
کسی میتونه کمک کنه ؟
پیغام کاملا واضح است.

Unique
جمعه 18 خرداد 1386, 16:08 عصر
سلام

ان شاء الله که شما ناراحت نمی شی ، آخه مرد مومن مگه من خواستم شما خطا را برای من معنی کنی ؟ اگه می دونی مشکل از کجاست Reply بزن وگرنه یه چیزی نگو بقیه فکر کنند جواب داده شد رفت و یه تازه کار Post زده .
بازم معذرت می خوام ، گرچه من مشکل را با یه روش دیگه حل کردم اما خوشحال میشم کسی بیاد بگه چرا این خطا را میده !

SYNDROME
جمعه 18 خرداد 1386, 17:28 عصر
با سلام

سلام
ان شاء الله که شما ناراحت نمی شی ، آخه مرد مومن مگه من خواستم شما خطا را برای من معنی کنی ؟ اگه می دونی مشکل از کجاست Reply بزن وگرنه یه چیزی نگو بقیه فکر کنند جواب داده شد رفت و یه تازه کار Post زده .
بازم معذرت می خوام ، گرچه من مشکل را با یه روش دیگه حل کردم اما خوشحال میشم کسی بیاد بگه چرا این خطا را میده !
روی ADOQuery دابل کلیک کن و در آن قسمت همه فیلدهایت را در آن قسمت ADD کن.
اگر فیلدها را در آن قسمت ADD نکنی دقیقا این پیغام را می ده.
"مرد مومن " با من بودی؟؟؟؟؟؟:متفکر:

Unique
چهارشنبه 23 خرداد 1386, 03:12 صبح
سلام

حرف شما متین ! اما موضوع Runtime هستش ! نه اینکه توی Design این کار را بکنم ! اصلا بگیر بر اساس نیاز کاربر می خوام یک فیلد بسازم ! یا هر چیز Runtime دیگه .

omid1240
یک شنبه 10 تیر 1386, 15:56 عصر
شما که از SQL استفاده کردید خوب بنویسید :

select order_code,order_product,order_customer,[LookupFieldName] from orders,Customers
where orders.order_customer=customers.order_customer