PDA

View Full Version : کم کردن مقدار یک فیلد



gilda azary
چهارشنبه 17 اسفند 1390, 13:05 عصر
سلام.تشکر میکنم از سایت بسیار مفیدتون
سوالی داشتم ممنون میشم راهنماییم کنید,من مشغول نوشتن برنامه یه ویدیو کلوبم فعلا 2 تا تیبل ساختم به نامهای فیلم و کرایه که یکی از فیلدهای تیبل فیلم مربوط میشه به تعداد نسخه های موجود از هر فیلم حالا میخام هربار که فیلمی را کرایه میدم یکی از این فیلد کم بشه مثلا اگه قبلا 5 تا نسخه بوده با یه بار کرایه دادن 4 بشه ولی نمیدونم چطوری باید اینکارا انجام بدم ؟؟آیا با دستور آپدیت میشه؟؟اگه میشه چطوری؟؟
همینطور وقتی مشتری فیلم را برمیگردونه دوباره یکی به تعداد فیلدم اضافه بشه!!
راستی برنامه را با زبان سی شارپ مینویسم و از اس کیو ال سرور 2008 استفاده کردم

nedata
چهارشنبه 17 اسفند 1390, 13:08 عصر
شما بايد از تريگر استفاده كنيد

gilda azary
چهارشنبه 17 اسفند 1390, 13:17 عصر
میشه بیشتر توضیح بدید؟
یا اگه کدی دارید که مفیده بنویسید؟

Galawij
چهارشنبه 17 اسفند 1390, 13:43 عصر
سلام،
باید یک کم روی تحلیلی که انجام دادید کار کنید!
تحلیل شما درست نیست. اگر بر اساس این طرز فکر جلو برید اونوقت چطور می دونید که در هر لحظه چند نسخه کلی از هر فیلمی دارید؟؟!!
باید در جدول مربوط به کرایه که شامل فیلدهای: کد فیلم و کد مشتری و تاریخ کرایه و ... هست، هر دفعه که فیلمی کرایه داده می شود به صورت ضمنی تعداد نسخه های اجاره داده شده از آن فیلم را به دست بیارید و از تعداد کل نسخه های موجود آن فیلم کم کنید تا تعداد موجود از آن فیلم را داشته باشید.

monirprogram
چهارشنبه 17 اسفند 1390, 13:54 عصر
حرف دوستمون درسته. که تعداد رو خودت حساب کنی هر بار. اما میشه هم از دستور update هم استفاده کرد. اینطور که برای جدول لیست فیلمها یه id مشخصه در نظر بگیر و هر بار که اون ایدی اتفاقی برای افتاد کم یا زیادش کنی.
مثل این
update tblfilm set count=count-1 where id=@id

gilda azary
پنج شنبه 18 اسفند 1390, 00:13 صبح
خب درسته , دو تا فیلد دارم که یکیش مربوط میشه به تعداد نسخه های فیلم و یکی هم مربوط میشه به تعداد نسخه های باقیمانده از فیلم+ اینکه توی همون فرمی که مربوط به کرایه فیلم یه باتن سرچ هم قرار دادم که قبل از اینکه فیلمی کرایه داده بشه اول سرچ میشه که دقیقا چند تا نسخه بوده و چندتاش باقیمونده

tiphooo
پنج شنبه 18 اسفند 1390, 02:28 صبح
کنترل چیزی که می گویید با فیلد کار خوبی نیست مثلا اگر از یک فیلم فقط یک عدد دارید و آن را کرایه داده اید و شما تعداد این فیلم را در سیستم الان صفر کرده اید ، حال اینکه فیلم بازگردانده شده و شما فراموش کرده اید که برگشت آن را ثبت کنید در این صورت این فیلم شما ممکن است مدت ها موجود باشد و شما نتوانید آن را اجاره دهید چون موجودی صفر است.
شما باید چیزی شبیه سیستم انبار تعریف کنید که با اجاره هر فیلم اطلاعات مربوط به فیلم و اجاره گیرنده هم ثبت شود و هر از چندگاه با نگاهی به این جدول متوجه می شوید که کدام فیلم ها هنوز دست مشتری است و یا فیلم برگشت داده شده ولی شما ثبت برگشت آن را فراموش کرده اید
دنبال تحلیل سیستم انبار باشید
سوالی داشتید بپرسید راهنمایی کنم

