PDA

View Full Version : فیلد ردیف در بانک اطلاعاتی



v_shalchian
شنبه 27 تیر 1383, 10:40 صبح
سلام
من در برنامه ام یک بانک اطلاعاتی SQL Server دارم که با ADO به آن وصل می شوم.
می خواهم در بعضی جدولها فیلدی به نام ردیف داشته باشم که در برنامه خود به خود پر بشود.
مشکلی که وجود دارد این است که وقتی رکوردی از وسط جدول حذف میشود شماره ردیف مربوط به آن هم حذف شده و جدول ناقص می شود.
لطفا بفرمایید برای حل این مشکل چه کار باید کرد.
با تشکر.

jannati
شنبه 27 تیر 1383, 10:58 صبح
دوست عزیز
وقتی فیلدی را حذف میکنی کل جدول را یکبار updateکن و با استفاده از یک متغییر دوباره کل جدول را شماره ردیف بذار.البته باید دید شما چطور رکوردی را حذف میکنی اگه توی datagridباشه کارهای دیگری هم میشه کرد.
در ضمن یه سوال:شما به خاطر گزارش گیری با datareportاینکاررو انجام میدی؟ :roll:

روح اله معینی زاده
شنبه 27 تیر 1383, 12:43 عصر
با سلام خدمت دوست گرامی
ببخشید که الان دستورش یادم نیست.
شما اگه یک فیلد رو به صورت AutoNumber تعریف کنید، با یک Pack کردن بانک اطلاعاتی آن اعداد خودشان درست می شوند و جای هیچ نگرانی نیست. این کار در Access به راحتی انجام می شود، پس قاعدتاٌ باید دستوری نیز وجود داشته باشد تا بتوان در وی بی هم این کار را انجام داد.
در اولین فرصت دنبال آن نیز خواهم رفت.

با احترام- خدانگهدار.

v_shalchian
شنبه 27 تیر 1383, 22:05 عصر
با سلام
من از فیلد ردیف برای این استفاده می کنم که رکوردها به همان ترتیبی که کاربر وارد کرده نمایش داده شود در ضمن شماره ردیف هم داشته باشد.
در ضمن محتویات جدول در یک Grid است و از متد Delete برای پاک کردن ردیف مورد نظر استفاده می شود
در پایان هم با datareport از جدول گزارش گرفته می شود.

v_shalchian
دوشنبه 29 تیر 1383, 16:16 عصر
با عرض معذرت
من جوابم رو درست نگرفتم.Update کردن کل جدول هر زمان که فیلدی حذف میشه به نظرم راه حل بهینه ای نیست.
میخواهم بدونم بقیه برنامه نویس ها برای فیلد شماره ردیف چه کار می کنند.چون فکر کنم فیلدی هست که تو خیلی جدولها کاربرد داره.
اگر جوابم رو بدید ممنون میشم.

vbhamed
یک شنبه 22 خرداد 1384, 12:41 عصر
سلام
منم چنین چیزی رو خیلی احتیاج دارم
فعلا از همون به روز رسانی فیلد ردیف استفاده می کنم
اما تو برنامه من یه قسمت واسه مرتب سازی هست بر اساس موارد مختلف
حالا خودتون فکرشو بکنید چی میشه
ضمنا به روز رسانی کمی زمان می بره
و وقتی از گراید استفاده بشه تغییرات منعکس نمیشه
در نهایت اگر کسی راه حلی داشت به ما هم بگه
با تشکر
hmdfar@yahoo.com

hadi2345
یک شنبه 22 خرداد 1384, 18:51 عصر
با سلام.
اگه تعداد ردیفها کم باشه Update کردن اونا عاقلانه است ولی اگه مثلا 10000 رکورد دارید و مثلا ردیف 7 اون رو پاک کردید و حالا میخواهید اونو update کنید ، این روش اصلا جالب نیست . من خودم برای یک برنامه از این روش استفاده کردم که مثلا وقتی یک رکورد حذف میشه (مثلا ردیف 7 ) ، ابتدا مقدار یک فیلد خاص از نوع boolean رو true میکردم به این معنی که یک رکورد از وسط جدول حذف شده و وقتی میخواستم یه رکورد جدید اضافه کنم ، اول مقدار اون فیلد رو چک میکردم و اگه true بود ، جدولو جستجو میکردم تا ببینم که کدوم ردیف حذف شده و مقدار ردیف رکورد جدید رو اون شماره میذاشتم و اگه false بود که به آخر جدول یک رکورد اضافه میکردم .
البته این رو هم بگم که تو برنامه من مهم نبود که رکورد جدید حتما آخرین رکورد باشه .....
موفق باشید.

Alirezagoodarzi
یک شنبه 22 خرداد 1384, 20:29 عصر
من معمولا وقتی میخوام یک جدول رو ردیف بدم یا در هنگام پر شدن جدول این کار را میکنم از متد rs.AbsolutePosition رکوردسِت استفاده میکنم.
این متد از این جهت عالیه که شما به هر ترتیب که Recordset را درست کردید شماره هر ردیف را میتونید دقیقا بصورت اتوماتیک به همون ترتیب ببینید.
من معمولا از حالت UnBound جداول استفاده میکنم .و به تجربه در این حالت کنترل بهتری بر اوضاع دارم.