PDA

View Full Version : استفاده از message های sql server



aliasghar
دوشنبه 09 شهریور 1383, 13:08 عصر
سلام
خسته نباشید
خیلی از دستورات ‏sql server ‎‏ بعد از اجرا در ‏query analyzer ‎‏ یکسری ‏message ‎‏ را به ‏عنوان خروجی نشان میدهند برای مثال
دستور ‏backup‏ یک پارامتر به نام ‏STATS ‎‏ دارد که درصد پیشرفت دستور را نشان میدهد ‏یا دستوراتی از قبیل ‏DBCC ‎‏ که بعد از چک کردن صحت ‏database ‎‏ از نظر مشکلات ‏احتمالی نتیجه را به عنوان ‏message ‎‏ هایی نشان میدهد
حالا چطوری میشه این ‏message ‎‏ ها را به سطح ‏application ‎‏ (برای من دلفی) هدایت ‏کرد یعنی ‏message ‎ بازگشتی توسط دستور ‏backup‏ را به یک ‏progress bar ‎‏ در دلفی ‏متصل و درصد پیشرفت کار را مشاهده کرد یا اینکه بعد از اجرای دستور ‏DBCC DBCHEK ‎‏ ‏متوجه بروز خطا بشویم


متشکرم

AminSobati
دوشنبه 09 شهریور 1383, 14:18 عصر
دوست عزیزم،
برای برگرداندن نتیجه دستورات DBCC به Client، میتونین به انتهاش WITH TABLERESULTS رو اضافه. به هر طریقی که این دستور رو در دلفی اجرا میکنید، کافیه بنویسید:


DBCC CHECKDB ('Northwind') WITH TABLERESULTS

نتیجه این دستور درست مثل نتیجه SELECT برمیگرده و به هر شکل که نتیجه SELECT رو نمایش میدین، برای این دستور هم عمل کنید. من دیتابیس Northwind رو مثال زدم.
اما در مورد Backup، تنها روش بدست آوردن درصد پیشرفت عملیات، استفاده از SQL DMO هستش. آبجکتی به نام Backup، یک Event داره به اسم PercentComplete که پارامتر Percent مقدار پیشرفت رو نمایش میده و شما Progress bar رو Update میکنید.
موفق باشید،
امین ثباتی MCSD

aliasghar
سه شنبه 10 شهریور 1383, 16:11 عصر
خیلی ممنون :wink:

khojasteh_64
پنج شنبه 25 تیر 1388, 12:15 عصر
معادل vb.net این دستور چی میشه؟

AminSobati
پنج شنبه 25 تیر 1388, 12:41 عصر
اون یک دستور TSQL هست که روی دیتابیس کار میکنه، معادل در vb منظورتون چیه؟

khojasteh_64
پنج شنبه 25 تیر 1388, 18:01 عصر
منظورم اینه که دستور sql زیر که درصد پردازش رو در خروجی نشون میده کد معادلش در vb.net که این درصد رو توسط progressbar نشون بده چیه؟
backup database for_work to disk='C:\for_bak1.bak'
with stats=5

AminSobati
پنج شنبه 25 تیر 1388, 19:42 عصر
اون خروجی که انتظار دارید به VB برنمیگرده و تنها راهش استفاده از آبجکتهای DMO یا SMO هست که بصورت Event شما رو از پیشرفت کار مطلع میکنه