PDA

View Full Version : database



pooyansystem
سه شنبه 22 خرداد 1386, 12:22 عصر
میخوام در ابتدای اجرای برنامت وجودDataBase رو چک کنم اگر وجود نداشت اونو ایجاد کنم و اگر وجود داشت درست بودن اون و تطابقش با آخرین DataBase که خودم ایجاد کردم رو بررسی کنم من یه نمونه برنامه دیدم توتالار ASP که ابتدا یه setup برای database نوشته بودند ولی من نمیخوام با این دستورات کار کنم میخوام اطلاعات اخرین DataBase رو تو یه TextFile ذخیره کنم و بر اساس اون DataBase رو ایجاد یا Update کنم حالا من نمیدونم چه طور باید این کارها رو انجام بدم جداول و ساختارهاشون storeprocedure ها دیدهاو ...
در ضمن ممکنه در Databas که برنامه داره از اون استفاده میکنه یک سری اطلاعات وجود داشته باشه که نمی خوام اونا پاک بشن

Behrouz_Rad
سه شنبه 22 خرداد 1386, 12:36 عصر
این سوال رو چند ساعت پیش در بخش #C مطرح و پاسخت رو از من دریافت کردی.
ایجاد یک تاپیک در چند بخش بر خلاف قوانین این سایت است!
همچنین عنوان تاپیک نیز نامناسب است.

pooyansystem
سه شنبه 22 خرداد 1386, 12:40 عصر
چیزی که شما بهم گفتید خیلی مفید بود و من متوجه شدم برای ایجاد database جدید و یا تغییر database در صوتیکه اطلاعاتی تواون ثبت نشده باشه باید چیکار کنم ولی آقای راد من بهتون گفتم که جواب بخشی از سوالم رو نگرفتم همون چیزی که در انتها اضافه شده یعنی اگه Database وجود داشت و خواستم اطلاعات قبلی تغییر نکنه باید چیکار کنم

Behrouz_Rad
سه شنبه 22 خرداد 1386, 12:50 عصر
صرف نظر از نقض قوانین!
----------------------------------
صورت مسئله واضح نیست.
فرضا اگر دیتابیس وجود نداشت و قرار بود ایجاد بشه، آیا اطلاعاتی از قبل وجود داره که باید به اون اضافه بشه؟

pooyansystem
سه شنبه 22 خرداد 1386, 12:54 عصر
مثلا فرض کنید من یه نسخه از برنامه تهیه کردم بعد از مدتی یه تغییراتی تو اون میدم و از جمله یه سری تغیرات در Database خوب حالا وقتی من برنامه رو یه جایی نصب میکنم اگه قبلا برنامه رو اون سیستم نصب نبوده بنابراین اصلا Database وجود نداره و با روشی که شما گفتید اونو ایجاد میکنم اما اگه نسخه اولیه برنامه رو اون سیستم نصب بوده بنابراین اونdatabase وجود داره و یه سری اطلاعات در اون ثبت شده حالا من باید database رو update کنم و درضمن اطلاعات قبلیم هم پاک نشه

Behrouz_Rad
سه شنبه 22 خرداد 1386, 13:05 عصر
پس همیشه یک نسخه ی Backup از دیتابیست داشته باش و اون رو بر روی سیستم مقصد Restore کن.

موفق باشید.

pooyansystem
سه شنبه 22 خرداد 1386, 13:08 عصر
اطلاعاتی که کاربر برنامه ثبت کرده بعد از این که من database جدید خودم رو restore کردم از بین نمیره ؟؟؟

Behrouz_Rad
سه شنبه 22 خرداد 1386, 13:09 عصر
برنامه ی شما تحت شبکه است؟

pooyansystem
سه شنبه 22 خرداد 1386, 13:11 عصر
فعلا نه نیست

mahboob
سه شنبه 22 خرداد 1386, 13:11 عصر
جناب pooyansystem باید خدمتتون عرض کنم اگه تغییرات برنامه شما شامل database هم باشه امکان نداره اطلاعات موجود قبلی رو بتونید به database تون اضافه کنید به عنوان مثال اگه فیلدی به یکی از Table هاتون اضافه کرده باشید کلیه اطلاعات اون جدول از بین میره مگه اینکه یک برنامه جانبی بنویسید که مثلا قبل از اعمال ورژن جدید کلیه اطلاعات موجود در database رو بخونه و بعد پس از اعمال ورژن با در نظر گرفتن تغییرات موجود در بانکت (مثلا اگه فیلدی به جدولی اضافه شده توی برنامه باید باید بگی هر رکورد رو که به جدول اضافه میکنی اون فیلدم با این مقدار پر کن) برنامه رو طوری بنویسی که تغییرات database رو در نظر بگیره و اطلاعات موجود رو ه به بانکت اضافه کنه

Behrouz_Rad
سه شنبه 22 خرداد 1386, 13:14 عصر
دقیقا صحبت های فوق رو خواستم عرض کنم که فرمودند.

pooyansystem
سه شنبه 22 خرداد 1386, 13:27 عصر
یعنی هر بار که یه ورژن جدید از برنامم میسازم باید تغیرات رو با دیتابیس اولیه ام مقایسه کنم و اونها رو اعمال کنم . ببینید درست متوجه شدم وقتی یه ورزن جدید از برنامم میسازم میتونم برای storeprocedure هام یه script بسازم و در ابتدای برنامه اونو اجرا کنم و تغییراتی رو که در جداولم ایجاد شده باید تک تک بررسی کنم اونم با database اولیه ام چون ممکنه یه نفر نسخه اول برنامه رو خریده باشه و الان بخواد مثلا ورژن دهم رو بخره
در ضمن من نمیدونم چه طور از طریق کد نویسی یه script رو اجرا کنم

AminSobati
سه شنبه 22 خرداد 1386, 21:53 عصر
دوست عزیزم،
میتونین یک جدول داخل دیتابیس داشته باشید با یک رکورد و یک فیلد. در این جدول شما ورژن دیتابیس رو ذخیره کنید. زمانی که برنامه اجرا میشه، ورژن رو بخونین و مقایسه کنین با ورژنی که خود برنامه ازش اطلاع داره. فرضا اگر نسخه دیتابیس 3 باشه و برنامه شما دستورات TSQL برای رسوندن دیتابیس از ورژن 3 به 4 و از 4 به 5 رو در اختیار داره، این دستورات رو اجرا کنین تا دیتابیس به ورژن 5 برسه. یعنی حتما باید دستورات لازم (مثل ALTER TABLE و ALTER PROC و .... ) بصورت مستند سازی شده موجود باشه. اینکه برنامه خودش تشخیص بده ساختار دیتابیس فعلی چه چیزهایی کم داره و دستوراتش رو تولید کنه، اصلا فراموش کنید! چون شرکتهایی هستند که نرم افزار برای Database Compare تولید کردن و از این راه پول در میارن! این کار بسیار پر زحمته، پس حتما تغییرات رو خودتون باید در طی ورژنهای مختلف اصطلاحا Track کرده باشید.

pooyansystem
چهارشنبه 23 خرداد 1386, 06:38 صبح
از همه دوستان تشکر میکنم راستش آقای ثباتی من هم همچین فکری می کردم ولی رئیس شرکتم گفت از این روش استفاده نکنم .
در ضمن اگه امکان داره طریق اجرای یه فایل اسکریپت با کد نویسی رو بهم بگید(ترجیحا در #C)
بازم متشکرم

AminSobati
چهارشنبه 23 خرداد 1386, 23:44 عصر
شما هم میتونین بوسیه Command Object دستورات رو به SQL Server ارسال کنین و هم میتونین کل Script رو در یک فایل قرار بدین و به کمک OSQL.EXE اون رو جهت اجرا بدین به SQL Server