PDA

View Full Version : مکان نما در sql چه کاربردی دارد؟



بیتافرهی
جمعه 07 فروردین 1388, 17:17 عصر
سلام
میشه لطفا درباره ی مکانیزم مکان نما در sql توضیح بدید؟معمولا در چه مواردی ،(در نوشتن چه برنامه هایی کاربرد پیدا می کنه)؟
معنی این دستور چیه؟

WHILE @@FETCH_STATUS = 0

AminSobati
جمعه 07 فروردین 1388, 18:16 عصر
سلام،
بعضی از نیازها، با شیوه عملکرد دستور Select، بصورت ایده آل مرتفع نمیشن. دستور Select اصطلاحا Set Based عمل میکنه یعنی یک مجموعه به شما برمیگردونه اما اگر نیاز داشته باشید فرایندی روی تک تک رکوردهای بدست آمده (اعضای مجموعه مذکور) انجام بدین، ناچارین به شکلی این رکوردها رو در حافظه مستقر کنین تا بتونین یک به یک روی اونها حرکت کنید. بعنوان مثال، Query زیر 5 رکورد برمیگردونه:

SELECT EmployeeID FROM Employees WHERE Age>=30

حالا اگر قصد داشته باشیم هر EmployeeID که بدست میاد رو بفرستیم داخل یک Stored Procedure تا عملیاتی روی اونها انجام بشه، ناچاریم خروجی Query رو در قالب Cursor نگهداریم تا بتونین از بالا به پایین پیمایش کرده و هر بار SP رو با EmployeeID جدید فراخوانی کنیم. البته Cursor موارد کاربرد متنوعی داره و این تنها یک سناریو بود.
هر بار که دستور Fetch فراخوانی میشه، موفقیت یا عدم موفقیت این عمل در متغیر Fetch_Status منعکس میشه. صفر بودن مقدارش یعنی موفقیت آمیز بودن عمل Fetch، یا به عبارت دیگه هنوز رکوردی برای پیمایش وجود داره و به انتهای Cursor نرسیدیم