PDA

View Full Version : به روز رسانی بانک اطلاعاتی



Moh1361sen
یک شنبه 20 آبان 1386, 20:57 عصر
با سلام خدمت دوستان

من دارای یک بانک اطلاعاتی با 1 جدول حاوی فیلدهای A و B هستم و این برنامه در حال استفاده توسط 30 کاربر است امروز تصمیم می‌گیرم تا یک فیلد جدید C رو به جدول اضافه کنم؛
از چه روشی استفاده کنم تا بتونم با حفظ اطلاعات گذشته پایگاه داده را به روزرسانی کنم.

ghabil
یک شنبه 20 آبان 1386, 21:00 عصر
روش خاصی نمیخواد خب میتونی فیلد جدیدت رو هم اضافه کنی دیگه ، فکر میکنی ممکنه چه مشکلی پیش بیاد ؟!
فقط اگر فیلدت Not Null هست بهش یک Default Value بده.
اگر هم مثلا دیتابیت روی هاست هست از دستور Alter Table استفاده کن

Moh1361sen
یک شنبه 20 آبان 1386, 21:13 عصر
دوست من
شاید بدترین جای کار من همین باشه که در مورد بانک ها اطلاعات ندارم
و متاسفانه با یک اشتباه زحمت 8 ماهه دوستانم را هدر دادم
من یک فیلد به جدول اضافه کردم و به عنوان یک فایل Update با نسخه جدیدی از نرم افزارم به آنها دادم و ....
به خاظر همین که به دنبال یک راهی میگردم که نرم افزار این کار رو انجام بده و شخص نیازی به کار بر روی پایگاه داده نداشته باشه

SYNDROME
یک شنبه 20 آبان 1386, 23:27 عصر
نام بانک خود را نگفتید؟
موفق باشید

ghabil
یک شنبه 20 آبان 1386, 23:35 عصر
حال شاید به هدر نداده باشی گاهی اوقات میشه از روی لاگ فایلها اطلاعات قبلی رو برگردوند درست توضیح بده مشکلت چی بوده ؟

در مو.رد بقیش هم همون Alter Table رو جستجو کن قبلا مثال زدم.

Moh1361sen
دوشنبه 21 آبان 1386, 10:14 صبح
با سلام از این جوابیه ها مانند استفاده از Alter Table زمانی می توان استفاده نمود که خود برنامه نویس به data base دسترسی داشته باشد (آیا درست است یا خیر؟)
ولی من میخوام این کار رو توسط کاربر در سایر نقاط بدون نیاز به وجود برنامه نویس انجام بدم و همچنین اطلاعات قبلی بدون تغییر باقی بماند(توضیح اینکه پایگاه داده Access می باشد )

rmb_ali
دوشنبه 21 آبان 1386, 11:06 صبح
شما میتونید یه تکه برنامه بنویسی که در صورت عدم وجود فیلد مورد نظر اون بانک alter بشه و این قضیه رو میتونی اول برنامه ات بزاری که هر وقت اجرا بشه چک کنه و در صورت نیاز دیتابیس رو alter کنه
یه راه دیگه هم اینه که تو برنامه ات یه پروسیچر داشته باشی که این کارو بکنه (alter table ) و فقط قبلش یه فایل مثلا ini داشته باشی که کنترل کنه این پروسیچر قبلا اجرا شده یانه که فقط یکبار این عمل انجام بشه منظورم اینه که هر بار تو اجرای برنامه نره جداولتو بررسی کنه

ghabil
دوشنبه 21 آبان 1386, 19:55 عصر
با سلام از این جوابیه ها مانند استفاده از Alter Table زمانی می توان استفاده نمود که خود برنامه نویس به data base دسترسی داشته باشد (آیا درست است یا خیر؟)
ولی من میخوام این کار رو توسط کاربر در سایر نقاط بدون نیاز به وجود برنامه نویس انجام بدم و همچنین اطلاعات قبلی بدون تغییر باقی بماند(توضیح اینکه پایگاه داده Access می باشد )

خب جادو که نمیشه کرد ، روش تغییر ساختار دیتابیس Aler Table هست حالا میتونی یک اینترفیس خوشگل به کاربر بدی کاربر از طریق اونم بگه میخواد چه تغییراتی بده ، بعد تو اون تغییرات رو تبیدل به یک دستور SQLی از نوع Alter Table بکنی ، مثل همونکاری که مثلا Enterprise Manager در SQL Server میکنه