PDA

View Full Version : ???? بجای حرف فارسی - لطفا این sp را ببینید



Sal_64
چهارشنبه 13 خرداد 1394, 14:49 عصر
سلام
لطفا این sp ببینید
فیلد نام و فامیل بصورت ؟؟؟؟؟؟ در ج می شود

ALTER PROCEDURE [dbo].[sabt_name_family_bime]
(
@table VARCHAR(20),
@code_meli VARCHAR(50),
@name_family NVARCHAR(50)


)
AS
--BEGIN
-- SET NOCOUNT ON;

DECLARE @Command NVARCHAR(max)



SET @Command = 'insert into '+ @table +' (name_family,code_meli) values ( '
SET @Command = @Command+''''+@name_family+''''
SET @Command = @Command+','
SET @Command = @Command+''''+@code_meli+''''
SET @Command = @Command+')'

EXEC( @Command)
return

لطفا ببینید

Sal_64
پنج شنبه 14 خرداد 1394, 15:21 عصر
کماکان منتطر پاسخ های راهگشای دوستان هستم
با تشکر

ASKaffash
پنج شنبه 14 خرداد 1394, 16:56 عصر
سلام
N را قبل از رشته دارای UniCode بایذ قرار دهید مثلا :
Update MyTable Set MyField=N'رشته فارسی' Where MyID=10

Sal_64
پنج شنبه 14 خرداد 1394, 18:05 عصر
سلام
N را قبل از رشته دارای UniCode بایذ قرار دهید مثلا :
Update MyTable Set MyField=N'رشته فارسی' Where MyID=10
تشکر
بنده این N در جاهای مختلف قرار دادم اما همش خطا میده "که این N اضافی"
میشه بفرمایید دقیقا این N باید کجا بذارم

SET @Command = @Command+''''+@code_meli+''''

ASKaffash
پنج شنبه 14 خرداد 1394, 19:31 عصر
سلام
مثل ذیل :
Declare @Command nVarChar(Max)=''
Declare @code_meli nVarChar(Max)=Char(39)+N'سلام'+Char(39)
Set @Command = @Command+@code_meli
Select @Command

Sal_64
پنج شنبه 14 خرداد 1394, 22:37 عصر
سلام
مثل ذیل :
Declare @Command nVarChar(Max)=''
Declare @code_meli nVarChar(Max)=Char(39)+N'سلام'+Char(39)
Set @Command = @Command+@code_meli
Select @Command


ممنونم از لطفتون
بنده فراموش کردم که بگم از ورژن 2005 استفاده میکنم
کوئری که خواستم اجرا کنم با خطا روبه رو شدم



Msg 139, Level 15, State 1, Line 0
Cannot assign a default value to a local variable.
Msg 139, Level 15, State 1, Line 0
Cannot assign a default value to a local variable.
Msg 137, Level 15, State 2, Line 3
Must declare the scalar variable "@Command".
Msg 137, Level 15, State 2, Line 4
Must declare the scalar variable "@Command".

ferdin
جمعه 15 خرداد 1394, 11:32 صبح
ممنونم از لطفتون
بنده فراموش کردم که بگم از ورژن 2005 استفاده میکنم
کوئری که خواستم اجرا کنم با خطا روبه رو شدم



Msg 139, Level 15, State 1, Line 0
Cannot assign a default value to a local variable.
Msg 139, Level 15, State 1, Line 0
Cannot assign a default value to a local variable.
Msg 137, Level 15, State 2, Line 3
Must declare the scalar variable "@Command".
Msg 137, Level 15, State 2, Line 4
Must declare the scalar variable "@Command".


با توجه به پاسخ ASKaffash :



Alter PROCEDURE [dbo].[sabt_name_family_bime]
(
@table VARCHAR(20),
@code_meli VARCHAR(50),
@name_family NVARCHAR(50)


)
AS
--BEGIN
-- SET NOCOUNT ON;

DECLARE @Command NVARCHAR(max)



SET @Command = 'insert into '+ @table +N' (name_family,code_meli) values ( '
SET @Command = @Command+'N'+Char(39)+@name_family+Char(39)
SET @Command = @Command+','
SET @Command = @Command+'N'+Char(39)+@code_meli+Char(39)
SET @Command = @Command+')'

exec( @Command)
return


Go