PDA

View Full Version : کمک فوری - خطا در فیلد کلید



maisam57
چهارشنبه 27 مهر 1384, 01:07 صبح
با سلام
توی table من یک فیلد رو کلید زدم میخوام وقتی رکورد تکراری وارد میشه messagedlg ایجاد کنم
ولی به محض اینکه اینکار رو با locate به جدول اتجام میدم error میده
من توی onexit یه edit کد زیر رو وارد کردم ولی نمیدونم چرا یا error میده یا حتی اگه رکورد تکراری وارد نکم باز messagedlg نمایش داده میشه

if not table1.locate('bimeid',trim(edit1.text),[locaseinsensitive]) then table1.append else shoemessage('شماره بیمه تکراری است');

m-khorsandi
چهارشنبه 27 مهر 1384, 07:47 صبح
درود
لطفا" پیغام خطا رو اینجا بگذارید .

Kamyar.Kimiyabeigi
چهارشنبه 27 مهر 1384, 08:19 صبح
پارامتر آخر مربوط به Locate رو خالی پاس کنین

mzjahromi
چهارشنبه 27 مهر 1384, 08:34 صبح
اطلاعاتت رو باچی میگیری با DBEdit? DBgrid? ... h اگه با اینا اطلاعاتت رو می خونی اشکال از همینجاست وقتی میخوای Locatte کنی احتمالا جدولت Post میشه

m-khorsandi
چهارشنبه 27 مهر 1384, 08:34 صبح
پارامتر آخر مربوط به Locate رو خالی پاس کنی
دلیلتون برای این کار چیه؟

Naficy
چهارشنبه 27 مهر 1384, 10:15 صبح
توی table من یک فیلد رو کلید زدم میخوام وقتی رکورد تکراری وارد میشه messagedlg ایجاد کنم
نیازی به اینکار نیست. خود بانک اطلاعاتی این کار رو انجام می ده.
اما اگه می خواین خودتون خطا رو به کاربر اعلام کنین، شی Table یه سری رویداد برای زمانی که خطا پیش می یاد داره. همینطور می تونین از try,except هنگام انجام عمل post استفاده کنین.

babak869
چهارشنبه 27 مهر 1384, 12:04 عصر
با سلام
شما میتونید خودتون شماره فیلد رو بصورت خودکار در اون فیلد قرار بدید تا کاربر نتونه فیلد تکراری وارد کنه مثل این :
در رویداد کلیک یک دکمه بنویس :
Datasource1.Dataset.FindLast;
a:=AdoTable1FieldName.Value;
a:=a+1;
Dbedit1.Text:=IntToStr(a);
Dbedit2.Setfocus;
Datasource1.Dataset.Insert;

موفق باشید

mzjahromi
چهارشنبه 27 مهر 1384, 13:24 عصر
می تونی هم تو Event BeforPost با یه Query دیگه چک کنی.

سید مسعود موحد
پنج شنبه 28 مهر 1384, 11:20 صبح
دوست عزیز
در رویداد ONPOSTERROR خودش برای این کار کفایت میکند بخصوصو که خطارا هم در این پارامتر بر میگرداند
E: EDatabaseError دگر احتیاجی به Locate نیست شما احتمالا در هنگام POST کردن LOCate میکردی که به این خطا میخوردی