HamidReza Ireh

حمیدرضا ایره

HamidReza Ireh

حمیدرضا ایره

Rule یکی از امکانات جالب SQLserver میباشد که با استفاده از آن می توانیم داده های ثبت شده در بانک را اعتبار سنجی نمود. Rule ها تراکنش هایی از دستورات SQL که عموما متشکل از جملات شرطی هستند تشکیل شده است که وظیفه بالابردن اطمینان از صحت اطلاعات وارد شده را دارد.
یک Rule می تواند به فیلد خاص و یا نوع داده ای تعریف شده توسط کاربر اختصاص یابد تا محدودیتهایی را در ورود اطلاعات به فیلد خاصی اعمال کند . از جمله Rule هایی که در برنامه های فارسی کاربرد فراوانی دارد Rule تاریخ شمسی است که بازه هایی از روز و ماه و سال را که کاربر مجاز به ورود آنهاست را تعیین می کند و بدیهی است که مقادیر نامطلوب برای بانک هیچ گاه به بانک وارد نخواهند شد.
 از Rule ها استفاده می کنیم چون :

  •  ساختن Rule برای تعریف محدودیت در ورود اطلاعات
  • تخصیص Rule  به Column خاص و یا یک نوع داده  تعریف شده توسط کاربر
  • حذف محدودیت Column خاص و یا یک نوع داده  تعریف شده توسط کاربر بوسیله برداشتن Rule

به مثال زیر توجه نمایید :
 میخواهیم Data Type تعریف نماییم که تاریخ شمسی را به فرمت درست (رر/ م م/ س س) در جداول ذخیره نمایید. همانطور که میدایند تاریخ شمسی حتما باید شرایط زیر را داشته باشد:
   1- دو  کاراکتر اول آن که نشان دهنده سال شمسی است باید بین 50 و 99 باشد
   2- کاراکتر سوم آن حتما باید / باشد
   3- دو کاراکتر چهارم و پنجم آن که نشان دهنده ماه شمسی است باید بین 01 و 12 باشد
   4- کاراکتر ششم آن حتما باید / باشد
   5- دو کاراکتر هفتم و هشتم آن که نشان دهنده روز شمسی است باید بین 01 و 31 باشد
حال در مرحله اول برای اینکار یک Rule بنام Rul_date بصورت زیر می سازیم.
در این رول متغییر SS بعنوان یک پارامتر استفاده شده است.

CREATE RULE Rul_date 
AS
@SS BETWEEN '55/01/01' AND '99/12/29' AND
SUBSTRING(@SS,1,2)BETWEEN '50'AND '99' AND
SUBSTRING(@SS,4,2)BETWEEN '01'AND '12' AND
SUBSTRING(@SS,7,2)BETWEEN '01'AND '31' AND
SUBSTRING(@SS,3,1)='/' AND
SUBSTRING(@SS,6,1)='/' OR LEN(@SS)=0

حال باید Rule ای که ساخته ایم را به فیلد مورد نظر در جدول اختصاص دهیم .

EXEC sp_bindrule 'Rul_date', 'Tarikh'

حال فیلد Tarikh جدول ما دارای RULE هست (Rul_date) و قوانین تعریف شده در بر روی آن اعمال می گردد.

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

کاربران بیان میتوانند بدون نیاز به تأیید، نظرات خود را ارسال کنند.
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی