PDA

View Full Version : فرق feildbyname و feildbyvalue



khoshblagh
شنبه 23 خرداد 1388, 07:44 صبح
با سلام خدمت دوستان
احترام کسی میتونه فرق feildbyname و feildbyvalue توضیح بده و از هر کدوم در کجا باید استفاده کرد. متشکرم

shervin farzin
شنبه 23 خرداد 1388, 09:28 صبح
سلام
Fieldbyname در واقع يك Function هست كه نام فيلد رو به صورت رشته ميگيره و به كمك نوع داده
TField كه به شما بر ميگردونه ، باعث ميشه كه از طريقش به تمام خصوصيات فيلد مورد نظر
دسترسي داشته باشيد . اما Fieldbyvalue فقط يك خصوصيت از TField هست كه نام فيلد رو
ميگيره و مقدار Value رو برميگردونه . به كد زير نگاه كنيد :

with ADOQuery1 do
begin
sql.Text:='select * from test';
Open;
end;
Edit1.Text := ADOQuery1.FieldByName('p_name').Value;
Edit2.Text := ADOQuery1.FieldValues['p_name'];

وقتي در كد فوق از Fieldbyname استفاده كردم علاوه بر اين كه نام فيلد مورد نظر رو نوشتم
خصوصيت Value رو هم فراخواني كردم . در حالي كه با استفاده از Fieldbyvalue فقط نام فيلد رو
نوشتم . اگر شما قصد خواندن يا نوشتن Value رو براي يك فيلد خاص داشته باشيد ساده تره كه
از Fieldbyvalue استفاده كنيد ( هرچند كه از fieldbyname هم ميتونيد استفاده كنيد ) اما اگر
قصد دسترسي به ساير خصوصياتي كه نوع داده TField در اختيارتون قرار ميده داشته باشيد
بايد از Fieldbyname استفاده كنيد . به عنوان مثال تست Null بودن يك فيلد :

ADOQuery1.FieldByName('p_name').IsNull
موفق باشيد .