За последние 24 часа нас посетили 22544 программиста и 1013 роботов. Сейчас ищут 624 программиста ...

Подскажите как правильно вывести результат

Тема в разделе "Yii", создана пользователем Artur_hopf, 1 июл 2019.

  1. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    Добрый день. Есть такой sql запрос:
    PHP:
    1. declare @handle int,@rows int
    2. exec sp_cursoropen @handle OUT, 'select * from BigTable',1, 1, @rows OUT
    3. select @handle as handle, @rows as rows
    На выходе получаются две таблички, одна с пустыми параметрами, вторая c нужными мне.
    Подскажите как получить данные из второй таблички?

    В yii делаю такой запрос:
    PHP:
    1. $sql = "declare @handle int,@rows int
    2. exec sp_cursoropen @handle OUT, 'select * from BigTable',1, 1, @rows OUT
    3. select @handle as handle, @rows as rows";
    4.  
    5. $result = Yii::$app->db->createCommand($sql)->queryAll();
    6. if(count($result) > 0){
    7.     return $result;
    8. }else{
    9.     return false;
    10. }
    Вод для наглядности результат запроса в ssms:
    sql.jpg
     
  2. villiwalla

    villiwalla Активный пользователь

    С нами с:
    14 дек 2016
    Сообщения:
    471
    Симпатии:
    70
    И что не работает?
     
  3. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
  4. villiwalla

    villiwalla Активный пользователь

    С нами с:
    14 дек 2016
    Сообщения:
    471
    Симпатии:
    70
    А что у тебя за нотация sql такая?
     
  5. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
  6. villiwalla

    villiwalla Активный пользователь

    С нами с:
    14 дек 2016
    Сообщения:
    471
    Симпатии:
    70
    наверное нужно указать куда писать курсор через bind и использовать execute
     
  7. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    не разобрался, оставил простой вариант:
    PHP:
    1. SELECT * FROM dbo.test_sales_data
    2. ORDER BY id_product, id_customer, sale_date
    3. OFFSET @offset ROW FETCH NEXT @page_size ROWS ONLY