PDA

View Full Version : امکان نوشتن تابع



alireza643
سه شنبه 09 مرداد 1386, 10:26 صبح
سلام
من یه برنامه دارم که یه نقشه به کاربر نشون میده کاربر میتونه روی نقشه یک نقطه رو انتخاب کنه و ثبت کنه که در چه تاریخی میخواد به او محل سفر کنه. بعد از ثبت من این اطلاعات رو وارد دیتابیس میکنم.
من میخوام تعیین کنم که آیا کار بر به فاصله ی 30 روز از این سفر باز هم سفری به این محدوده ثبت کرده یا نه. اگر ثبت کرده مقدار یه فیلد boolean رو تو این رکورد True کنه.
من این سیستم رو قبلا با c++ و access نوشته بودم و موقعی که میخواستم یک سفر رو ثبت کنم اول تو برنامه تمام داده های دیتابیس رو بررسی میکردم که ببینم رکوردی با این شرایط وجود داره یا نه اگر بود اطلاعات رو وارد دیتا بیس میکردم و مقدار این فیلد رو با برنامه c++ با True پر میکردم.
الان من میخوام از sql استفاده کنم میخواستم ببینم sql به من این امکان رو میده که من فقط تاریخ و محل رو از برنامه برای دیتابیسم بفرستم بعد وقتی یه رکورد جدید به دیتابیس اضافه شد یه تابع فعال بشه و بررسی کنه رکوردی با مشخصات ذکر شده در بالا وجود داره یا نه اگر وجود داشت این فیلد رو برای من مقدار دهی کنه یا نه؟
من تو sql مبتدی هستم اگر این امکان تو sql هست منو راهنمایی کنید که چطوری میتونم این کار رو انجام بدم.

supporter
سه شنبه 09 مرداد 1386, 22:37 عصر
شما میتونید یک Stored Procedure بنویسید که پارامترهای ورودیش تاریخ و محل باشه و با این SP رکورد مربوط رو توی جدول مورد نظرتون Insert کنید.
بعد یه Trigger روی جدولتون بنویسید تا هر وقت رکوردی توی این جدول Insert شد بررسی کنه رکوردی با مشخصات مورد نظرتون وجود داره یا نه و اگر وجود داره فیلد مربوط رو Update کنه.
Trigger هم یه نوع SP است که به طور خودکار موقع Insert, Update و یا Delete رکوردی در/از جدول(با توجه به نوع Trigger) فراخوانی میشه.
توی Books Onlin یا همین بخش هم می تونید مطالب مفیدی در مورد SP , Trigger نویسی پیدا کنید.