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

نام تاپیک: حرکت کرسر روی خروجی یک استورپوسیجر

  1. #1
    کاربر دائمی آواتار unique1984
    تاریخ عضویت
    دی 1384
    محل زندگی
    Newjef Land
    سن
    37
    پست
    221

    Question حرکت کرسر روی خروجی یک استورپروسیجر

    سلام
    من یه sp دارم که با توجه به شروطی ، اطلاعاتی رو با دستور select برمیگردونه. یعنی در هر شرط از یه دستور select استفاده کردم.
    حالا از داخل یه sp دیگه sp قبلی رو فراخوانی میکنم. و میخوام با کرسر روی تک تک سطرها برم و شرطی رو تست کنم و اطلاعات یه فیلد رو در بیارم.

    sp1
    select * from test 


    در حالت معمول کرسر رو اینطوری مینویسن
    DECLARE MyCursor CURSOR SCROLL FOR
    select ....

    حالا اگه بخوام اینطور بنویسم که صد در صد اشتباهه !چه باید کرد؟
    DECLARE BrouseProductsCursor CURSOR SCROLL FOR
    exec sp1
    آخرین ویرایش به وسیله unique1984 : جمعه 28 فروردین 1388 در 21:21 عصر




  2. #2
    کاربر دائمی آواتار reza_Nazem
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    تهران
    پست
    250

    نقل قول: حرکت کرسر روی خروجی یک استورپوسیجر

    یک راهش این است که sp رو تبدیل به function table کنی و خیلی راحت می توانید در دستور select مانند یک جدول با ان برخورد کنید

    را دوم این است که خروجی sp را در یک temp table بریزید و در دستور select از temp table استفاده کنی

    البته به نظر من راه اول خیلی کارا تر و بهینه تر است

  3. #3
    کاربر دائمی آواتار unique1984
    تاریخ عضویت
    دی 1384
    محل زندگی
    Newjef Land
    سن
    37
    پست
    221

    نقل قول: حرکت کرسر روی خروجی یک استورپوسیجر

    ممنون.
    منظورتون از Function table همون تابع های اسکیواله؟
    اگه امکانش هست یه مثال لطف کنید.

  4. #4
    کاربر دائمی آواتار reza_Nazem
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    تهران
    پست
    250

    نقل قول: حرکت کرسر روی خروجی یک استورپوسیجر


    create Function [dbo].[test1] (@id int)
    Returns Table
    as
    Return
    Select * FROM Tablename
    WHERE [id] = @id


    بعد می تونی به شکل زیر ازش استفاده کنی
    SELECT * FROM [dbo].[test1](4)

  5. #5
    کاربر دائمی آواتار unique1984
    تاریخ عضویت
    دی 1384
    محل زندگی
    Newjef Land
    سن
    37
    پست
    221

    نقل قول: حرکت کرسر روی خروجی یک استورپوسیجر

    در Function table بعد از Return باید بلافاصله دستور Select نوشته بشه. حالا اگه بخواهیم در صورت برقرار بودن شرطی یا عدم برقراری اون دستور select رو بنویسیم آیا باز هم می شه از Function table استفاده کرد؟
    بعنوان مثال :
    If @code=1 select * from test1 
    else select * from test2

  6. #6
    کاربر دائمی آواتار reza_Nazem
    تاریخ عضویت
    فروردین 1385
    محل زندگی
    تهران
    پست
    250

    نقل قول: حرکت کرسر روی خروجی یک استورپوسیجر


    Create FUNCTION test2 (@ID INTEGER)
    RETURNS @table TABLE
    (
    field1 int
    )
    as
    BEGIN
    INSERT INTO @table
    SELECT id FROM tableName
    RETURN
    END



    خوب شما اینجا مجبور هستین ساختار جدول خروجی را تعریف کنید که چه فیلد ها و چه نوعی داشته باشند
    و سپس ان را به توجه به نیازتان پر کنید

  7. #7
    کاربر دائمی آواتار unique1984
    تاریخ عضویت
    دی 1384
    محل زندگی
    Newjef Land
    سن
    37
    پست
    221

    نقل قول: حرکت کرسر روی خروجی یک استورپوسیجر

    فرض کنید من این دستورات رو دارم و میخوام f1,f2,f3 در table قرار بگیرند .
    DECLARE @f1 tinyint,f2	int,@f3 nvarchar(200)
    SELECT @f1=f1,@f2=f2 FROM tbl1 WHERE f4=5 AND f5=1
    EXEC sp_sample @f1,@f2,@f3 out

    نحوه نوشتن این فانکشن به چه صورته؟

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

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