PDA

View Full Version : سوال: انتقال داده ها به بایگانی



neda_dela
جمعه 28 خرداد 1389, 14:26 عصر
سلام دوستان
به دلیل اینکه تعداد رکوردهای ثبت شده در بانک اطلاعاتی زیاد شده و از طرفی به بعضی از رکوردها دیگه نیازی نیست (یا شاید کمتر نیاز باشه) تصمیم گرفتم بخشی رو در پروژه ام به عنوان بایگانی اطلاعات در نظر بگیرم و برای اونها تیبل های مجزا بسازم تا بتونم مثلا یه سری از رکوردها رو از سال خاصی تا سال خاص دیگه ای به تیبل های بایگانی منتقل کنم. و حجم تیبل های اصلی رو کمتر کنم.
من اینطوری در نظر گرفتم که اگه کاربر خواست تعدادی از رکوردهاش رو به بایگانی منتقل کنه باید محدوده اونها رو تعیین کنه مثلا همون فاصله چند سال. 86 تا 88 ، و بعد با کلیک دکمه ارسال به بایگانی اون رکوردها که شرط یا شروط تعیین شده رو داشته باشن به بایگانی منتقل می شن
حالا کسی می تونه منو در رابطه با کد این قسمت راهنماییی کنه؟

ricky22
جمعه 28 خرداد 1389, 14:35 عصر
سلام به نظرم بیشتر روی منطق بانک اطلاعاتی کار کنید.
راه های زیادی هست!
مثل حذف منطقی در همون جدول
انتقال به یه جدول دیگه
عدم نمایش بعد از اینکه از یک تاریخ گذشت.
فک کنم با تاریخا کار کنید از همه بهتر باشه.

mmd2009
جمعه 28 خرداد 1389, 15:31 عصر
به نظر من یک جدول بایگانی درست کن و اطلاعات رو به ریز داخل اون مثلا به قول خودتون بر اساس تاریخ مشخصی مثلا یکی از برنامه هایی که نوشتم واسه یک ویدئو کلوپ بود که صاحب کلوپ نیازی نداشت در امدش رو تو جدوال اصلی داشته باشه واسه همین من هر روز اطلاعاتش رو به بایگانی می فرستادم و هر وقت خودش خواست میتونست به جدول بایگانی دست یابی داشته باشه

البته شما با یه تغییر خیلی کوچیک میتونید این کارو بکنید

کلا به درخواست خود مدیر ویدئو کلوپ من این کارو طبق چیزی که نظر خودش بود ساختم فیلم زیر رو اگه خواستی ببین تا نحوه کارشو بفهمی

زنده باد یوونتوس

میلاد قاضی پور
جمعه 28 خرداد 1389, 21:50 عصر
سلام . میتونید یک فیلد از نوع دیت تایم به جدولتون اضافه کنید . که فقط سال مورد نظر رو در خودش نگه داره . بعد میتونید در کد انتقال توی سی شارپ بنویسید که مثلا
اگر تاریخ فعلی مساوی بود با تاریخ ثبت شده +1 پس این کامند اجرا بشه:





//یک تیبل به نام آرشیو بساز با فیلدهای تیبل اولم
create table archive(فیلدهای مربوطه)

as

//تیبل ساخته شده را با استفاده از تیبل اولم و با

تمام اطلاعاتی که فیلد تاریخشان حاوی سال "ایکس" است پر کن.
select * from table1 where datetimefield=@datetimefield

میلاد قاضی پور
جمعه 28 خرداد 1389, 21:54 عصر
یعنی در برنامه خودتون مینویسید اگه امسال رقمش یکی بیشتر بود از سالهای ثبت شده در فیلد سال موجود در تیبل اولیه پس این دستور اس کیو ال رو اجرا کن .
با این دستور یک تیبل از روی تیبل قبلی ایجاد میشه که حاوی سطوری هست که تاریخشون منقضی شده یا به اصطلاح از امسال یکی کمتره. بعد میتونید با یه دستور اس کیو ال دیگه سطور موجود در تیبل اول رو که اضافه هستن پاک کنید .