PDA

View Full Version : DBNavigator و Cancle



zman123456
چهارشنبه 03 مرداد 1386, 07:56 صبح
سلام
من تو فرمم از DBNavigator استفاده کردم.توی فرم بعضی از فیلدها باید چک شود بعد در جدول post شود.
اگر فیلد مورد نظر مقدار درستی رو نداشته باشه باید عمل post‌ رو cancle‌ کرد.
تو فروم گشتم :
راه حل 1:
try
begintrans
append
post
commit
except
rolback
end
راه حل 2:
if field = false then
raise exceptio.create
حالا مشکل من اینجاست که هیچکدام از این راه حل ها به دردم نخورد البته دومی همونی هست که من می خوام ولی چون من برای خودم یک فرم نمایش error‌ دارم نمی خوام فرم exception نمایش داده بشه و فرم خودم نمایش داده بشه.چکار کنم.

Batman
چهارشنبه 03 مرداد 1386, 09:30 صبح
توی رویدادهای dbnavigator مسیر زیر رو دنبال کن
dataset==>beforpost
بعد هرکاری خواستی انجام بده
در ضمن تشکر از چناب ghabil
موفق باشی

zman123456
چهارشنبه 03 مرداد 1386, 13:32 عصر
من تو BeforePost‌ میرم میزنم Cancle ولی عمل نمیکنه.میگه نمی تونم یک ردیف خالی رو ارسال کنم.چون cancle تمام تغییرات روی فیلد ها رو بر میگردونه سر جای اولش.

vcldeveloper
پنج شنبه 04 مرداد 1386, 06:08 صبح
همین چند وقت پیش در تاپیکی که سوال شده بود چطور مانع حرکت کاربر ار یک رکورد به رکورد دیگه بشیم، درباره Abort توضیح داده شد.
برای لغو تغییرات تا زمانی که عمل Post انجام نشده، می تونید متد Cancel را فراخوانی کنید، اما اگر می خواید در OnBeforePost چک کنید که مقادیر فیلدها معتبر هست، می تونید در صورت نامعتبر بودن مقدار یک فیلد، تابع Abort را فراحوانی کنید تا عمل Post متوقف شود.
در ضمن، چه لزومی داشت که برای ذخیره یک رکورد از یک جدول از Transaction استفاده کردید؟!! آیا dataset شما داده های یک کوئری که از چند جدول مختلف گرفته شدند را بر می گردونه و شما خواستید خودتون بصورت دستی عمل ذخیره تغییرات در این جدول ها را بر عهده بگیرید؟
چرا بالافاصله بعد از Append از Post استفاده کردید؟!!

zman123456
پنج شنبه 04 مرداد 1386, 09:34 صبح
در ضمن، چه لزومی داشت که برای ذخیره یک رکورد از یک جدول از Transaction استفاده کردید؟!! آیا dataset شما داده های یک کوئری که از چند جدول مختلف گرفته شدند را بر می گردونه و شما خواستید خودتون بصورت دستی عمل ذخیره تغییرات در این جدول ها را بر عهده بگیرید؟
چرا بالافاصله بعد از Append از Post استفاده کردید؟!!
من از این دستورات استفاده نکردم تو فروم دیدم امتحان کردم اونی نبود که می خواستم.
نه به هیچ کار دستی نیازی نیست.من از dbnavigator استفاده کردم.حتما Abort‌ رو چک می کنم و جواب میدم.اگر راه بهتری هست بفرمائید.