Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: PHP+ODBC+Stored procedure + ref cursor  (Прочитано 14836 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Aleck D.Shadow
Опытный

tr
Offline Offline
Пол: Мужской

« : 06-09-2007 09:06 » 

Не могу ни как понять как всё-таки получить значение курсора через ODBC с базы Oracle вызовом функции:

Код:
$odbcrec = odbc_connect('dsn','user','pass',SQL_CUR_USE_ODBC);
$sql  = "
declare
TYPE cur IS REF CURSOR;
c cur;
BEGIN
c := schema.pak.get_some_info(219881,219881);
END;
";
  $query = odbc_exec($odbcrec, $sql);

А как значение "С" то извлечь?
Всё уже загуглил! Может кто подскажет?
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 06-09-2007 19:49 » 

хелп по этому поводу говорит

odbc_fetch_array

odbc_fetch_array -- Fetch a result row as an associative array

ведь результат работу курсора - таблица
а также смотреть
odbc_fetch_row()
odbc_fetch_object()
odbc_num_rows()
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Aleck D.Shadow
Опытный

tr
Offline Offline
Пол: Мужской

« Ответ #2 : 07-09-2007 03:50 » 

Спасибо за ответ, однако я пробовал использовать odbc_fetch_row(), но результат:
Warning: odbc_fetch_row() [function.odbc-fetch-row]: No tuples available at this result index in
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 07-09-2007 05:57 » 

 акогда ты вызываешь odbc_fetch_row(),
код покажи
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 07-09-2007 06:13 » 

это ворнинг, можно попробывать сделать
@odbc_fetch_row()

можно
Код:
$odbcrec = odbc_connect('dsn','user','pass',SQL_CUR_USE_ODBC);
$query= odbc_exec($odbrec, $sql);
if(!$query)
{
echo "no result"
}else {
$data = array();
if (odbc_next_result){
while ( $row = odbc_fetch_array($query))
}
}
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 13-09-2007 19:00 » 

Aleck D.Shadow, возможность работы непосредственно с Oracle ты не рассмвтривал? Почему именно ODBC?
http://www.php.net/manual/ru/ref.oci8.php

тут что-то похожее (детально не вникал):
http://www.php.net/manual/ru/ref.oci8.php#16671
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Aleck D.Shadow
Опытный

tr
Offline Offline
Пол: Мужской

« Ответ #6 : 19-09-2007 18:00 » 

RXL:
Собственно oci и использую. А odbc нужно чтобы попытаться уйти от несовместимости Oracle Client 10 с RDBMS Oracle 7.
Этого клиента использует php 5.
Поменять Oracle 7 невозможно, не в моей юрисдикции.
Вот такая проблемка.

Sla:
код не под рукой пока.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 20-09-2007 20:25 » 

Aleck D.Shadow, посмотри тут: http://www.php.net/manual/ru/function.odbc-connect.php
Прочти о SQL_CUR_USE_ODBC.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Aleck D.Shadow
Опытный

tr
Offline Offline
Пол: Мужской

« Ответ #8 : 21-09-2007 09:45 » 

Код:
$odbcrec = odbc_connect('dsn','user','pass',SQL_CUR_USE_ODBC);

Дак вроде использую, но не дает.

Только выдает при попытке зафетчить полученные записи:
Warning: odbc_fetch_row() [function.odbc-fetch-row]: No tuples available at this result index in
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 21-09-2007 13:19 » 

а с @ пробовал?
и установить курсор в начало

полчается что у тебя курсор смотрит в пустоту, то ли ничего не положил и он не заполнен, то ли уже кончился, а ты из него хочешь еще выжать
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Aleck D.Shadow
Опытный

tr
Offline Offline
Пол: Мужской

« Ответ #10 : 24-09-2007 06:38 » 

Sla, пробовал @ но я так понял она лишь скрывает ворнинг.
Данных нема.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines