Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Получить данные из таблицы БД Oracle

Ответить
Настройки темы
[решено] Получить данные из таблицы БД Oracle

Пользователь


Сообщения: 74
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: support23
Дата: 20-06-2014
Доброго дня!
Возникла необходимость в получении данных из таблицы БД Oracle, таблица содержит 1 столбец и множество строк (кол-во строк - значение не постоянное и может изменяться)
На текущий момент есть следующее:

Код: Выделить весь код
$conn = ObjCreate( "ADODB.Connection" )
$DSN =   "Driver={Microsoft ODBC for Oracle}; " & _
         "CONNECTSTRING=(DESCRIPTION=" & _
         "(ADDRESS=(PROTOCOL=TCP)" & _
         "(HOST=hostname)(PORT=1521))" & _
         "(CONNECT_DATA=(SERVICE_NAME=dbname))); uid=login;pwd=password;"
$conn.Open($DSN)
$rs = ObjCreate( "ADODB.RecordSet" )

$select = "select vr.NAME from dwb.USERS us join dwb.USER_ROLE ur on ur.id_user=us.id_user join dwb.V_ROLE vr on ur.id_role = vr.ID_USER where us.NAME = 'Ivanov'"
$rs.Open($select, $conn )




$conn.close
как реализовать вывод данных, полученных из таблицы?

Отправлено: 09:44, 20-06-2014

 

Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


support23,
Вставьте в строку поиска google ADODB.Connection site:autoit-script.ru, там несколько тем об этом есть.
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:41, 20-06-2014 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 74
Благодарности: 0

Профиль | Отправить PM | Цитировать


отлично, я нашел что искал, спасибо!

добавил строки:
$aResultsArray = $rs.GetRows()
_ArrayDisplay($aResultsArray, "Results")

конечный результат:
Код: Выделить весь код
$conn = ObjCreate( "ADODB.Connection" )
$DSN =   "Driver={Microsoft ODBC for Oracle}; " & _
         "CONNECTSTRING=(DESCRIPTION=" & _
         "(ADDRESS=(PROTOCOL=TCP)" & _
         "(HOST=hostname)(PORT=1521))" & _
         "(CONNECT_DATA=(SERVICE_NAME=dbname))); uid=login;pwd=password;"
$conn.Open($DSN)
$rs = ObjCreate( "ADODB.RecordSet" )

$select = "select vr.NAME from dwb.USERS us join dwb.USER_ROLE ur on ur.id_user=us.id_user join dwb.V_ROLE vr on ur.id_role = vr.ID_USER where us.NAME = 'Ivanov'"
$rs.Open($select, $conn )


$aResultsArray = $rs.GetRows()
_ArrayDisplay($aResultsArray, "Results")

$conn.close

Последний раз редактировалось support23, 20-06-2014 в 19:12.


Отправлено: 15:33, 20-06-2014 | #3


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


support23,
А у Вас не ошибочно стоит пустая скобка ) в 9-ой строке кода?

Отправлено: 16:59, 20-06-2014 | #4


Пользователь


Сообщения: 74
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата madmasles:
А у Вас не ошибочно стоит пустая скобка ) в 9-ой строке кода? »
исправил, тема закрыта.

Отправлено: 19:13, 20-06-2014 | #5


Пользователь


Сообщения: 74
Благодарности: 0

Профиль | Отправить PM | Цитировать


если результат селекта - отсутствие значений, то выводит ошибку:

==> The requested action with this object has failed.:
$aResultsArray = $rs.GetRows()
$aResultsArray = $rs.GetRows()^ ERROR

как предотвратить завершение работы скрипта в таком случае? нужно чтобы даже в случае отсутствия значений в результате выполнения селекта, скрипт продолжил работу

Отправлено: 10:10, 25-06-2014 | #6


Пользователь


Сообщения: 74
Благодарности: 0

Профиль | Отправить PM | Цитировать


сам спросил, сам нашел ответ)
нужно добавить:


Код: Выделить весь код
If Not $rs.EOF Then
$aResultsArray = $rs.GetRows()

....

endif

Отправлено: 10:38, 25-06-2014 | #7


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата support23:
сам спросил, сам нашел ответ) »
Проверять надо либо и «.EOF», и «.BOF» совместно, либо «.RecordCount» (если оно поддерживается данных поставщиком данных).
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:58, 25-06-2014 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Получить данные из таблицы БД Oracle

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
.NET - [решено] Из таблицы БД (Entity, SQLExpress) в DataGridView - как? Sidewalker Программирование и базы данных 8 27-04-2012 09:58
[решено] Получить значение ячейки из таблицы HTML Lodoss AutoIt 2 30-12-2009 07:15
Прочие БД - Конвертация БД из InterBase в Oracle worsvch Программирование и базы данных 1 30-04-2009 15:02
Как получить данные из xml-файла? ptt Программирование и базы данных 1 14-10-2004 09:45
Плиз хелп!Как в Аксесе програмно взять данные из таблицы? Guest Программирование и базы данных 1 11-11-2003 10:38




 
Переход