ورود

View Full Version : دریافت نتایج "SELECT" بدون استفاده از DBGrid



مهران رسا
شنبه 01 خرداد 1389, 12:51 عصر
با سلام،

دوستان من از کنترل Query برای ارسال دستورات SQL استفاده میکنم . در درج ، حذف و به روز رسانی که مشکلی نیست . چطور میشه نتایج حاصل از اجرای دستور SELECT رو بطور مستقیم و بدون استفاده از DBGrid دریافت کرد ؟ میخوام بعد از دریافت نتایج و پس از انجام یک سری تغییرات ، به صورت دستی (با استفاده از حلقه) داده ها رو در Grid درج کنم .



SELECT * FROM TBL1
ممنون میشم راهنمایی بفرمایید.

Felony
شنبه 01 خرداد 1389, 13:02 عصر
for i:=0 to ADOQuery1.RecordCount-1 do
begin
ADOQuery1.Edit;
ADOQuery1.FieldByName('Test').AsString:= 'Sample Text';
ADOQuery1.Post;
end;

حسین شهریاری
شنبه 01 خرداد 1389, 17:45 عصر
سلام

اگه اشتباه نکنم منظور ایشون این بود که با حلقه ها کل سطرهای Query را پیمایش و تغییر اعمال کنن.

ولی دستوراتی که دوست گرامی آقای تاجیک نوشتن از کجا شروع میکنه؟دستور ادامه و حرکت بر روی رکوردها کجاست؟


Adoquer1.fiest;
while not(Query.eof) do
begin
ADOQuery1.Edit;
ADOQuery1.FieldByName('Test').AsString:= 'Sample Text';
ADOQuery1.Post;
ADoQuery1.next;
end;

Felony
شنبه 01 خرداد 1389, 18:46 عصر
سلام

اگه اشتباه نکنم منظور ایشون این بود که با حلقه ها کل سطرهای Query را پیمایش و تغییر اعمال کنن.

ولی دستوراتی که دوست گرامی آقای تاجیک نوشتن از کجا شروع میکنه؟دستور ادامه و حرکت بر روی رکوردها کجاست؟


Adoquer1.fiest;
while not(Query.eof) do
begin
ADOQuery1.Edit;
ADOQuery1.FieldByName('Test').AsString:= 'Sample Text';
ADOQuery1.Post;
ADoQuery1.next;
end;
دیگه قرار نیست که ماهی بگیریم بدیم دست کاربرا ، یک ایده کلی برای درک موضوع برای کاربرانی که تازه وارد نیستن کافی هست .
کد من ADOQuery1.Next رو کم داره حواسم نبود .

nimakaiedi
یک شنبه 02 خرداد 1389, 07:22 صبح
دیگه قرار نیست که ماهی بگیریم بدیم دست کاربرا ، یک ایده کلی برای درک موضوع برای کاربرانی که تازه وارد نیستن کافی هست .
کد من ADOQuery1.Next رو کم داره حواسم نبود .


بچه ها احتمالا adoquery مگه read only نیست؟!!!

جهت اطلاع خودم می پرسم ها قصد جسارت ندارم

hossein_h62
یک شنبه 02 خرداد 1389, 08:12 صبح
میخوام بعد از دریافت نتایج و پس از انجام یک سری تغییرات ، به صورت دستی (با استفاده از حلقه) داده ها رو در Grid درج کنم .


این چیزی که شما گفتید بصورت دستی داده ها رو میخوام درج کنم، با Update که شرط داشته باشه چه فرقی میکنه ؟؟؟؟؟؟

حسین شهریاری
یک شنبه 02 خرداد 1389, 09:51 صبح
این چیزی که شما گفتید بصورت دستی داده ها رو میخوام درج کنم، با Update که شرط داشته باشه چه فرقی میکنه ؟؟؟؟؟؟

چیزی که شما قصدتون هست را باید یه Query بزنید مثل زیر:

Adoquery.sql.text:='update YourTable set YourField='+Qotedstr('مقدار جدید');
Adoquery.Execsql;
فرقشون این هست که دستور فوق یه رشته Sql ارسال و اگه دستور خروجی داشته باشه مثل Select نتیجه برگشت داده میشه و لی مجموعه دستورات فوق الذکر که بنده و آقای تاجیک برای دوستمون نوشتیم همین کار را از طریق خود دستورات داخلی دلفی و با حلقه ها انجام میدند.


بچه ها احتمالا adoquery مگه read only نیست؟!!!


جهت اطلاع خودم می پرسم ها قصد جسارت ندارم
خیر دوست عزیز اینطوری نیست.در ضمن شما صحبتهای بنده با آقای تاجیک را جدی نگیرید چرا که این گونه صحبتها وتبادل نظرات بین ما همراه با دوستی و رفاقت هست!! مواظب باشید با کل کل اشتباهش نگیرید.
پس لزومی نداره شما سوالتونا با اکراه بپرسید.

hossein_h62
یک شنبه 02 خرداد 1389, 11:08 صبح
چیزی که شما قصدتون هست را باید یه Query بزنید .
جناب آقای شهریاری من قصد چیزی ندارم.منظورم این بود که لزوم استفاده از دستورات خود دلفی بجای Update همراه با شرط چی بوده.

حسین شهریاری
یک شنبه 02 خرداد 1389, 11:19 صبح
منظورم این بود که لزوم استفاده از دستورات خود دلفی بجای Update همراه با شرط چی بوده.

بله شما درست میفرمایید!!!

خب بعضی مواقع نیاز میشه برای امور خاصی توی خود دلفی تک تک رکوردها مورد پردازش قرار بگیرن.

Felony
یک شنبه 02 خرداد 1389, 11:26 صبح
جناب آقای شهریاری من قصد چیزی ندارم.منظورم این بود که لزوم استفاده از دستورات خود دلفی بجای Update همراه با شرط چی بوده.

لزومش رو ما نمیدونیم ، باید از اخوی M8SPY که سوال کردند بپرسید ، ولی در کل بعضی جاها به دلیل شرایطی خاص نمیشه از دستورات SQL استفاده کرد .

مهران رسا
یک شنبه 02 خرداد 1389, 11:41 صبح
بروز رسانی یک مثال بود . هدف اصلی همون استخراج نتایج Query بودش . در کل ممنون از دوستان