نمایش نتایج 1 تا 12 از 12

نام تاپیک: مقایسه دیتابیس جدید با دیتابیس قدیمی و آپدیت آن

  1. #1
    کاربر دائمی آواتار Javad_raouf
    تاریخ عضویت
    آذر 1388
    محل زندگی
    مشهد
    پست
    445

    مقایسه دیتابیس جدید با دیتابیس قدیمی و آپدیت آن

    سلام
    تا حالا شده بعد از اینکه نرم افزارتون رو به چندین نفر فروختین نرم افزارتون رو به روز کنید و در حین بروز رسانی مجبور به ایجاد تغییراتی در دیتابیس شوید؟

    حال برای اینکه این تغییرات را بر روی دیتابیس مشتری انجام دهید باید همه تغییراتی را که داده ایم در جایی ثبت بکنیم و بعد بر روی دیتابیس مشتری هم این تغییرات را انجام دهیم

    حال فرض کنید 10 تا مشتری دارید و نمی دانید چه تغییراتی را برای چه کسانی انجام داده اید

    بهترین راه اینه که نرم افزاری داشته باشیم که نام دو تا پایگاه داده را بگیره و مقایسه ای بین آنها انجام دهد و تغییرات را اعمال کند

    نرم افزار هایی برای اینکار هست ولی من قصد دارم شخصا نرم افزاری طبق خواسته های خودم برای این کار بنویسم و همچنین سورسش رو در این تاپیک قرار بدم تا دوستان دیگر هم بتونن از اون استفاده کنند
    و همچنین کسی اگر ایده ای به ذهنش می رسه کاملش کنه و سورس جدید رو قرار بده

    اگر سوالی هم برای نوشتن این نرم افزار داشتم توی همین تاپیک می پرسم
    با تشکر
    ==================
    نسخه های برنامه:
    ==================

    لینک دانلود اولین نسخه برنامه
    لینک توضیحات این نسخه در پست 9
    آخرین ویرایش به وسیله Javad_raouf : پنج شنبه 27 آبان 1389 در 13:59 عصر

  2. #2
    کاربر دائمی آواتار Javad_raouf
    تاریخ عضویت
    آذر 1388
    محل زندگی
    مشهد
    پست
    445

    نقل قول: مقایسه دیتابیس جدید با دیتابیس قدیمی و آپدیت آن

    برنامه تا یک حدی پیش رفته
    در حال حاضر برنامه به راحتی می تونه جداول رو به روز کنه
    فقط چند تا مشکل داره:
    1.کلید رو نمی تونه تشخصی بده و در نتیجه وقتی دیتابیس قدیمی به روز میشه کلید نداره
    2.امکان تغییر identity یک فیلد وجود نداره(کدش رو پیدا نکردم)
    3.عدم تشخیص identity Seed و identity Increment
    4.عدم تشخیص Default Value (که البته ره حلش رو فهمیدم و به زودی حلش می کنم)
    5.مکان فیلد ها به ترتیب نیست
    توضیح:
    فرض کنید دیتابیس قدیمی شما جدولی دارد با چنین فیلد هایی:
    f1
    f2
    f3
    f4
    و دیتابیس جدید:
    f1
    f2
    f5
    f3
    f4
    حال وقتی دیتابیس قدیم به روز می شود اینطوری به روز میشه:
    f1
    f2
    f3
    f4
    f5
    یعنی فیلد در آخر جدول اضافه میشه
    6.فیلدی را حذف نمی کند
    توضیح:
    یعنی اگر دیتابیس قدیمی فیلدی داشته باشد که در دیتابیس جدید وجود نداشته باشد حذف نمی شود
    (که البته از قصد این را گذاشتم)
    7.عدم تبدیل از text به دیگر نوع داده ها
    وقتی فیلدی از نوع داده text یا ntext باشه امکان تبدیلش به دیگر نوع داده ها وجود ندارد (یعنی من بلد نیستم)
    ---------------------------------------------
    مشکلاتم فعلا همیناست
    لطفا اگر کسی راه حلی برای مشکلی داره بگه

  3. #3
    کاربر دائمی آواتار MahmoudiNik
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    مشهد
    پست
    108

    نقل قول: مقایسه دیتابیس جدید با دیتابیس قدیمی و آپدیت آن

    خیلی عالیه
    من شخصا خیلی به همچین برنامه ای نیاز داشتم
    اگر چیزی به ذهنم برسه حتما دریغ نمی کنم
    راستی چیزی که باید بهش توجه بشه اینه که اول Table ها به روز بشوند بعد View ها و بعد Sp ها
    در غیر این صورت ممکنه به مشکل بر بخوریم

  4. #4
    کاربر دائمی آواتار MahmoudiNik
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    مشهد
    پست
    108

    نقل قول: مقایسه دیتابیس جدید با دیتابیس قدیمی و آپدیت آن

    سلام جواد جان
    می تونی سورسش رو هم در اختیارمون بزاری آخه منم میخام توی توسعه ی این برنامه سهیم باشم

  5. #5
    کاربر دائمی آواتار Javad_raouf
    تاریخ عضویت
    آذر 1388
    محل زندگی
    مشهد
    پست
    445

    نقل قول: مقایسه دیتابیس جدید با دیتابیس قدیمی و آپدیت آن

    سورس رو برات فرستادم عزیز
    توی تاپیک نمی زارم و فقط به کسانی که در ساختش همکاری کنند سورس رو می دم
    ولی exe رو بدون محدودیت پیوست کردم
    البته هنوز خیلی ناقصه و فقط Update جداول دیتابیس رو انجام میده
    لطفا دوستان تست کنند و نظراتشون رو بگن
    فایل های ضمیمه فایل های ضمیمه

  6. #6
    کاربر دائمی آواتار AmirAmiri
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    مشهد
    پست
    353

    نقل قول: مقایسه دیتابیس جدید با دیتابیس قدیمی و آپدیت آن

    سلام. خیلی کاره خوبی میکنی.
    خیلی عالیه اگه برنامه کامل بشه خیلی طرفدار پیدا میکنه از جمله خوده من.
    من برای نرم افزار خودم تقریبا به چنین مشکلی برخوردم و به سختی تونستم بعضی قسمتاش رو حل کنم.
    مثلا برای بروزرسانی تمامه sp ها حوصله نداشتم وجود یا عدم وجود sp ها رو با EXISTS چک کنم به همین دلیل کدی نوشتم که تمامه sp های موجود رو پیدا میکنه و پاک میکنه.
    البته باید بگم که من برای بالا رفتنه امنیت، اسم تمامه sp های خودم رو با کلمه proc شروع کردم به همین دلیل توی کده زیر خیلی راحت میتونم اونا رو پیدا کنم:
    DECLARE @sp_Name nvarchar(MAX)
    SET @sp_Name=''
    SELECT @sp_Name=NAME FROM sys.objects WHERE type='P' AND NAME LIKE 'proc_%'
    WHILE(@sp_Name!='')
    BEGIN
    exec('DROP PROC ' + @sp_Name)
    SET @sp_Name=''
    SELECT @sp_Name=NAME FROM sys.objects WHERE type='P' AND NAME LIKE 'proc_%'
    END

    بعد از اجرای این تمامه sp ها رو دوباره CREATE میکنم پس نیازی به ALTER کردن نیست.


    برای تغییر IDENTITY به ON یا OFF هم از این کد استفاده کردم که مشکل داره و ON یا OFF نمیشه و توی یک تاپیک جدید مشکل رو مطرح کردم امیدوارم به جواب برسه :
    IF IDENT_INCR('[table name]') IS NOT NULL
    SET IDENTITY_INSERT dbo.[table name] OFF


    امیدوارم برنامه هر چی زود تر آماده بشه و در اختیار عموم قرار بگیره.
    موفق و پیروز باشی.

  7. #7
    کاربر دائمی آواتار AmirAmiri
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    مشهد
    پست
    353

    نقل قول: مقایسه دیتابیس جدید با دیتابیس قدیمی و آپدیت آن

    راستی شاید اینا به دردت بخوره.
    برای بدست آوردن Indentity Increment از این تابع استفاده کن :
    IDENT_INCR ( 'table_or_view' )

    برای بدست آوردنIdendity Seed هم از این تابع استفاده کن :
    IDENT_SEED ( 'table_or_view' )

    اینارو که بدست آوردی متونی توی ALTER TABLE ازشون استفاده کنی.

  8. #8

    Cool نقل قول: مقایسه دیتابیس جدید با دیتابیس قدیمی و آپدیت آن

    سلام
    برنامه تا کجا پیش رفته؟

  9. #9
    کاربر دائمی آواتار Javad_raouf
    تاریخ عضویت
    آذر 1388
    محل زندگی
    مشهد
    پست
    445

    نقل قول: مقایسه دیتابیس جدید با دیتابیس قدیمی و آپدیت آن

    سلام دوستان
    معذرت خواهی شدید به خاطر اینکه چند وقتیه اصلا وقت ندارم و به این تاپیک نرسیدم
    --------------------------------
    فقط رو حساب اینکه حرف زدم یکم روی برنامه وقت گذاشتم و در حد خیلی کم پیش بردمش
    سورس برنامه رو می زارم اینجا تا بقیه دوستان بقیه قسمتاش رو کامل کنند چون من دیگه فکر نکنم وقت کنم
    ----------------------------------
    امکانات این نسخه:
    یک DGV داریم به نام لیست تغییرات که هر تغییری یافت بشود در این DGV لیست شده و کاربر می تونه با تیک زدن آن دیتابیس را به روز کند
    در حال حاضر فقط جداول مقایسه می شوند و Sp ها
    مقایسه جداول دو دیتابیس:
    اول چک میکنه همه جداول دیتابیس جدید در دیتابیس قدیم هستند یا نه؟
    اگر جدولی در دیتابیس قدیم نبود اسم جدول رو به لیست تغییرات اضافه می کنه
    و اگر جدول وجود داشت باز چک می کند که آیا همه فیلد های جدول جدید در جدول قدیمی وجود دارد
    اگر فیلد وجود نداشت آن را در لیست تغییرات می آورد
    و اگر وجود داشت چک می کند که آیا خصوصیات(Data Type;Length;Allow Nulls) فیلد قدیم با فیلد جدید یکی است؟
    اگر یکی نبود فیلد را در لیست تغییرات می آورد
    و اگر یکی بود هیچ کاری نمی کند
    ------------------------------------------------
    کاستی های مقایسه دو جدول:
    1.عدم تشخیص فیلد کلید و به روز رسانی آن
    2.عدم تشخیص ارتباطات و به روز رسانی آنها
    (که البته مورد 1 و 2 را هم راه حلش رو یافتم ولی وقتشو ندارم)
    ------------------------------------------------
    امکان بعدی مقایسه Stored Procedure ها است که برنامه بدون هیچ نقصی به طور کامل آنها را مقایسه کرده و به روز می سازد
    ------------------------------------------------
    امیدوار بقیه دوستان در کامل سازی برنامه کمک کنند

    و باز هم معذرت می خوام از اینکه یکم دیر شد

  10. #10
    کاربر دائمی آواتار Javad_raouf
    تاریخ عضویت
    آذر 1388
    محل زندگی
    مشهد
    پست
    445

    نقل قول: مقایسه دیتابیس جدید با دیتابیس قدیمی و آپدیت آن

    این نمایی از برنامه:


    لینک دانلود هم پیوست شد
    -------------
    لینک دانلود در پست اول هم قرار گرفت
    عکس های ضمیمه عکس های ضمیمه
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله Javad_raouf : چهارشنبه 26 آبان 1389 در 11:40 صبح

  11. #11
    کاربر تازه وارد آواتار shgroup
    تاریخ عضویت
    آذر 1386
    محل زندگی
    شاهرود
    پست
    99

    نقل قول: مقایسه دیتابیس جدید با دیتابیس قدیمی و آپدیت آن

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

  12. #12

    نقل قول: مقایسه دیتابیس جدید با دیتابیس قدیمی و آپدیت آن

    واقعا عالیه. تبریک می گم.
    می تونی رو کمک من هم حساب کنی.
    کلا اگه بشه داده ها مثلا از جدول Asnad منتقل بشه به جدول Docs ( نسخه پیشرفت کرده مثلا )
    خیلی عالی میشه.

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

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •