PDA

View Full Version : برگرداندن پیغامهای SQL



razavi_university
یک شنبه 19 اسفند 1386, 14:38 عصر
چطور میشه پیغانها و خطاهایی که در هر تراکنش انجام می شود رو در داخل محیط #C بهش دسترسی داشته باشیم.(فرقی نمی کنه پیغام یا کد اون)
مثلا زمانی که یک Insert در داخل SQL انجام می دهید. در صورت موفقیت آمیز بودن پیغام 1 row effected پایین صفحه ظاهر میشه و اگر هم نشه دلیلش رو می نویسه.
چطور میشه این پیغامها رو برگردوند؟

Elham_gh
یک شنبه 19 اسفند 1386, 14:50 عصر
با استفاده از RAISERROR

razavi_university
یک شنبه 19 اسفند 1386, 15:00 عصر
میشه بیشتر توضیح بدی؟

Elham_gh
یک شنبه 19 اسفند 1386, 15:32 عصر
شما با RAISERROR متن پیغام احیانا فارسی با شماره خطای SQL Server رو پاس می کنید. و در برنامه #C در Exception مانند بقیه خطاها می توانید این خطا را نیز Handle کنید. برای اینکه بدانید این تابع چگونه خطا را منقل می کند و فرمت دستوریش چیه به Book OnLine مراجعه کنید

MShirzadi
یک شنبه 19 اسفند 1386, 20:42 عصر
دوستان سلام
می خواستم بدونم که ما می تونیم با استفاده از RAISERROR کد خطا هم به C# انتقال بدیم
یعنی اینکه یه کد دلخواه باشه

AminSobati
دوشنبه 20 اسفند 1386, 08:30 صبح
در SQL Server 2000 امکان Exception Handling به شکل ساختار یافته وجود نداره. یعنی زمانی که فرضا توسط ADO یک دستور Insert فراخوانی میکنید، در صورت مواجه شدن این دستور با اشکال، خطا بلافاصله به ADO برگردونده میشه و در برنامه تون (سمت کلاینت) باید این Exception رو کنترل کنید. در SQL Server 2005 امکان استفاده از TRY.. CATCH در کد TSQL هست که براحتی دستور Insert رو داخل اون قرار میدین. حالا در صورت نیاز به نمایش پیغام فارسی به کاربر، هم میتونین در TSQL پیغام دلخواه رو Raise کنین تا به ADO منتقل بشه، و هم میتونین سمت کلاینت یک Exception با متن دلخواه بوجود بیارین تا کاربر رویت کنه.
در صورتیکه نیاز به داشتن کد اختصاصی یا دلخواه برای خطا باشه، میشه با sp_AddMessage یک پیغام رو با کد مورد نظر (بالاتر از عدد 50000) به مجموعه خطاهای SQL Server اضافه و منبعد اون رو Raise کنین

razavi_university
سه شنبه 21 اسفند 1386, 11:18 صبح
. . . در SQL Server 2005 امکان استفاده از TRY.. CATCH در کد TSQL هست که براحتی دستور Insert رو داخل اون قرار میدین. حالا در صورت نیاز به نمایش پیغام فارسی به کاربر،
1- هم میتونین در TSQL پیغام دلخواه رو Raise کنین تا به ADO منتقل بشه،
2-و هم میتونین سمت کلاینت یک Exception با متن دلخواه بوجود بیارین تا کاربر رویت کنه.
این دو روش رو چطور میشه پیاده سازی کرد؟
ممنون

s_mokhtari
شنبه 08 خرداد 1389, 10:18 صبح
این دو روش رو چطور میشه پیاده سازی کرد؟
ممنون
با سلام
من اين را تو برنامم استفاده كردم درست هم است
در برنامه بايد
try
{
}
catch(sqlexception e)
{
messagebox.show(e.message)
}
بعد توي اسكيوال هم ريزاررور اينطوري
raiserror('پيام رو مينويسيد',16,1(

sana.2557
دوشنبه 10 خرداد 1389, 15:15 عصر
با سلام
من اين را تو برنامم استفاده كردم درست هم است
در برنامه بايد
try
{
}
catch(sqlexception e)
{
messagebox.show(e.message)
}
بعد توي اسكيوال هم ريزاررور اينطوري
raiserror('پيام رو مينويسيد',16,1(

میشه بیشتر توضیح بدید؟ ...
شماره خطا را از کجا پیدا کنیم؟
کاربر از کجا بفهمه که خطا دقیقا از کجاست؟

s_mokhtari
پنج شنبه 17 تیر 1389, 11:45 صبح
میشه بیشتر توضیح بدید؟ ...
شماره خطا را از کجا پیدا کنیم؟
کاربر از کجا بفهمه که خطا دقیقا از کجاست؟
با سلام
دوست عزيز e.message پيغام خطايي كه بوجو اومده توي برنامه رو كامل بهت نشون ميده
موفق باشيد:چشمک: