PDA

View Full Version : تشخیص ورود اطلاعات تکراری



یاسر احسانی
شنبه 16 اسفند 1382, 16:47 عصر
دوستان عزیز یک سوال خیلی کوچیک داشتم اگه لطف کنید جواب خوب و کاملی به من بدید دعا گوتون می شم . :cry:

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

البته این جستجو با Locate یا lookup ممکن است اما این دو اول اطلاعات را ذخیره یا بقول خودمان post می کنند بعد پیغام را می دهند . :cry: اما من می خام این پیغام قبل از ثبت اطلاعات بیاید و مانع از ثبت اطلاعات شود .
اگر از PK در SQL هم استفاده کنم نمی شود زیرا پیغام خطا مستقیما از طرف خود دلفی صادر می شود .

من باید تا پس فردا این پروسه رو تحویل بدم لطفا کمکم کنید. مچکرم . :?

ali643
شنبه 16 اسفند 1382, 17:00 عصر
بعد از اینکه پیام خطا را صادر می کنی exit رو بنویس

messagedlg('Error',MtError,[MbOk],0);
exit;

مهدی کرامتی
شنبه 16 اسفند 1382, 17:02 عصر
اگر شما برای هر رکورد یک شماره شناسایی در نظر گرفته باشید در واقعه OnBeforePost جدول تان میتوانید این شماره را جستجو کرده و پیام مقتضی را نمایش دهید.

Gladiator
یک شنبه 17 اسفند 1382, 22:37 عصر
if adotable1.locate('field name' , edit1.text , [] ) = true then begin
showmessage('اطلاعات تکراریست');
end
else
adotable1.post;

JavanSoft
دوشنبه 18 اسفند 1382, 01:40 صبح
Locate بدلیل اینکه Pointer فایل رو حرکت میدهد Ado اولین کاری که انجام می دهد سعی در Postرکورد مورد تغییر است

اما می توانید از کد زیر استفاده کنید


Try
AdoTable.Post
Except
ShowMessage ('Error');
AdoTable.Cancel

Gladiator
دوشنبه 18 اسفند 1382, 09:46 صبح
این فرمان اول چک میکنه اگر مقادیر وارد شده در ادیت باکسها توی تیبل موجود باشه هیچ کاری انجام نمیده و پیغام خطا میده و اگر وجود نداشته باشه ٬ ذخیره میکنه .

یاسر احسانی
دوشنبه 18 اسفند 1382, 10:43 صبح
دست شما درد نکنه دوستان عزیز :flower: :flower: .

می رم تا امتحان کنم . :موافق:

یاسر احسانی
سه شنبه 19 اسفند 1382, 12:44 عصر
آقای مدیر :

اگر شما برای هر رکورد یک شماره شناسایی در نظر گرفته باشید در واقعه OnBeforePost جدول تان میتوانید این شماره را جستجو کرده و پیام مقتضی را نمایش دهید.

این مطلب را بیشتر توضیح بدید لطفا . چون کمک بچه ها نتونست کمکم بکنه و مسئله هنوز به قوت خودش باقیه . مچکرم . :cry:

baabi
سه شنبه 19 اسفند 1382, 16:15 عصر
به نظر من بهترین راه استفاده از یه query کوچولوست:

select code from mytable
where code=INPUTDATA

Ahmad Chehreghani
یک شنبه 26 اسفند 1386, 23:55 عصر
چرا این همه راه!
شما فیلدتو ایندکس کن و تو Onposterror ، البته فکر کنم این باشه این پیغام رو بزار
رکوردی تکراری یا اشتباه وارد شده است.
حالا َAction رو ست کن

موفق و پیروز باشید

SYNDROME
دوشنبه 27 اسفند 1386, 05:51 صبح
فیلد مورد نظر را در بانک PKey بگیرید و سپس عملیات ذخیره اطلاعات را داخل Try Except بنویسید.حالا اگر ذخیره اطلاعات دچار مشکل شد در قسمت Except End آن را مدیریت کنید و پیفام مناسب را نمایش دهید.
موفق باشید

vcldeveloper
دوشنبه 27 اسفند 1386, 16:56 عصر
تاریخ پست ها رو هم نگاه کنید.
الان توی چه سالی هستیم؟ 86، البته 3 روز دیگه میشه 87
سوال کی مطرح شد؟ 82!!

یخورده برای جواب دادن دیر نیست؟!!