PDA

View Full Version : بهم ریختگی گزارش خروجی فرمان osql



benyaminrahimi
یک شنبه 26 بهمن 1393, 09:03 صبح
سلام من در برنامه ای میخام نتیجه چیزی که با فرمان osql از طریق cmd اجرا میکنم ببینم متاسفانه فایل خروجی نتیجه ها خیلی بهم ریختست




1> 2> id
dept
anbar_id
-----------
-----------------------------------------------------------------------
----------------------------- -----------
1
مرکزی
NULL
2
مالی
NULL


(2 rows affected)






میخاستم ببینم راه حلی دارید برای این مبحث

SabaSabouhi
یک شنبه 26 بهمن 1393, 09:21 صبح
سلام
این طبیعی هست. در حالت TextMode شما فقط 80 ستون داری، اما برای نمایش خروجی این query به ستون‌های بیشتری نیاز هست.
به همین دلیل خط‌ها می‌شکنن.
اصولاً وقتی با osql خروجی می‌گیری، باید خروجی رو توی یه فایل بریزی، نه روی صفحه‌ی مانیتور.

صبا صبوحی

golbafan
یک شنبه 26 بهمن 1393, 09:27 صبح
همونطور که خانم صبوحی گفتن مشکل از حالت 80 کاراکتری cmd هست
احتمالا جمع اندازه فیلد شما بیشتر از 80 هست
اگر بتونید با استفاده از view خروجی رو طوری طراحی کنید که جمع اندازه فیلدها کمتر از 80 بشه در cmd هم مشکلی نخواهید داشت

benyaminrahimi
یک شنبه 26 بهمن 1393, 09:45 صبح
آیا ماژول sqlcmd هم همین مشکل روداره ؟ چه راهکاری وجود داره .. دلیل این کار اینه که چون ما نسخه اکپرس رو برای مشتری نصب میکنیم میخایم یه شبیه ساز sql query بنویسم و نمایش این reslut ها مهمه برای اجرای مثلا یه stored procedure خاص یا یک کد خاص ... دلیلی که osql رو انتخاب کردیم نتجه ها رو میده ولی کامپوننت های زبان برنامه نویسی فقط خروجی دیتا ست رو میدن و go رو ساپورت نمیکنن

golbafan
یک شنبه 26 بهمن 1393, 10:02 صبح
آیا ماژول sqlcmd هم همین مشکل روداره ؟ چه راهکاری وجود داره .. دلیل این کار اینه که چون ما نسخه اکپرس رو برای مشتری نصب میکنیم میخایم یه شبیه ساز sql query بنویسم و نمایش این reslut ها مهمه برای اجرای مثلا یه stored procedure خاص یا یک کد خاص ... دلیلی که osql رو انتخاب کردیم نتجه ها رو میده ولی کامپوننت های زبان برنامه نویسی فقط خروجی دیتا ست رو میدن و go رو ساپورت نمیکنن

اگر امکان داره یک نمونه sqlmonitor با memo بنویسید در غیر این صورت باید اندازه فیلدها رو اصلاح کنید. اگر نه پست قبلی ام جواب شماست

آشتی؟؟

benyaminrahimi
یک شنبه 26 بهمن 1393, 10:09 صبح
کوئری این منظور یه چیز ثابت نیست که اصلاح شه میتونه هر چی باشه و امکان اصلاحش نیست ... ما میخوایم مثل خود sql دو قسمت کوئری result , messege داشته باشیم

golbafan
یک شنبه 26 بهمن 1393, 10:32 صبح
پس دیگه باید خودتون طراحیش کنید :لبخند: (با استفاده از tmsMemo)

benyaminrahimi
یک شنبه 26 بهمن 1393, 10:53 صبح
tmsmemo? متوجه نشدم

SabaSabouhi
یک شنبه 26 بهمن 1393, 11:05 صبح
آیا ماژول sqlcmd هم همین مشکل روداره ؟ چه راهکاری وجود داره .. دلیل این کار اینه که چون ما نسخه اکپرس رو برای مشتری نصب میکنیم میخایم یه شبیه ساز sql query بنویسم و نمایش این reslut ها مهمه برای اجرای مثلا یه stored procedure خاص یا یک کد خاص ... دلیلی که osql رو انتخاب کردیم نتجه ها رو میده ولی کامپوننت های زبان برنامه نویسی فقط خروجی دیتا ست رو میدن و go رو ساپورت نمیکنن

سلام
دوست عزیز، شما اگه به QueryAnalyzer تو نسخه‌های SQL 2005 به قبل و یا Management Studio تو نسخه‌های جدیدتر دقت کنی، برای نمایش خروجی دو حالت داره، یکی Text هست و
دیگری Grid.
خروجی Text دقیقاً همین چیزی هست که شما خروجی گرفتی، فقط با گذاشتن یه ScrollBar افقی مشکل رو حل کرده. شما هم باید امکان Scroll افقی رو ایجاد کنی.

صبا صبوحی