PDA

View Full Version : سوال: ارسال نام فیلد بصورت پارامتر به پروسیجر



shayan_delphi
یک شنبه 27 مرداد 1387, 20:35 عصر
سلام
من از داخل برنامه (Application) یک Stored Procedure را اجرا می کنم. می خوام با پارامتر که بهش پاس می دم نام فیلد های جلوی SELECT (که در پروسیجر استفاده شده) را تعیین کنم.
از روش sp_executesql هم نمی خوام استفاده کنم.

اجرا در برنامه
EXEC SP1 fieldname

دستور داخل پروسیجر
SELECT fieldname FROM tbl1

Amir_Safideh
دوشنبه 28 مرداد 1387, 10:53 صبح
CREATE PROCEDURE SPS_Test
@FieldName Char(20) AS
Exec('Select '+@FieldName+' From Bank ')
این یک پروسیجر هستش که میتونی نام فیلد رو به صورت یک پارامتر بهش پاس کنی .
--------------
موفق باشید.

shayan_delphi
دوشنبه 28 مرداد 1387, 14:50 عصر
ممنون از اینکه جواب دادید ولی...
من گفتم نمی خوام از پروسیجر sp_executesql استفاده کنم،این مثال شما هم تقریبا مثل
همین پروسیجر عمل می کنه!
در واقع من نمی خوام دستورم بصورت رشته باشه و یا حداقل اگر رشته بود بتونم از حاصل اون استفاده کنم:
Exec('Select SUM('+@FieldName+') From Bank ')

shayan_delphi
دوشنبه 28 مرداد 1387, 14:57 عصر
یه مثال دیگه:
اگر بخوام نام یک دیتابیس دومی را بصورت پارامتر به پروسیجر ارسال کنم چطور داخل پروسیجر جدولی از اون دیتابیس دوم را باز کنم؟
(اتصال به اون دیتابیس دوم بدون استفاده از EXEC ' USE DB2 ' z)