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

نام تاپیک: کمک فوری:چگونگی رفع خطای key violation

  1. #1

    کمک فوری:چگونگی رفع خطای key violation

    باسلام
    من یک جدول دارم که دارای یک کلیدمیباشدهنگامی که یک کلیدتکراری می خواهدذخیره شودپیغام key violation داده می شودوهرکاری می کنک که آنراکنترل کنم نمی شودلطفا مرادقیقا راهنمایی کنید.البته درسایت این موضوع قیدشده ولی جوابی که به آن داده شده بودرانتوانستم پیاده کنم. باتشکرفراوان

  2. #2
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379
    لطفا یک نمونه برنامه اینجا ضمیمه کنید (بهمراه جدول و فایل ایندکس آن) تا بررسی شود.

  3. #3
    با سلام
    دوست عزیز اول اینکه شما باید بگین که نوع دیتا بیستون چی هست ....
    که البته من حدس میزنم Paradox باشه :wink:
    اگر حدسم درست باشه برای رفع این مشکل فقط کافیه که شما اول Table یک Field جدید بسازید و نوعش رو هم Auotincrement بزارید...
    و گزینه Key آن را هم انتخاب کنید...

    حالا دیگه باید مشکل حل بشه ...

    موفق باشید

  4. #4
    کاربر دائمی آواتار سار
    تاریخ عضویت
    اسفند 1382
    محل زندگی
    تورین-ایتالیا
    پست
    1,044
    اگر اشتباه نکنم شما دارید سعی میکنید مقدار کلید اصلی رو عوض کنید.
    که این کار امکان پذیر نیست.

  5. #5
    کاربر دائمی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    30/11/53
    پست
    243
    جناب سار می شه توضیح بدید ؟ چه ربطی داره که بخواد مقدار فیلد کلید رو تغییر بده و پیغام key violation رو ببینه؟ و اما جواب : دو راه ( یا سه راه ) داری:
    1: قبل از post با دستور locate چک کنی .
    2: توی روال onposterror از جدول , خطاها رو خودت چک کنی .
    3: فیلدت رو از حالت کلید در بیاری .
    که این آخری آبکیه . ولی خب یه راه حل دیگه 8-)

  6. #6
    باتشکرازدوستان
    لطف کنیددستورات رابرایم بنویسید

  7. #7
    مثلا اگر نام فیلد name باشد و مقداری که میخواهید ذخیره کنید 'ali' باشد قبل از post از این دستور استفاده کنید :
    if  Table1.locate('name','ali',[]) then 
    begin
    showmessage('this name alredy exist');
    Exit;
    end;
    ...... ذخیره اطلاعات

  8. #8
    کاربر دائمی
    تاریخ عضویت
    خرداد 1382
    محل زندگی
    خوزستان
    پست
    131
    اگر بخواهیم table را باز کنیم و پیام key violation بدهد معنی اش چیست؟

  9. #9
    کاربر دائمی آواتار سار
    تاریخ عضویت
    اسفند 1382
    محل زندگی
    تورین-ایتالیا
    پست
    1,044
    نقل قول نوشته شده توسط Hidarneh
    جناب سار می شه توضیح بدید ؟ چه ربطی داره که بخواد مقدار فیلد کلید رو تغییر بده و پیغام key violation رو ببینه؟ و اما جواب : دو راه ( یا سه راه ) داری:
    1: قبل از post با دستور locate چک کنی .
    2: توی روال onposterror از جدول , خطاها رو خودت چک کنی .
    3: فیلدت رو از حالت کلید در بیاری .
    که این آخری آبکیه . ولی خب یه راه حل دیگه 8-)
    فیلدی که در هنگام ساخت جدول کلید اصلی معرفی بشود در طول عمر جدول مقدارش ثابت است و غیر قابل تغییر.
    برای همین هم هست که تو جوابها مورد سوم به نظر درست تر میرسه البته من تابه حال برام پیش نیومده که مجبور بشم مقدار کلید اصلی رو عوض کنم چرا که این کا اصولا درست نیست.
    بهتر اون قسمت از کد که Error میده رو برامون بنویسی تا بهتر بشه گفت و البته به همراه ساختار جدولت.

  10. #10
    کاربر دائمی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    30/11/53
    پست
    243
    جناب سار این عمل هیچ خطایی را بر نمی انگیزد . مگر آنکه مقدار جدید از قبل موجود باشد ( می توانید به راحتی این موضوع را چک کنید . یه جدول دو فیلدی و یه form wizard ) فقط در یک حالت است که نمی توانید مقدار فیلد را تغییر دهید و آنهم زمانی است که از نوع auto increment باشد که آنهم خطای key violation را برنمی انگیزد.

  11. #11
    کاربر دائمی آواتار سار
    تاریخ عضویت
    اسفند 1382
    محل زندگی
    تورین-ایتالیا
    پست
    1,044
    نقل قول نوشته شده توسط Hidarneh
    جناب سار این عمل هیچ خطایی را بر نمی انگیزد . مگر آنکه مقدار جدید از قبل موجود باشد ( می توانید به راحتی این موضوع را چک کنید . یه جدول دو فیلدی و یه form wizard ) فقط در یک حالت است که نمی توانید مقدار فیلد را تغییر دهید و آنهم زمانی است که از نوع auto increment باشد که آنهم خطای key violation را برنمی انگیزد.
    من هم منظورم همین بود اگر درست نرسوندم ببخشید.
    فیلدهای که کلید اصلی هستن بعد از مقدارشون نمیشه تکراری باشه و شما کاملا درست میگید.

  12. #12
    کاربر دائمی
    تاریخ عضویت
    خرداد 1382
    محل زندگی
    خوزستان
    پست
    131
    اگر بخواهیم table را باز کنیم و پیام key violation بدهد معنی اش چیست؟
    دوستان این سوال بی ربطه؟ اگه نیست راهنایی کنید. :shock: متشکرم.

  13. #13
    سلام

    این تاپیک رو حتما ببینید

    http://www.barnamenevis.org/vi...ight=e+message
    -------
    امید

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

  1. سرقت نرم افزار و CopyRight Violation
    نوشته شده توسط Inprise در بخش امنیت در نرم افزار و برنامه نویسی
    پاسخ: 12
    آخرین پست: جمعه 28 مرداد 1390, 02:53 صبح
  2. چگونه ارتباط با فرم ها باشد که با مشکل Access Violation
    نوشته شده توسط Valadi در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 4
    آخرین پست: جمعه 20 مهر 1386, 10:31 صبح
  3. Access Violation in VC++‎ 6.0
    نوشته شده توسط pooyanm در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 1
    آخرین پست: سه شنبه 29 خرداد 1386, 10:15 صبح
  4. مشکل واقعا عجیب با دلفی 7- Access Violation ...
    نوشته شده توسط آیدا رضایی در بخش برنامه نویسی در Delphi
    پاسخ: 33
    آخرین پست: سه شنبه 18 بهمن 1384, 01:47 صبح
  5. نمایش یک پیغام به جای پنجره خطای Key violation
    نوشته شده توسط saeed_d در بخش برنامه نویسی در Delphi
    پاسخ: 15
    آخرین پست: چهارشنبه 02 اردیبهشت 1383, 11:45 صبح

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

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