PDA

View Full Version : جابه جا کردن دو رکورد



Saeid59_m
چهارشنبه 27 دی 1385, 12:56 عصر
سلام

من می خواهم دو رکورد رو توی بانکم با هم جابجا کنم . مثلاً رکورد شماره 50 با رکورد شماره 63 البته نمی خواهم یکی یکی فیلدها رو توی متغیر بریزم و جابجا کنم .

چطوری می شه این کار رو انجام داد ؟

ممنون

mehdi_mohamadi
چهارشنبه 27 دی 1385, 13:35 عصر
کاملا" متوجه سوال تون نشدم. ولی فکر کنم که از یک فیلد عددی به عنوان کلید اصلی استفاده کنی بهتر باشه. اگه عددهای کلید اصلی تو عوض کنی مشکلت حل میشه

Saeid59_m
چهارشنبه 27 دی 1385, 14:08 عصر
کاملا" متوجه سوال تون نشدم. ولی فکر کنم که از یک فیلد عددی به عنوان کلید اصلی استفاده کنی بهتر باشه. اگه عددهای کلید اصلی تو عوض کنی مشکلت حل میشه

یه جور دیگه سوالم رو مطرح می کنم .

فرض کنید رکورد شماره 4 حاوی مشخصات شخصی به اسم علیرضا باشه و رکورد شماره 8 حاوی مشخصات شخصی به نام سعید باشه می خواهم جای این دو مشخصات با هم عوض بشه .

یعنی رکورد 4 مشخصات سعید و رکورد 8 مشخصات علیرضا باشه

mehdi_mohamadi
چهارشنبه 27 دی 1385, 14:10 عصر
باشه , شما همون کلید اصلی رو تعریف کن و ارتباطات جدولهات رو به همون کلید اصلی (عدد) با هم برقرار کن وقتی که کلید عوض بشه همه مشخصات تعویض میشه

Saeid59_m
چهارشنبه 27 دی 1385, 14:45 عصر
آخه کلید اصلی واسه این کارا درست نشده . درضمن با جابه جا کردن کلید اصلی تمام ارتباطات با بقیه بانکها بهم می خوره .

در واقع من می خوام با این کار جدولم رو مرتب کنم . البته می دونم که راه های راحتی برای مرتب سازی جدول وجود دارد ولی بدلیل اینکه جدول من از نوع مجازیه نمی تونم از اون راهها استفاده کنم و باید الگوریم مرتب سازی رو خودم بنویسم برای اینه که می خوام جای رکوردها عوض بشه .

mehdi_mohamadi
چهارشنبه 27 دی 1385, 15:00 عصر
خوب یه فیلد ایجاد کن که شامل کد اشخاص باشه و شخص مرتبط را با این کد بشناسه نیازی هم نیست کلید اصلی باشه فقط این کدها رو اصلاح کن
خیلی راحته نمی دونم چرا سخت می گیری

MNosouhi
چهارشنبه 27 دی 1385, 15:25 عصر
در ادامه عرایض دوستان ، یه فیلد در نظر بگیر مثلا با نام Position که قراره محل قرار گرفتن رکورد در dbgrid رو در خودش ذخیره کنه (البته در dbgrid نمایش داده نمیشه) ، مرتب سازی هم باید بر اساس همین فیلد انجام بگیره ، حالا وقتی قراره فیلد چند ردیف بالاتر یا پایینتر قرار بگیره کافیه مقدار اون رو تغییر بدی. همین

arshia_
پنج شنبه 28 دی 1385, 07:53 صبح
حالا چه اصراری داری بدون متغیر این کار انجام بشه
شاید برای اعداد این کار امکانپذیر باشه و بتونی اعداد رو با جمع و تفریق جایگزین هم کنی ولی برای جایگزین کردن رشته ها راحترین راه همون متغیر است
اگر فایل شما از بانکهای استاندارد است که می تونی از فرمانهای اس کیو ال کمک بگیری
اگر هم فایل باینری یا متنی است که الگوریتم مرتب سازی با کمک متغیر به دردت می خوره

حرفه ای
پنج شنبه 28 دی 1385, 08:59 صبح
دوست خوبم !
من دلیل کار شما رو متوجه نمی شوم .

اما پیشنهاد دوست خیلی خوبم آقای نصوحی بهترین پیشنهاده و شاید بهترین راه حل

hoomaniraji
پنج شنبه 28 دی 1385, 09:13 صبح
آخرین رکورد را تشخیص بده .یکی از رکورد ها را به انتها ببر .رکورد دیگر را جایگزین آن کن.و رکورد انتهایی را به جای رکورد دیگر ببر.تمام این دستورات با دستورات Sql قابل اجرا هستند.UPdate , Insert

Saeid59_m
شنبه 30 دی 1385, 09:48 صبح
از همه ممنونم . مشکل حل شد
دلیل اصرار اینجانب برای این قضیه این بود که از جدول مجازی استفاده می کردم و نمی تونستم از امکانات کوری بهره بگیرم و می خواستم خودم مرتبش کنم .
ولی متوجه شدم که Virtual Table‌ یعنی همون کامپوننت ساخت جدول مجازی این امکان رو هم داره .
باز هم از راهنمائی همگی ممنونم .