Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Microsoft Office и VBA > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 15.04.2013, 16:46   #1
Lionne
Новичок
 
Регистрация: 15.04.2013
Сообщений: 1
Репутация: 10
По умолчанию VBA и Oracle: stored procedure из VBA и сохранение текста в переменной

Добрый день,

Кто-нибудь сталкивался с проблемой выполнения функции Oracle, т.н. Oracle stored procedure, и сохранением результата в переменной?

Операционка: Win XP SP3
Excel 2003
Oracle Client: 11g

Сохранять данные select statements можно с использованием драйвера ODBC (Driver: Oracle in XE), который безукоризненно работает в моем случае:
Код:

'-----------------------
Sub Extract_Data()
 
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim db_name, UserName, Password As String
 
cn.Open db_name, USerName, Password
 
sql_statement = "SELECT some_text FROM some_table"
 
Set rs = cn.Execute(sql_statement)
rs.MoveFirst 'jump to the first entry in the data list
 
Row = 2
While Not rs.EOF
'save the data to a worksheet
ip.Cells(Row, 2) = rs(0).Value
Row = Row + 1
rs.MoveNext
Wend
End Sub
'-----------------------

Но мне нужно обратиться к stored procedure и сохранить буквенно-цифровой результат, разделенный точкой с запятой, в качестве переменной. Проблема состоит в том, что моя процедура доходя до определения параметров выдает ошибку:
"не могу найти объект в коллекции, соответствующий имени или порядковому номеру, запрашиваемым приложением"

далее код:

Код:

'----------------------
Public Sub obj_class()
 
Dim cn As New ADODB.Connection
Dim strSQL, cn As String
Dim adoCMD As ADODB.Command
Dim adoRS As ADODB.Recordset
 
Set wb = Excel.ActiveWorkbook
Set ih = wb.Sheets("InfoSheet")
 
cn.Open db_name, UserName, Password
 
Set adoCMD = New ADODB.Command
With adoCMD
.ActiveConnection = cn
.CommandText = "S#mdb$stg_da_extr_util.get_all_classes_of_classif"
.CommandType = adCmdStoredProc
.Parameters.Refresh
.Parameters("i_caller").Value = "'STG_DATA_REQUEST'" 'ошибка появляется здесь
.Parameters("i_obj_classif_id").Value = 120
 
Set adoRS = .Execute()
End With
End Sub
'----------------------

Я пыталась спрашивать на этом форуме:
http://www.access-programmers.co.uk/...67#post1241667
но к сожалению безрезультатно.

Надеюсь и буду премного благодарна за любую подсказку.
Lionna
Lionne вне форума   Ответить с цитированием
Старый 15.04.2013, 19:51   #2
doober
Профессионал
 
Аватар для doober
 
Регистрация: 02.05.2009
Адрес: Леса Мордовии
Сообщений: 3,901
Репутация: 650

skype: d_ober1
По умолчанию

Сначала параметр надо создать ,потом ему значение присваивать.
Идея такова,не проверял
Код:

Set adoCMD = New ADODB.Command
With adoCMD
.ActiveConnection = cn
.CommandText = "S#mdb$stg_da_extr_util.get_all_classes_of_classif"
.CommandType = adCmdStoredProc
.CreateParameter "i_caller", adChar, adParamInputOutput
.CreateParameter "i_obj_classif_id", adInteger, adParamInputOutput
.Parameters("i_caller").Value = "'STG_DATA_REQUEST'" ''ошибка появляется здесь
.Parameters("i_obj_classif_id").Value = 120
Set adoRS = .Execute()
End With

__________________
Анализ,обработка данных Недорого
doober вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в VBA.Type-mismatch. Где я неверно указала тип переменной? mozart2012 Помощь студентам 4 28.01.2013 15:33
Выполнение select для stored procedure RISagitov SQL, базы данных 3 18.10.2012 00:29
Oracle + VBA 2008 ОТКАТ ТРАНЗАКЦИИ James_047 Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 1 17.03.2012 21:38
Oracle и VBA Bezkolena Помощь студентам 0 05.06.2011 00:49
Vba excel Удаление Текста HelperAwM Microsoft Office Excel 4 19.06.2010 23:55


22:07.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru