PDA

View Full Version : اشکال با نوع ntext



azam2005
دوشنبه 15 آبان 1385, 14:50 عصر
CREATE PROCEDURE BHOMP_INS
@CategoryNum int=0,
@Title nvarchar (300) ,
@SaveDate datetime ,
@Text1 ntext ,
@Text2 ntext ,
@tblName Nvarchar(20)
AS
Declare @SQLQuery Nvarchar(200)
Set @SQLQuery='INSERT '+@tblName + ' (CategoryNum,Title,SaveDate,Text1,Text2) VAlues (@CategoryNum,@Title,@SaveDate,@Text1,@Text2)'
EXECUTE sp_executesql @SQLQuery,N'@CategoryNum int=0,@Title nvarchar (300) ,@SaveDate datetime ,@Text1 ntext ,@Text2 ntext ',@CategoryNum,@Title,@SaveDate,@Text1,@Text2


GO




وقتی این کد را با مقدار تعریف شده ntext برای ستونهای text1,text2 اجرا میکنم اشکال
زیر را میدهد

The text, ntext, and image data types are invalid for local variables.


در صورتی که اگر به نوع nvarchar تغییر دهم این اشکال برطرف میشود این اشکال مربوط به چیست و چطوری میتونم از نوع ntext بگزارم بدون اینکه ایراد بگیرد

AminSobati
دوشنبه 15 آبان 1385, 16:17 عصر
text و ntext بعنوان متغیر نمیتونن تعریف بشن. اگر در SQL Server 2005 هستید از varchar max و nvarchar max استفاده کنید

majid_afra222
دوشنبه 15 آبان 1385, 16:35 عصر
CREATE PROCEDURE BHOMP_INS
@CategoryNum int=0,
@Title nvarchar (300) ,
@SaveDate datetime ,
@Text1 ntext ,
@Text2 ntext ,
@tblName Nvarchar(20)
AS
Declare @SQLQuery Nvarchar(200)
Set @SQLQuery='INSERT '+@tblName + ' (CategoryNum,Title,SaveDate,Text1,Text2) VAlues (@CategoryNum,@Title,@SaveDate,@Text1,@Text2)'
EXECUTE sp_executesql @SQLQuery,N'@CategoryNum int=0,@Title nvarchar (300) ,@SaveDate datetime ,@Text1 ntext ,@Text2 ntext ',@CategoryNum,@Title,@SaveDate,@Text1,@Text2


GO


اینطوریش کن :


وقتی این کد را با مقدار تعریف شده ntext برای ستونهای text1,text2 اجرا میکنم اشکال
زیر را میدهد

The text, ntext, and image data types are invalid for local variables.


در صورتی که اگر به نوع nvarchar تغییر دهم این اشکال برطرف میشود این اشکال مربوط به چیست و چطوری میتونم از نوع ntext بگزارم بدون اینکه ایراد بگیرد
سلام
اگه tblName چندان متغیر نیست، اینطوری بنویس :


CREATE PROCEDURE BHOMP_INS
@CategoryNum int=0,
@Title nvarchar (300) ,
@SaveDate datetime ,
@Text1 ntext ,
@Text2 ntext ,
AS
INSERT myTable (CategoryNum,Title,SaveDate,Text1,Text2)
VAlues (@CategoryNum,@Title,@SaveDate,@Text1,@Text2)

آقای ثباتی درست می گن بعنوان متغیر محلی نمی تونید معرفی کنید ولی بعنوان پارامتر ورودی یک SP می تونید.