Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с результатом запроса на сервере 
V
    Опции темы
Vaz007
Дата 27.9.2017, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 13.5.2009
Где: Москва

Репутация: нет
Всего: нет



Добрый день, есть следующая проблема:

Имеется запрос вида(1) : 
Код

SELECT CASE WHEN COLUMN1 IS NULL THEN 'Condition1' 
                  ELSE COLUMN1 
         END AS 'COL1',
         CASE WHEN COLUMN1 IS NULL THEN 'No' 
                  ELSE 'Yes' 
         END AS 'COL2'
FROM OPENQUERY (linked_server,'SELECT id as COLUMN1 
                                           FROM table
                                  WHERE id in ($id) ')

Запрос на sql server возвращает нормальный результат : COL1 : 'text1', COL2: 'text2'.
На сервере делаю подключение к БД через odbc_connect, используя Driver={SQL Server Native Client 10.0}, получаю следующий результат, не возвращаются колонки из запроса:
text1 : 'text1', text2: 'text2' , вместо названия колонки, записывается результат.
Ниже код получения результата:
Код

public function fetch($sql) {
        $rows = array();
        if ($this->connection_id && !empty($sql)) {
            $result = odbc_exec($this->connection_id, $sql);
            while ($row = odbc_fetch_array($result)) {
                $rows[] = $this->to_utf8($row);
            }
        }
        return $rows;
    }

Если же создать временную таблицу и записывать в нее результат из запроса(1) , потом использовать эту временную таблицу , колонки и результат возвращаются верно.
Подскажите пожалуйста  как можно решить  проблему получения результата запроса через OPENQUERY на стороне сервера ? (просто использование временной таблицы приводит к проблемам при работе многих пользователей)





Это сообщение отредактировал(а) Vaz007 - 27.9.2017, 16:20
PM MAIL Jabber   Вверх
Vaz007
Дата 23.10.2017, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 13.5.2009
Где: Москва

Репутация: нет
Всего: нет



Проблему решил с помощью изменения подхода в БД , создаю таблицу вношу в нее данные , потом курсором обновляю построчно. Также добавил для уникальности в таблицу два поля ИД_сессии и ИД_пользователя, чтобы не смешивать данные разных клиентов.
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0969 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.