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

نام تاپیک: upgrade کردن

  1. #1
    کاربر تازه وارد آواتار neda azadi
    تاریخ عضویت
    آذر 1385
    محل زندگی
    شیراز
    پست
    50

    upgrade کردن

    سلام . وقت همگی خوش
    من در روتین ذخیره یک فرمم از sp استفاده می کنم که فیلد های جدولم رو بهش پاس می دم و ... . در حالت عادی مشکلی وجود ندراه تا و قتیکه نیاز به اضافه کردن یک فیلد جدید پیدا می شه که باید به جدول اصلی و sp اضافه شود . من 2 تا سوال دارم :
    1- می شه در sp بی خیا بعضی فیلدها شد و بدون مقدار پاس داده شوند ؟
    2- حالا اگر جواب سوال اول منفی باشه مسلما من باید پایگاه اطلاعات کسی که از برنامه من قبلا استفاده می کرده و من الان باید به اون یک exe جدید بدم را upgrade کنم درسته ؟ برای این کار من یک برنامه جدا به نام upgrade دارم ولی نمی خوام اون رو به دست مشتری بدم به خاطر همین بعضی از کدهای اون رو به برنامه اصلی ام آوردم و توی یک کلید جدید قرار دادم ولی همون کد توی برنامه upgrade هیچ مشکلی نداره ولی توی برنامه اصلی خطای timout expression میده ؟!!!
    کسی می دونه چرا ؟
    مرسی

  2. #2
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727
    می شه در sp بی خیا بعضی فیلدها شد و بدون مقدار پاس داده شوند ؟
    اگه در تعریف جدول فیلدهای مورد نظرت not null نباشند، میتونی اونا رو بی مقدار بذاری که در این صورت به صورت اتوماتیک sql بهشون مقدار null میده.

  3. #3
    دوست عزیزم،
    من از جزئیات کار شما اطلاعی ندارم. آیا منظورتون اینه که تغییرات جدید دیتابیس که مثلا چندین ALTER هستش رو در برنامه خودتون اجرا میکنین برای کاربر تا دیتابیس به روز بشه؟

  4. #4
    کاربر تازه وارد آواتار neda azadi
    تاریخ عضویت
    آذر 1385
    محل زندگی
    شیراز
    پست
    50
    نقل قول نوشته شده توسط AminSobati مشاهده تاپیک
    دوست عزیزم،
    من از جزئیات کار شما اطلاعی ندارم. آیا منظورتون اینه که تغییرات جدید دیتابیس که مثلا چندین ALTER هستش رو در برنامه خودتون اجرا میکنین برای کاربر تا دیتابیس به روز بشه؟

    بله . آقای ثباتی عزیز همین طوره و همون طوری که گفتم این دستور alter در برنامه اصلی من با error timout expire مواجه می شود ولی در برنامه upgrade مشکلی ندارد !!

  5. #5
    مورد مشابه رو من در محصول یکی از شرکتهای نرم افزاری دیدم. این ALTERها در ابتدای برنامه اجرا میشد و زمانی که مثلا 3 کاربر همزمان برنامه رو اجرا میکردند، دو تای دیگه Block میشدند.
    توجه داشته باشید که ALTER TABLE باعث Lock کردن کل جدول میشه و کسی که زودتر شروع کنه کارش بدون مشکل پیش میره. اساسا این نوع تغییرات روی ساختار باید فقط یکبار اجرا بشه و اگر در زمانی که سرور سرش خلوته صورت بگیره، چه بهتر!

  6. #6
    احتمالا اگه از شی ADO استفاده میکنید :

    خصوصیت CommandTimeout شی Connection رو به این شکل تنظیم کنید

    Con.CommandTimeout = 36000
    (مقدار بر حسب ثانیه)

    شاید لازم باشه اینکار رو هم انجام بدید :
    عکس های ضمیمه عکس های ضمیمه

  7. #7
    تغییر Timeout به جای خود، اما روش اصولی این هست که ما مانع اصلی رو برطرف کنیم. فرضا اگر یک Query در بهترین حالت خودش 2 دقیقه طول میکشه، چاره ای نیست، باید Timeout رو افزایش داد. اما در موردی که الان مطرحه، ما میتونیم به روش صحیح مشکل رو برطرف کنیم.

  8. #8
    تنظیم دوم رو تستش کردم ،
    فقط با تنظیم همون خصوصیت CommandTimeout شی Connection از داخل اینترفیس تون ، مشکل حل میشه

  9. #9
    کاربر تازه وارد آواتار neda azadi
    تاریخ عضویت
    آذر 1385
    محل زندگی
    شیراز
    پست
    50
    آقای ثباتی متاسفانه من حتی وقتی خودم به تنهایی روی سرور کار می کنم یعنی هیچ باری روی شبکه وجود ندارد هم با این مشکل مواجه هستم . بعد از این چرا در یک کد این query بدون هیچ مشکلی اجرا می شود ولی در جای دیگر با این خطامواجه می شود ؟

  10. #10
    ندا جان دلایل متعددی میتونه چنین چیزی رو توجیه کنه. باز بودن حتی یک Transaction قادره کار شما رو Block کنه. قبل از اجرای دستورات خوبه داخل دیتابیس مورد نظر DBCC OPENTRAN رو اجرا کنین و ببینین آیا Transaction باز وجود داره یا خیر.
    از طرفی ممکنه Script شما واقعا در حدی سنگین باشه که اجرای اون واقعا چند دقیقه طول بکشه. اگر مطمئن هستین که اینطوره، میتونین طبق پیشنهاد آقای معینی Timeout رو افزایش بدین

  11. #11
    کاربر تازه وارد آواتار neda azadi
    تاریخ عضویت
    آذر 1385
    محل زندگی
    شیراز
    پست
    50
    نقل قول نوشته شده توسط AminSobati مشاهده تاپیک
    ندا جان دلایل متعددی میتونه چنین چیزی رو توجیه کنه. باز بودن حتی یک Transaction قادره کار شما رو Block کنه. قبل از اجرای دستورات خوبه داخل دیتابیس مورد نظر DBCC OPENTRAN رو اجرا کنین و ببینین آیا Transaction باز وجود داره یا خیر.
    از طرفی ممکنه Script شما واقعا در حدی سنگین باشه که اجرای اون واقعا چند دقیقه طول بکشه. اگر مطمئن هستین که اینطوره، میتونین طبق پیشنهاد آقای معینی Timeout رو افزایش بدین

    آقای ثباتی عزیز متاسفانه هر دو کاری که شما فرموده بودید رو انجام دادم ولی باز هم مشکل وجود داره . یعنی timout رو افزایش دادم و در هر لحظه ای از اجرای برنامه ام DBCC OPENTRAN رو اجرا کردم ولی پیغام NO TRANSACTION ISNOT ACTVE رو دریافت کردم حتی لحظه ای که query alter table ای که قفل می شه رو اجرا کردم . همه transaction هام رو هم commit کردم . دیگه نمی دونم چه کار باید بکنم ؟

  12. #12
    زمانی که تاخیر رو مشاهده کردین (و هنوز ادامه داره)، EXEC SP_WHO رو اجرا کنین تا ببینید آیا کسی شما رو BLock کرده یا خیر. در خروجی EXEC SP_WHO یک ستون داره به اسم blk. همه رکوردها باید این فیلد براشون خالی (یا صفر) باشه

تاپیک های مشابه

  1. upgrade کردن کریستال ریپورت vs.net به ورژن 11
    نوشته شده توسط once4ever در بخش گزارش سازی با Crystal Report
    پاسخ: 17
    آخرین پست: دوشنبه 31 اردیبهشت 1386, 18:44 عصر
  2. Crystal Reports.Net upgrade
    نوشته شده توسط noory در بخش گزارش سازی با Crystal Report
    پاسخ: 0
    آخرین پست: پنج شنبه 09 فروردین 1386, 16:11 عصر
  3. upgrade کردن جدولها و فیلدها
    نوشته شده توسط Marjan_pr در بخش SQL Server
    پاسخ: 5
    آخرین پست: یک شنبه 13 اسفند 1385, 16:42 عصر
  4. مشکل در ساخت setup بعد از upgrade
    نوشته شده توسط GOLDEN USER در بخش Setup و Deployment
    پاسخ: 2
    آخرین پست: یک شنبه 26 شهریور 1385, 20:12 عصر

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

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