ورود

View Full Version : تفاوت دو متد Open و ExecSQL در زمان استفاده از TSQLQuery



مهران رسا
شنبه 12 تیر 1389, 11:11 صبح
سلام؛
کنترل TSQLQuery از مجموعه DbExpress دارای دو متد Open و ExecSQL هست که ظاهراً هر دو برای اجرا کردن Query مورد استفاده قرار میگیرند . تفاوت این دو چیه ؟

ممنون .

majid2
شنبه 12 تیر 1389, 11:34 صبح
سلام دوست عزيز:
متد Open مختص select مي باشد و متد ExecSQL مختص delete,insert,update مي باشد

مهران رسا
شنبه 12 تیر 1389, 12:15 عصر
چه دلیلی داشته از دو متد جداگانه برای اجرای دستورات SQL استفاده کنند ؟

vcldeveloper
شنبه 12 تیر 1389, 16:34 عصر
چه دلیلی داشته از دو متد جداگانه برای اجرای دستورات SQL استفاده کنند ؟
Open یک دیتاست برمیگردونه، یعنی یک کرسر ایجاد میشه، و مجموعه ایی از داده ها به کلاینت منتقل میشه.
ExecSQL فقط دستور SQL داده شده را اجرا میکنه، و دیتاست برگشت نمیده.

پس ExcelSQL از Open سبک تر هست، و فشار کمتری به سرور میاره، متناسب با نوع دستور، ترافیک کمتری هم تولید میکنه.

ExcelSQL برای دستورات SQL ایی که دیتاست برنمی گردونند (مثل Insert, Update, Delete) استفاده میشه، اما Open برای دستوراتی که دیتاست برمیگردونند (مثل Select). حالا شما ممکنه از Open برای دستوراتی مثل Delete, Update, یا Insert هم استفاده کنید، ولی کارایی آن برای همچین اموری، کمتر از ExcelSQL هست.