PDA

View Full Version : يك جستجو با خروجي چند سطري



mrm0101
یک شنبه 08 آذر 1388, 19:19 عصر
سلام . مي خواهي خروجي يك كوئري كه يك فيلد است بصورت چند سطري نمايش دهيم و يا نتيجه را در يك memo يا dbmemo با چند سطر نشان داده شود آيا كسي چنين كاري انجام داده است . ( كار برد در يك پروژه ارسال اس ام اس )




select 'بسمه تعالي ' +char(13) +'همكار محترم : '+ firstname + lastname +char(13)+ 'مبلغ فيش حقوقي شما '+ lastamount+'مي باشد '+char(13)+ 'با تشكر '
as e from member
where personalcode =88888888

در كد بالا char(13) كه براي ايجاد سطر جديد است بي اثر است . بجاي اين كد چه بايد كرد ؟
با تشكر

محمد سلیم آبادی
دوشنبه 09 آذر 1388, 02:16 صبح
سلام دوست عزیز،
SQL زبانی برای پردازش داده هاست و انتظار همچین نتایجی برای این زبان کمی نامناسب است.
باید ابزارهای گزارش گیری در نرم افزارهای برنامه نویسی مثل C شارپ برای این منظور وجود داشته باشد.
ولی به هر حال با کمک union all می شود به این نتیجه رسید.


select 'بسمه تعالي '
union all
select 'همكار محترم : '+ firstname + lastname
from member
where personalcode =88888888
union all
select 'مبلغ فيش حقوقي شما '+ lastamount+'مي باشد '
from member
where personalcode =88888888
union all
select 'با تشكر '

mrm0101
دوشنبه 09 آذر 1388, 12:42 عصر
سلام

منظورم من اين بود در محيطي شبيه اس كيول كه كار بر بتواند متن مورد نظر به همراه فيلد ها را خودش بنويسيد . بدون كد نويسي در محيط هاي سي شارپ يا دلفي
خود اس كيو ال دستور char(13) را دارد و يك مثال اينطور هم دارد ولي من هر كار مي كنم اين دستور غير فعال است و سطر جديد ايجاد نمي شود

محمد سلیم آبادی
دوشنبه 09 آذر 1388, 13:20 عصر
ولي من هر كار مي كنم اين دستور غير فعال است و سطر جديد ايجاد نمي شود
یعنی کوئری بدون خطا اجرا شده و بودن و نبودن char13 تفاوتی ندارد؟
در SQL Server 2008 که کار Enter را انجام می دهد.

اگر نوع ستون lastamount غیر رشته ای باشد اجرای query با خطای convert مواجه می شود.

mrm0101
سه شنبه 10 آذر 1388, 00:09 صبح
سلام . مثال زير در راهنماي اس كيو ال سرور 2000 است . منظور من از CHAR(13) پرش به سطر بعد يا همان كليد اينتر است كه در مثال زير همون مفهموم است ولي در اجرا سر جديد ايجاد نمي شود و همه گزارش در يك سطر است .






B. Use CHAR to insert a control character

This example uses
CHAR(13) to print name, address, and city information on separate lines, when the results are returned in text.

USE Northwind
SELECT FirstName + ' ' + LastName, + CHAR(13) + Address,
+ CHAR(13) + City, + Region
FROM Employees
WHERE EmployeeID = 1
Here is the result set:
Nancy Davolio
507 - 20th Ave. E.
Apt. 2A
Seattle