نمایش نتایج 1 تا 7 از 7

نام تاپیک: چطور میشه یه آرایه( Csv) را به sp passing کرد

  1. #1
    کاربر دائمی آواتار explod_javad
    تاریخ عضویت
    آذر 1384
    محل زندگی
    آمل
    پست
    304

    چطور میشه یه آرایه( Csv) را به sp passing کرد

    با سلام خدمت همه دوستان
    من میخام یک آرایه که شامل چند عدد که با , از هم جدا میشن رو به 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 بدم خروجی نداره و خطا میده

    کسی در این مورد اطلاع داره ؟

  2. #2
    کاربر دائمی آواتار adinochestva
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    jre
    پست
    460

    نقل قول: چطور میشه یه آرایه( Csv) را به sp passing کرد

    از این می تونی استفاده کنی :

    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

  3. #3
    کاربر دائمی آواتار explod_javad
    تاریخ عضویت
    آذر 1384
    محل زندگی
    آمل
    پست
    304

    نقل قول: چطور میشه یه آرایه( Csv) را به sp passing کرد

    دوست من ممنون از زحمتی که کشیدی.
    من در زمینه sp تازه کارم
    میشه بیشتر توضیح بدید؟

  4. #4
    کاربر دائمی آواتار adinochestva
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    jre
    پست
    460

    نقل قول: چطور میشه یه آرایه( Csv) را به sp passing کرد

    این تابع پارامتری که رشته ای هست که با کاما جدا شده می گیرد و جدولی با تعداد سطر های برابر با تعداد آیتم های آن رشته بر می گرداند.

  5. #5

    نقل قول: چطور میشه یه آرایه( Csv) را به sp passing کرد


  6. #6
    کاربر دائمی آواتار explod_javad
    تاریخ عضویت
    آذر 1384
    محل زندگی
    آمل
    پست
    304

    نقل قول: چطور میشه یه آرایه( Csv) را به sp passing کرد

    با سلام به همه دوستان.
    من فکر کنم که راه حل مشکل من توی لینک زیر باشه.
    http://www.geekzilla.co.uk/view5C09B...E840D64CBD.htm
    ولی وقتی وی sql اجرا می کنم تابع dbo.CSVToList خطا میده

    Incorrect syntax near 'RETURN'.

    لطفا راهنمایی کنید

  7. #7
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: چطور میشه یه آرایه( Csv) را به sp passing کرد

    سلام
    اینطوری :

    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'

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •