PDA

View Full Version : استفاده از cursor



aliasghar
دوشنبه 03 اسفند 1383, 07:22 صبح
سلام و خسته نباشید.
بعضی مواقع یک برنامه نویس بانک اطلاعاتی مجبور میشه که به تک تک رکوردهای یک Recordset دسترسی پیدا کنه (مثلا به ازائ شرایط خاص هر رکورد بخواهد کار متفاوتی را انجام بدهد )

ولی مثل اینکه استفاده از cursor کار چندان درستی نیست مخصوصا که فقط یک متغیر
Fetch_Status@@ داریم (اون هم به صورت Global ) و ممکنه همزمان چند نفر از روی شبکه این کرسر را اجرا کرده باشند

حالا با این شرایط چند تا سئوال پیش میاد
1) اگر چند کرسر تودرتو داشته باشم آیا Fetch_Status@@ موجب قاط زدن روند اجرا نمیشه؟
2) نمیشه به ازائ هر کرسر یک متغیر Fetch_Status@@ جدا داشت که تحت شبکه هم مشکلی پیش نیاد

3)راه بهتری هم هست که از کرسر استفاده نکنم ولی بتونم به تک تک رکوردها دسترسی داشته باشم (فرض کنید مساله خیلی سخته و نمی خواهم از یک جدول تمپ و تغییر RowCount به 1 استفاده کنم)

ممنون

AminSobati
دوشنبه 03 اسفند 1383, 21:45 عصر
دوست عزیزم،
1) کرسر تو در تو مشکلی ایجاد نمیکنه. فقط کافیه از این نکته آگاه باشید که هر بار Fetch کردن، باعث Update شدن Fetch_Status میشه. پس اگر شما میخواهید Fetch کردن از کرسرهای دیگه روی مقدار اصلی تاثیر نگذاره، میتونین اون مقدار رو در یک متغیر نگهدارین.
2) Fetch_Status برای هر Connection به طور Global تعریف شده است، نه برای همه کاربرها! یعنی هر کاربری Fetch_Status مربوط به خودش رو داره.
3) این بستگی به مورد کار شما داره. گاها روشهایی میتونه جایگزین بشه ولی بستگی داره..
موفق باشید

aliasghar
دوشنبه 03 اسفند 1383, 22:09 عصر
:flower: :flower: :flower:

و این که دعا میکنم یه روزی برسه که من هم بتونم مثل شما برای بقیه مفید باشم

AminSobati
دوشنبه 03 اسفند 1383, 23:54 عصر
ای بابا :) :oops: