Автор Тема: Ошибка при получение данных через ADOBD(Oracle)  (Прочитано 5260 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн PoleschenkoKV [?]

  • Новичок
  • *
  • Сообщений: 4
  • Репутация: 0
    • Награды
Добрый день.
При выполнении скрипта(ниже) вылетает с ошибкой(Error^ The requested action with this object has failed) при переходе ко второй записи(первая запись нормально отрабатывает). Подскажите из-за чего это происходит.

Код: AutoIt [Выделить]
$ado = ObjCreate( "ADODB.Connection" )
$ado.ConnectionString =("Provider='OraOLEDB.Oracle';Data Source='vologda';User Id='user';Password='pass';")
$ado.Open
   
$adors = ObjCreate( "ADODB.RecordSet" )
$adors.ActiveConnection = $ado
   
$adors.Source = "select def from note_types where nttp_id > 1"
$adors.Open
$rez = $adors
   
$i = 0
While Not $adors.EOF
   
    MsgBox(0, "Info", $adors.Fields($i).Value)
    $adors.MoveNext
    $i = $i + 1
   
Wend

$adors.Close
$ado.Close


Русское сообщество AutoIt

Ошибка при получение данных через ADOBD(Oracle)
« Отправлен: Октябрь 25, 2012, 15:53:52 »

Оффлайн ---Zak--- [?]

  • Скриптер
  • ****
  • Сообщений: 438
  • Репутация: 111
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Ошибка при получение данных через ADOBD(Oracle)
« Ответ #1, Отправлен: Октябрь 25, 2012, 17:31:47 »
Скажу сразу - такую технологию ;) не знаю, т.е. что куда и откуда пишется.

Но могу предположить, что:
Код: AutoIt [Выделить]
$adors.Source = "select def from note_types where nttp_id > 1"
...............
$i = 0
While Not $adors.EOF
   
    MsgBox(0, "Info", $adors.Fields($i).Value)
    $adors.MoveNext
    $i = $i + 1
   
Wend


Ты в запросе "$adors.Source" выводишь одно поле "def".
А в выводе "Fields($i)" у тебя получается, что показать поле следующее... т.е. не "def"

Это с намеком может как-нибудь так:
Код: AutoIt [Выделить]
While Not $adors.EOF
   
    MsgBox(0, "Info", $adors.Fields(0).Value)
    $adors.MoveNext
Wend


PS:
А есть функция с выводом сколько элементов/записей "$adors" и полей в одной записи "$adors.Fields" ?
Где-то тут на просторах инета нашел, что:
MoveNext(); //Переходим к след. записи
« Последнее редактирование: Октябрь 25, 2012, 17:38:32 от ---Zak--- »
OS: WinXp SP3 (RUS), Win7 (x86/x64)


My development:
http://autoit-script.ru/index.php/topic,11541.0.html

Оффлайн XpycT [?]

  • Скриптер
  • ****
  • Сообщений: 380
  • Репутация: 132
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Ошибка при получение данных через ADOBD(Oracle)
« Ответ #2, Отправлен: Октябрь 29, 2012, 13:07:03 »
PoleschenkoKV  [?]
Цитировать
вылетает с ошибкой
Вылетает потому что у вас в запросе идет запрос только одного значения / поля ("def"), а в цикле после первого прохода ($i увеличиваеться на 1) у вас идет запрос ко второму полю/столбцу ($adors.Fields($i).Value равносильно $adors.Fields(1).Value), а такого поля не существует, что и ведет к ошибке

Попробуй так
Код: AutoIt [Выделить]
$ado = ObjCreate( "ADODB.Connection" )
$ado.ConnectionString =("Provider='OraOLEDB.Oracle';Data Source='vologda';User Id='user';Password='pass';")
$ado.Open

$adors = ObjCreate( "ADODB.RecordSet" )
$adors.ActiveConnection = $ado

$adors.Source = "select def from note_types where nttp_id > 1"
$adors.Open
$rez = $adors

While Not $adors.EOF
    MsgBox(0, "Info", $adors.Fields(0).Value)
    $adors.MoveNext
Wend

$adors.Close
$ado.Close


---Zak---  [?]
Цитировать
А есть функция с выводом сколько элементов/записей
$adors.RecordCount - Количество записей / строк
$adors.Fields.Count - Количество полей / столбцов


Рожденный летать, висеть не может.

Джедаям запрещено участвовать в любых предприятиях, ставящих целью получение прибыли. Мы не можем извлекать выгоду из помощи, которую оказываем.

Оффлайн elshir [?]

  • Новичок
  • *
  • Сообщений: 1
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Добрый день!
Вопрос в следующем, есть скрипт подключения к Oracle c текстом выполняемого запроса.

Код: AutoIt [Выделить]
$s = "with bumm as (select to_char (dzins, 'dd.mm.yyyy hh24:mi:ss') ins, to_char (dzupd, 'dd.mm.yyyy hh24:mi:ss') chg, " & _
"bumid, bumgrundnam, substr(artid, 9, 14) art, tenam, plnam, aufgrpnam, aufid, aupnr, weaid, wepnr, bumparwws, bummgbstkto, " & _
"namins, namupd from GLJ_ROD_TST.BUM_t where bum_t.bumgrundnam in (select BUMGRUND_T.bumgrundnam from GLJ_ROD_TST.BUMGRUND_T " & _
"where BUMGRUND_T.rechtnam <> 'LEVEL3')) select * from bumm, GLJ_ROD_TST.BUMGRUND_T where bumm.bumgrundnam = bumgrund_t.bumgrundnam"
$ado = ObjCreate( "ADODB.Connection" )
$ado.ConnectionString =("Provider='OraOLEDB.Oracle';Data Source='source';User Id='user';Password='pass';")
$ado.Open
$adors = ObjCreate( "ADODB.RecordSet" )
$adors.ActiveConnection = $ado
$adors.Source = $s
$adors.Open




 $file = FileOpen("out.txt", 2)
While Not $adors.EOF
    $a = "'" & $adors.Fields(0).Value & "','" & $adors.Fields(1).Value & "','" & $adors.Fields(2).Value & "','" & $adors.Fields(3).Value & "','" & $adors.Fields(4).Value & "','" & $adors.Fields(5).Value & "','" & $adors.Fields(6).Value & "','" & $adors.Fields(7).Value & "','" & $adors.Fields(8).Value & "','" & $adors.Fields(9).Value & "','" & $adors.Fields(10).Value & "','" & $adors.Fields(11).Value & "','" & $adors.Fields(12).Value & "','" & $adors.Fields(13).Value & "','" & $adors.Fields(14).Value & "','" & $adors.Fields(15).Value & "'"
FileWrite ($file, $a & @CRLF)


    $adors.MoveNext
Wend
$adors.Close
$ado.Close
FileClose ($file)

Если запрос содержит больше символов - при выполнении из скрипта возникает ошибка. А есть запросы и по 50 строк. Как с этим бороться?

Русское сообщество AutoIt

Re: Ошибка при получение данных через ADOBD(Oracle)
« Ответ #3 Отправлен: Май 04, 2018, 12:40:08 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
7114 Просмотров
Последний ответ Октябрь 04, 2009, 13:27:40
от CreatoR
8 Ответов
6714 Просмотров
Последний ответ Апрель 18, 2015, 06:06:05
от madmasles
6 Ответов
3925 Просмотров
Последний ответ Ноябрь 16, 2010, 18:44:10
от r35p3ct
13 Ответов
14727 Просмотров
Последний ответ Апрель 02, 2018, 23:50:31
от Sergio
3 Ответов
4201 Просмотров
Последний ответ Декабрь 21, 2011, 20:28:03
от Afonichev
1 Ответов
4220 Просмотров
Последний ответ Март 02, 2012, 13:15:40
от ---Zak---
1 Ответов
2301 Просмотров
Последний ответ Апрель 03, 2012, 21:52:38
от Zaramot
2 Ответов
2559 Просмотров
Последний ответ Апрель 14, 2012, 16:53:00
от Realetive
0 Ответов
3830 Просмотров
Последний ответ Ноябрь 20, 2012, 00:31:01
от CreatoR
4 Ответов
4014 Просмотров
Последний ответ Август 01, 2013, 09:44:58
от veselroger