View Full Version : سوال: چطور میشه یه آرایه( Csv) را به sp passing کرد
explod_javad
پنج شنبه 21 خرداد 1388, 13:18 عصر
با سلام خدمت همه دوستان
من میخام یک آرایه که شامل چند عدد که با , از هم جدا میشن رو به sp پاس کنم که توی خروجی کوئری ، رکورد هایی که Id اونها در آرایه هست نشون داده بشه .
ALTER PROCEDURE dbo.StoredProcedure1
@IDarray varchar(300),
@Active bit
AS
SELECT ID,
Subject,
[Name],
Active
FROM Tabl1
WHERE (Tabl1.Active = @Active )And ID in (@IDarray)
ORDER BY
ID DESC
اگر مقدار آرایه را 1 بدم ، خروجی بدون خطا هست
اما اگر
مقدار آرایه را 1,2,3 بدم خروجی نداره و خطا میده
کسی در این مورد اطلاع داره ؟
adinochestva
پنج شنبه 21 خرداد 1388, 13:36 عصر
از این می تونی استفاده کنی :
create FUNCTION [dbo].
[list_to_tb] (@list nvarchar(MAX))
RETURNS @tbl TABLE (number VARCHAR(100) NOT NULL) AS
BEGIN
DECLARE @pos int,
@nextpos int,
@valuelen int
SELECT @pos = 0, @nextpos = 1
WHILE @nextpos > 0
BEGIN
SELECT @nextpos = charindex(',', @list, @pos + 1)
SELECT @valuelen = CASE WHEN @nextpos > 0
THEN @nextpos
ELSE len(@list) + 1
END - @pos - 1
INSERT @tbl (number)
VALUES (convert(VARCHAR(100), substring(@list, @pos + 1, @valuelen)))
SELECT @pos = @nextpos
END
RETURN
END
explod_javad
پنج شنبه 21 خرداد 1388, 20:05 عصر
دوست من ممنون از زحمتی که کشیدی.
من در زمینه sp تازه کارم
میشه بیشتر توضیح بدید؟
adinochestva
پنج شنبه 21 خرداد 1388, 21:33 عصر
این تابع پارامتری که رشته ای هست که با کاما جدا شده می گیرد و جدولی با تعداد سطر های برابر با تعداد آیتم های آن رشته بر می گرداند.
AminSobati
پنج شنبه 21 خرداد 1388, 23:19 عصر
http://www.sommarskog.se/arrays-in-sql.html
explod_javad
شنبه 20 تیر 1388, 13:55 عصر
با سلام به همه دوستان.
من فکر کنم که راه حل مشکل من توی لینک زیر باشه.
http://www.geekzilla.co.uk/view5C09B52C-4600-4B66-9DD7-DCE840D64CBD.htm
ولی وقتی وی sql اجرا می کنم تابع dbo.CSVToList خطا میده
Incorrect syntax near 'RETURN'.
لطفا راهنمایی کنید
ASKaffash
شنبه 20 تیر 1388, 14:33 عصر
سلام
اینطوری :
Create Proc MySP
@All_ID Varchar(1000)
As
Declare @Cmd VarChar(8000)
Set @Cmd='Select * From T1 Where A2 In('+@All_ID+')'
Exec(@Cmd)
اینهم روش استفاده :
MySP '100,200'
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.