ورود

View Full Version : تشخیص ارور Try .. Except



Saeid59_m
پنج شنبه 10 آبان 1386, 09:05 صبح
سلام
دوستان توی قسمت Except چطوری می شه کد ارور یا شرح رو بدست آورد . برای Database

ممنون

sasan_vm
پنج شنبه 10 آبان 1386, 09:37 صبح
سلام

متن Error:


e.Message

Mahyaa
پنج شنبه 10 آبان 1386, 09:39 صبح
try
//try Block code
except
on E: Exception do ShowMessage(E.Message);
end;

Saeid59_m
پنج شنبه 10 آبان 1386, 10:22 صبح
من می خواستم کد خطا رو هم بدست بیارم .

vcldeveloper
جمعه 11 آبان 1386, 04:01 صبح
من می خواستم کد خطا رو هم بدست بیارم .
AdoConnection1.Errors

dkhatibi
جمعه 11 آبان 1386, 19:28 عصر
s,ال که برای من هم وجود داره اینه که مثلا تو sql server,وقتی فیلدهایی را Identity می کنیم پیام خطایی با نام اون شتاخته می شه آیا می شه با روشی ساده نوع خطا را برای فیلد خاص به دست آورد؟

vcldeveloper
شنبه 12 آبان 1386, 02:03 صبح
درباره کد خطا:
به ازاء هر خطایی که رخ میده، مشخصات آن خطا در لیست AdoConnection.Errors ذخیره میشه. در این لیست برای هر Error، خصوصیت NativeError کد خطایی که SQL Server برگشت داده، و Description متن خطا را مشخص می کنند. NativeError مقدار فیلد Code در جدول sysmessages در دیتابیس master است که مشخص می کند برای خطای مربوطه چه توضیحاتی باید به کاربر نشان داده شود.


,ال که برای من هم وجود داره اینه که مثلا تو sql server,وقتی فیلدهایی را Identity می کنیم پیام خطایی با نام اون شتاخته می شه آیا می شه با روشی ساده نوع خطا را برای فیلد خاص به دست آورد؟
روش خاصی برای پیدا کردن نام فیلدی که موجب خطا در دیتابیس شده وجود نداره، غیر از آنکه متن خطای برگشت داده شده (E.Message در کد پست های قبلی)را برای بررسی وجود کلمات خاصی در متن خطا جستجو کنید (مثلا با تابع Pos).
اگر بخواید در زمان ثبت تغییرات بفهمید کدامیک از فیلدهایی که Null-able نیستند توسط کاربر خالی رها شدند، می تونید مقدار خصوصیت Required این فیلدها را True کنید و در رویداد OnValidate هر یک از این فیلدها چک کنید که آیا مقداری که توسط کاربر به دیتابیس ارسال می شود، معتبر است یا نه. اگر معتبر نبود، در همان رویداد یک Exception با پیغام خطای مناسب آن فیلد ایجاد کنید. مزیت این روش این است که در صورت وجود اشکال در داده های رکورد ارسالی، ترافیک شبکه کمتری ایجاد می شود؛ چون داده ها قبل از ارسال به سرور در سمت کلاینت اعتبار سنجی می شوند.