PDA

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



shayan_delphi
چهارشنبه 22 اسفند 1386, 21:40 عصر
سلام
بانک اطلاعاتی برنامه sql server هست و تغییرات و امکانات زیادی بهش اضافه میشه.
حالا برای update کردن سیستم کاربران که فایل بانک برای آنها متفاوت است چه راهی پیشنهاد می کنید؟
بهترین راهی که بتونم تغییرات جدید را روی دیتابیس کاربران اعمال کنم ؟

Vahid_moghaddam
پنج شنبه 23 اسفند 1386, 10:53 صبح
تولید script های مربوط به تغییرات و اجرای اونها روی کامپیوتر کاربر.

mohinsoft
پنج شنبه 23 اسفند 1386, 19:41 عصر
با سلام
من این کار رو میکنم:
در مقصد1- ابتدا بانک اطلاعاتی خالی یا موقت میسازم2-بانک اطلاعاتی قدیمی که ورود اطلاعات شده بود رو توی بانک اطلاعاتی خالی import میکنم3-بانک اطلاعاتی قدیمی رو حذف 4-بانک جدید رو در attach میکنم5-اطلاعات از جدول موقت رو توی بانک import میکنم
بعد از این مراحل داده های قبلی رو با ساختار جدید دارم
موفق باشید

SYNDROME
جمعه 24 اسفند 1386, 00:01 صبح
با دستور Insert Into اطلاعات جدول قدیم را در جدول جدید که خالی کرده اید بریزید و بانک جدید را جایگزین بانک قبلی کنید.
موفق باشید

mohinsoft
جمعه 24 اسفند 1386, 15:13 عصر
باسلام
آقای SYNDROME (http://barnamenevis.org/forum/member.php?u=35868) امکانش هست در مورد راه حلی که گفتید یک مثال بزنید و کد بنویسید فرض کنید که اطلاعات جدولی به نام kala قدیمی را در جدول kalaی جدید میخواهیم بریزیم چه کد insert into باید نوشته شود؟

SYNDROME
جمعه 24 اسفند 1386, 18:25 عصر
من بانکی را به نام Test دارم که کاربر قبلا اطلاعات را داخل آن وارد کرده است.
حالا می خواهم بانک جدید را جایگزین بانک قبلی کنم.
بانک قبلی را Deattach می کنم و بانک جدید را Attach می کنم و بانک قبلی را با نام دیگری مثلاً TestTemp دوباره Attach می کنم.
حالا دستور زیر را روی یک Tbl_Name انجام می کنم.


Delete
From Test.dbo.Tbl_Name

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


Insert Into Test.dbo.Tbl_Name(Name,Family)
Select Name,Family
From TestTemp.dbo.Tbl_Name

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

shayan_delphi
جمعه 24 اسفند 1386, 20:57 عصر
تولید script های مربوط به تغییرات و اجرای اونها روی کامپیوتر کاربر.
فعلا از همین روش استفاده می کنیم ولی تعداد کاربرها زیاد شده و این روش دیگه با تغییرات زیاد
قابل اجرا نیست.

با دستور Insert Into اطلاعات جدول قدیم را در جدول جدید که خالی کرده اید بریزید و بانک جدید را جایگزین بانک قبلی کنید.
موفق باشید
مشکل اینجاست که تعداد جداول،تغییرات و کاربران زیاده!!
و ما می خواهیم به نحوی از حضور در محل صرف نظر کنیم.
راه حل هایی که به نظر خودم می رسه :
1-اجرای اسکریپت تغییرات روی سیستم کاربر(روش جاری)
2-ایجاد فایل اجرایی برای اجرای تغییرات برای یکبار
3-Bstch فایل شامل تغییرات
4-برنامه third Party که با مقایسه دو دیتابیس تغییرات را برای ما لیست و همسان سازی را انجام بده.
کسی از دوستان همچنین برنامه ای سراغ داره؟خودم نمونه هایی دارم ولی فقط تغییرات را لیست می کنه!

Sub Zero
دوشنبه 19 فروردین 1387, 12:09 عصر
چرا از امکان Replication خود Sql Server استفاده نمی کنید ؟