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

نام تاپیک: تشخیص و جلوگیری از ورود رکورد تکراری (با استفاده از تعریف unique constraint در جدول)

  1. #1
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,684

    تشخیص و جلوگیری از ورود رکورد تکراری (با استفاده از تعریف unique constraint در جدول)

    تاپیک های مرتبط:

    آموزش: تشخیص و جلوگیری از ورود رکورد تکراری در فرم bound (با استفاده از رخداد before update) (barnamenevis.org)
    آموزش: تشخیص و جلوگیری از ورود رکورد تکراری (با استفاده از data-macro در جدول) (barnamenevis.org)
    آموزش: جلوگیری از ورود داده تکراری در اکسس + نمایش پیغام خطا (barnamenevis.org)


    جدول نمونه زیر رو در نظر بگیرین:



    میخواهیم که جلوی ثبت رکورد تکراری بر اساس سه فیلد FirstName, LastName, DepartmentID رو بگیریم - به فیلدهای JobID و BirthDate کاری نداریم.
    آخرین ویرایش به وسیله mazoolagh : چهارشنبه 18 مهر 1403 در 19:21 عصر

  2. #2
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,684

    نقل قول: تشخیص و جلوگیری از ورود رکورد تکراری (با استفاده از تعریف unique constraint در جدول)

    برای تعریف یک constraint هم میتونیم از یکی راه های زیر بریم:

    1- در محیط طراحی جدول بخش indexs رو باز میکنیم،
    تعریف فعلی ایندکس های جدول به این شکل هست:

    12.png

    حالا یک constraint از نوع unique روی سه فیلد مورد نظر میسازیم:

    13.png

    و جدول رو save میکنیم.

    2- یک کوئری data definition تعریف میکنیم:
    ALTER TABLE Personnel
    ADD CONSTRAINT unique_constraint UNIQUE (FirstName, LastName, DepartmentID)

  3. #3
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,684

    نقل قول: تشخیص و جلوگیری از ورود رکورد تکراری (با استفاده از تعریف unique constraint در جدول)

    بعد از تعریف این constraint ،
    دیگه هیچ راهی برای insert/update رکورد تکراری نیست: چه در فرم، چه جدول و چه از طریق کوئری.

    در جدول:
    14.png


    از طریق UPDATE کوئری:
    UPDATE Personnel
    SET FirstName = "gina", LastName = "grimes", DepartmentID = 2
    WHERE ID=5

    11.png

    از طریق INSERT کوئری:
    INSERT INTO Personnel
    (FirstName, LastName, DepartmentID, JobID, BirthDate)
    VALUES ("gina", "grimes", 2, 5, #2024-10-09#)

    15.png

  4. #4
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,684

    نقل قول: تشخیص و جلوگیری از ورود رکورد تکراری (با استفاده از تعریف unique constraint در جدول)

    در فرم برای تشخیص رکورد تکراری از رخداد form error استفاده میکنیم:
    Option Compare Database
    Option Explicit

    Private Sub Form_Error(DataErr As Integer, Response As Integer)
    Select Case DataErr
    Case 3022
    If MsgBox( _
    Prompt:="A record with same (FirstName, LastName, Department) exists!" _
    & vbCrLf & vbCrLf & "Drop Changes ?", _
    Buttons:=vbExclamation + vbYesNo, _
    Title:="Duplicate Record") = vbYes Then
    Me.Undo
    End If
    Response = acDataErrContinue
    Case Else
    Response = acDataErrDisplay
    End Select
    End Sub


    16.png

  5. #5
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,684

    نقل قول: تشخیص و جلوگیری از ورود رکورد تکراری (با استفاده از تعریف unique constraint در جدول)

    1- در اینجا برای سادگی فقط کدهای مورد نیاز همین بحث آمده،
    در یک برنامه عملی باید form validation رو دقیق پیاده کنین - یک آموزش همراه با کد نمونه رو در تاپیک زیر میتونین ببینین (پست شماره 14 و به بعد):
    مبتدی: راهنمایی در نوشتن مسیج باکس (barnamenevis.org)

    2- این روش جلوی ورود تکراری در هر موقعیتی رو میگیره (فرم، اجرای کوئری یا مستقیم از طریق جدول).
    هر چند که به طور منطقی در یک برنامه درست کاربر مطلقا هیچ دسترسی مستقیم به جدول ها نداره.

    برنامه پیوست:
    فایل های ضمیمه فایل های ضمیمه

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

  1. سوال در رابطه با CONSTRAINT محدودیت unique
    نوشته شده توسط raha_ebr در بخش مدیریت دیتابیس (Database Administration)
    پاسخ: 3
    آخرین پست: شنبه 23 خرداد 1394, 13:56 عصر
  2. the columns in table do not match an existing primary key or unique constraint
    نوشته شده توسط mosafer_deltang در بخش تحلیل و طراحی بانک اطلاعات
    پاسخ: 1
    آخرین پست: یک شنبه 19 آبان 1392, 20:48 عصر
  3. نحوه تعریف یک فیلد به عنوان Unique Constraint
    نوشته شده توسط A.Yousefi در بخش T-SQL
    پاسخ: 7
    آخرین پست: شنبه 09 اردیبهشت 1391, 10:36 صبح
  4. تعريف قيد براي فيلد هاي جدول check constraint
    نوشته شده توسط masy1366 در بخش تحلیل و طراحی بانک اطلاعات
    پاسخ: 8
    آخرین پست: چهارشنبه 19 بهمن 1390, 09:03 صبح
  5. سوال: تشخیص تعداد پرانتزهای باز و بسته
    نوشته شده توسط parva-88 در بخش C#‎‎
    پاسخ: 6
    آخرین پست: جمعه 03 دی 1389, 18:00 عصر

برچسب های این تاپیک

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

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