zizi_zizi69
شنبه 13 آذر 1389, 16:12 عصر
من اینطور متوجه شدم که ،ما در ان واحد فقط یک رکورد رو می تونیم روش عملیات انجام بدیم،و زمانی که جواب query ما پیش از یک رکورد باشه یعنی یک Result Set داشته باشیم دیگه نمی تونیم روی آنها پردازش داشته باشیم مگر اینکه رکورد _رکورد اونا رو بخونیم که در اینصورت باید برای هر رکورد یک select بنویسم .پس ترجیحا از یک کرسر استفاده می کنیم که اشاره گری به اولین رکورد result Set ما هست بعد رکوردها رو یکی یکی می خونیم و پردازش مورد نظر رو روی هر رکورد انجام میدیم.
مثال:مثلا یک جدول کارمند داریم که شامل یکسری اطلاعات هست ما فقط فیلدهای مانند نام و نام خانوادگی و حقوق رو می خوایم ولی قبل از پرداخت حقوق باید این 10درصدش ازش کسر بشه.
خوب شرایط برای استفاده از کرسر محیاست بیشتر از یک رکورد درایم و باید فیلد حقوق هر رکورد پردازش بشه و بعد نمایش داده بشه.
Select from employee firstName, lastName, (salary-salary*10/100) as totalSalary
خوب من اینونه بدون کرسر نوشتم ،بدون هیچ مشکلی !
برای بدست اوردن totalsalary رکورد به رکورد خونده شده وعملیات مربوطه برای بدست اوردن totalsalary انجام شده ،آیا اینجا همان مفهوم internal cursor مطرح هست؟
وسوال دیگه ای که دارم اینه که این کرسر چیه فقط یک اشاره گر هست و فضا با اندازه اون در حافظه اشغال می کنه یا اینکه کل result set با اون pointer به رکورد هاش رو می گن cursor ؟
مثال:مثلا یک جدول کارمند داریم که شامل یکسری اطلاعات هست ما فقط فیلدهای مانند نام و نام خانوادگی و حقوق رو می خوایم ولی قبل از پرداخت حقوق باید این 10درصدش ازش کسر بشه.
خوب شرایط برای استفاده از کرسر محیاست بیشتر از یک رکورد درایم و باید فیلد حقوق هر رکورد پردازش بشه و بعد نمایش داده بشه.
Select from employee firstName, lastName, (salary-salary*10/100) as totalSalary
خوب من اینونه بدون کرسر نوشتم ،بدون هیچ مشکلی !
برای بدست اوردن totalsalary رکورد به رکورد خونده شده وعملیات مربوطه برای بدست اوردن totalsalary انجام شده ،آیا اینجا همان مفهوم internal cursor مطرح هست؟
وسوال دیگه ای که دارم اینه که این کرسر چیه فقط یک اشاره گر هست و فضا با اندازه اون در حافظه اشغال می کنه یا اینکه کل result set با اون pointer به رکورد هاش رو می گن cursor ؟