PDA

View Full Version : مدیریت پیغامهای خطا در sql server 2000



vjp
پنج شنبه 01 مرداد 1383, 22:02 عصر
چگونه میتوانیم پیغامهای خطا در sql server 2000 را مدیریت کنیم مخصوصاً در مورد اشیاء ADO مثلاً اگر در جدولی از بانک اطلاعاتی کلید اصلی تکراری وارد شده است بجای اینکه خود نرم افزار پیغام خطا تولید کند ما بتوانیم این پیغام ها را به کاربران تحویل دهیم. البته این موضوع را در محیط دلفی میخواهم بدانم

Microsoft.net
جمعه 02 مرداد 1383, 10:15 صبح
ببین عزیزم شما یه کار می تونی بکنی مسلما اگه فیلدت کلید اصلی باشه مقادیر تکراری رو چه بخوای چه نخوای قبول نمی کنه ولی اگه اتفاق بیفته با run time error از برنامت خارج می شه من توی دلفی رو نمی دونم ولی توی دات نت به راحتی با کد زیر می تونی خطا ها رو مدیریت کنی فقط پیغام خطا ها به صورت انگلیسی واسه کاربر نشون داده می شه البته اگه خیلی برنامه ات می خوای خفن باشه از تریگر هم می تونی استفاده کنی


On error goto lable1
....
...
lable1 : msgbox(err.describtion)

sh
جمعه 02 مرداد 1383, 10:34 صبح
توی دات نت به راحتی با کد زیر می تونی خطا ها رو مدیریت کنی فقط پیغام خطا ها به صورت انگلیسی واسه کاربر نشون داده می شه

شما با استفاده از Try و Catch میتونی شماره خطا رو پیدا کنی و بگی هر موقع شماره خطا فلان عدد بود پیغام کاملا فارسی یا عمل مناسبی رو انجام بده و این روش بهتر از روش فوق میباشد

Mohammad S
شنبه 03 مرداد 1383, 12:09 عصر
شما با استفاده از Try و Catch میتونی شماره خطا رو پیدا کنی و بگی هر موقع شماره خطا فلان عدد بود پیغام کاملا فارسی یا عمل مناسبی رو انجام بده و این روش بهتر از روش فوق میباشد
می شه بیشتر توضیح بدید، با ذکر مثال لطفا . این دستور مخصوص دلفی 8 هست یا تو دلفی 7 هم کار می کنه؟
با تشکر

sh
شنبه 03 مرداد 1383, 18:11 عصر
ببین مثلا در VB.NET به اینصورت این خطای تکرار دو مقدار یکسان در یک فیلد کلیدی را کنترل کرده ام


Try
OleDbDataAdapter1.Update(DataSet11)
DataSet11.person.Clear()
TextBox1.Focus()

Catch ex As OleDb.OleDbException
If ex.ErrorCode = -2147467259 Then
MessageBox.Show("شماره پرسنلی وارد شده تکراری میباشد", "ثبت نام پرسنل", MessageBoxButtons.OK, MessageBoxIcon.Warning)
DataSet11.person.Clear()
TextBox1.Focus()
Exit Sub
End If
End Try

vjp
شنبه 03 مرداد 1383, 20:28 عصر
از دوستان عزیزی که به سوال بنده پاسخ داده اند صمیمانه تشکر میکنم، البته پاسخ های عزیزان بیشتر متمایل به کد نویسی است و بدون شک با استفاده بهتر از کمپوننت های دلفی و استفاده بهینه از رویدادهای (events) آن باید بتوانیم این مشکل را حل کنیم چرا که خود من در مورد موتور بانک اطلاعاتی بورلند این مورد را حل کرده ام و روی رویدادOn Post Error مربوط به کمپوننت TTableبه جواب رسیده ام که اگر مایل باشید آنرا در اختیارتان خواهم گذاشت، هدف من این است که این مسئله را هم از طریق رویدادهای کمپوننت های ADO حل کنم، این مطلب را در Help مربوط به SQL Server 2000 بدست آورده ام ولی کمی پیچیده است شما هم بد نیست آنرا ببینید:
Handling Errors and Messages in Ado""
منتظر راهنمایی های شما هستم، با تشکر