gilda azary
پنج شنبه 18 اسفند 1390, 16:17 عصر
کنترل چیزی که می گویید با فیلد کار خوبی نیست مثلا اگر از یک فیلم فقط یک عدد دارید و آن را کرایه داده اید و شما تعداد این فیلم را در سیستم الان صفر کرده اید ، حال اینکه فیلم بازگردانده شده و شما فراموش کرده اید که برگشت آن را ثبت کنید در این صورت این فیلم شما ممکن است مدت ها موجود باشد و شما نتوانید آن را اجاره دهید چون موجودی صفر است.
شما باید چیزی شبیه سیستم انبار تعریف کنید که با اجاره هر فیلم اطلاعات مربوط به فیلم و اجاره گیرنده هم ثبت شود و هر از چندگاه با نگاهی به این جدول متوجه می شوید که کدام فیلم ها هنوز دست مشتری است و یا فیلم برگشت داده شده ولی شما ثبت برگشت آن را فراموش کرده اید
دنبال تحلیل سیستم انبار باشید
سوالی داشتید بپرسید راهنمایی کنم


درسته حق با شماست.
میشه بگید که چطوری میتونم با یه تریگر مقدار فیلد کم کنم؟(با هر بار کرایه دادن فیلم)

Galawij
جمعه 19 اسفند 1390, 09:38 صبح
سلام،

میشه بگید که چطوری میتونم با یه تریگر مقدار فیلد کم کنم؟(با هر بار کرایه دادن فیلم)
در مورد تریگرها قبلاً توضیحاتی داده شده. مثل این لینک (http://barnamenevis.org/showthread.php?292975-%DA%A9%D9%84%DB%8C%D8%AF-%D8%AE%D8%A7%D8%B1%D8%AC%DB%8C) و این لینک (http://barnamenevis.org/showthread.php?296640-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%AA%D8%B1%DB%8C%DA%AF%D8%B1).

gilda azary
جمعه 19 اسفند 1390, 09:58 صبح
سلام،

در مورد تریگرها قبلاً توضیحاتی داده شده. مثل این لینک (http://barnamenevis.org/showthread.php?292975-%DA%A9%D9%84%DB%8C%D8%AF-%D8%AE%D8%A7%D8%B1%D8%AC%DB%8C) و این لینک (http://barnamenevis.org/showthread.php?296640-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%AA%D8%B1%DB%8C%DA%AF%D8%B1).

مرسی.لطف کردید!!

baktash.n81@gmail.com
شنبه 20 اسفند 1390, 08:21 صبح
سلام

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

در خصوص اینکه دوتا فیلد برای تعداد کل فیلم ها و تعداد آنها که در اجاره هستند تعریف کنیم یعنی طراحی که خودتون انجام داده بودید ... روش درستیه ... حالا اینکه شما از چه مکانیزمی برای برروز نگهداشتن این فیلدها استفاده می کنید مهمه ... مثلا شما یه فرم داری برای ثبت اجاره فیلم که اطلاعات پر می شه در هنگام ذخیره شما یک SP فراخوانی می کنی که عمل Insert رو تو جدول اجاره انجام می ده ... همون SP هم می آد مقدار فیلم موجود رو Update می کنه ..

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

متاسفانه تو محصولات نرم افزاری موجود در بازار هم این استاندارد ها رعایت نمی شه ... اسراری هم نیست که شما هم رعایت کنید ولی بهتره اگه کاری رو انجام می دید اصولی باشه ...