PDA

View Full Version : بروزرسانی database اصلی از روی دیتابیس شعبه ها



anamajnoonolhosein
دوشنبه 16 مرداد 1396, 17:20 عصر
دوستان لطفا بفرمائید که برای اضافه کردن اطلاعات ثبت شده در نسخه کوچک یا به عبارتی فرعی برنامه ی نوشته شده در c# به نسخه اصلی برنامه از چه روش و راه حلی می شه استفاده کرد؟

Mahmoud.Afrad
دوشنبه 16 مرداد 1396, 22:36 عصر
دیتابیس ها رو میخواهید یکسان سازی کنید؟ نوع دیتابیس؟ ورژن سرور؟

anamajnoonolhosein
دوشنبه 16 مرداد 1396, 22:48 عصر
ببینید نرم افزار دارای دو نسخه است یکی نسخه ای هست که باید این امکان رو داشته باشه که اطلاعات ثبت شده در نسخه ای که تو شهرستان های مختلف هست رو به صورت دستی بیارن و در اون ذخیره کرد
SQL server 2008

Mahmoud.Afrad
دوشنبه 16 مرداد 1396, 22:57 عصر
اطلاعات شهرستان در چه فرمتی منتقل میشه؟ دیتابیس یا فایل متنی ... ؟

anamajnoonolhosein
دوشنبه 16 مرداد 1396, 23:05 عصر
مشکل من همین هست که چه روش هایی برای این کار هست؟
و بهترین روش کدوم هست؟

anamajnoonolhosein
سه شنبه 17 مرداد 1396, 22:12 عصر
دوستان لطفا کسانی که تو این بحث تجربه ای دارن یا با این موضوع برخورد داشتن اینجا مطرح کنن بلکه ما هم به یه نتیجه ای برسیم و بتونیم پروژمون رو انجام بدیم
با تشکر فراوان

Mahmoud.Afrad
سه شنبه 17 مرداد 1396, 23:30 عصر
میتونید داده ها رو در قالب xml در فایلی ذخیره و به نسخه اصلی منتقل کنید.
برای گرفتن خروجی راه‌های مختلفی هست.
توسط کوئری https://docs.microsoft.com/en-us/sql/relational-databases/xml/basic-syntax-of-the-for-xml-clause
اگر از دیتاست XSD در برنامه‌تون استفاده کردید میتونید از متد WriteXml برای گرفتن خروجی و از ReadXml برای ورود اطلاعات به برنامه استفاده کنید.
https://msdn.microsoft.com/en-us/library/system.data.dataset_methods.aspx
یا اینکه کلا در برنامه ، خودتون اینکار رو انجام بدید.

برای وارد کردن هم راه هایی هست.
یک اینکه: باید یک مشخصه وجود داشته باشه که متوجه بشید چه رکوردهایی باید درج یا آپدیت بشن. یعنی باید از طریقی متوجه بشید چه رکوردهایی جدید هستند یا چه رکوردهایی تغییر کردند و نیاز هست که در نسخه اصلی هم تغییر کنند. برای این کار میتونید از RowVersion در دیتابیس sqlserver استفاده کنید به اینصورت که به هر جدولی که باید اطلاعاتش منتقل و یکسان سازی بشه، یک ستون از نوع Timestamp اضافه کنید(RowVersion و Timestamp هم معنی هستند). این ستون خودبه‌خود مقدار خواهد گرفت.
در برنامه اصلی کافیه اطلاعات رو لود کنید و هر رکوردی که ستون کلیداصلی جدید بود باید درج بشه، هر سطر تکراری که RowVersion متفاوت بود باید آپدیت بشه.