powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA Не найдено имя аргумента для процедуры PL/SQL
14 сообщений из 14, страница 1 из 1
VBA Не найдено имя аргумента для процедуры PL/SQL
    #38893889
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги,

Имеется следующий код для вызова функции Oracle:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
     strCon = "Provider=MSDAORA.1; Data Source=test; User ID=test; Password=test"
     Set oCMD = CreateObject("ADODB.Command")
     Set oCon = CreateObject("ADODB.Connection")
     Set oRS = CreateObject("ADODB.Recordset")
     oCon.Open strCon

     oCMD.ActiveConnection = oCon
          
     oCMD.CommandText = "{call tctdbs.test.CheckConnection(?,?,{resultset 0, aResult})}"
     oCMD.Parameters.Refresh
     oCMD.Parameters("aDateFrom").Value = "111"
     oCMD.Parameters("aDateTo").Value = "222"
     Set oRS = oCMD.Execute
     
     y = 2
     While Not oRS.EOF
        Cells(y, 1).Value = oRS("DAT")
        Cells(y, 2).Value = oRS("DT")
        Cells(y, 3).Value = oRS("TXT")
        y = y + 1
        oRS.MoveNext
     Wend
     oCon.Close



На строке Set oRS = oCMD.Execute получаю сообщение (во вложении)
Что не так? Аргументы зацепились. Значения им присвоены. Куда копать?
...
Рейтинг: 0 / 0
VBA Не найдено имя аргумента для процедуры PL/SQL
    #38893920
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
If you need this functionality, use the OLE DB Provider for ODBC and the Microsoft Oracle ODBC driver.
...
Рейтинг: 0 / 0
VBA Не найдено имя аргумента для процедуры PL/SQL
    #38893922
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
VBA Не найдено имя аргумента для процедуры PL/SQL
    #38894007
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Both of them giving errors.
MSDAORA may retrieve parameters but it fails on Execute step.
MSDASQL may not even retrieve parameters.

So your solution is not applicable. Check initial request once again.
...
Рейтинг: 0 / 0
VBA Не найдено имя аргумента для процедуры PL/SQL
    #38894038
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может я тупой, но:
oCMD.CommandText = "{call tctdbs.test.CheckConnection(?,?,{resultset 0, aResult})}"

Где в данном анонимном PL/SQL блоке Вы увидели нижеследующие параметры? Ткните пальцем пожалуйста. Я таких буковок не вижу.
oCMD.Parameters(" aDateFrom ").Value = "111"
oCMD.Parameters(" aDateTo ").Value = "222"
...
Рейтинг: 0 / 0
VBA Не найдено имя аргумента для процедуры PL/SQL
    #38894337
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А? Зачем та буковки то? Вы о чем вообще? Я же вызываю oCMD.Parameters.Refresh там все буковки САМИ вытягиваются.
...
Рейтинг: 0 / 0
VBA Не найдено имя аргумента для процедуры PL/SQL
    #38894642
фффф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Петров АндрейА? Зачем та буковки то? Вы о чем вообще? Я же вызываю oCMD.Parameters.Refresh там все буковки САМИ вытягиваются.
IMHO
Откуда они должны "сами вытягиваться"?

Вы отдаете "запрос" (вызов call, но не суть важно), в запросе используются анонимные/позиционные bind-переменные (bind-parameters). То, где знаки вопроса. Т.ч. или используйте какие-то методы для "parameter by postition" (не знаю как это по русски) или именуйте bind-переменные (но вроде OraOLEDB named parameters не поддерживает).

Попытайтесь
cmd.Parameters.Append cmd.CreateParameter(...)

первый попавшийся пример:
http://answers.google.com/answers/threadview/id/42511.html

сам так не делал
===
p.s. http://support.microsoft.com/kb/KbView/240205 у меня не открывается ((( msdn открывается, а данная страница просто весит (((
возможно чушь написал
...
Рейтинг: 0 / 0
VBA Не найдено имя аргумента для процедуры PL/SQL
    #38894654
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ффффIMHO
Откуда они должны "сами вытягиваться"?Можно было бы прочитать про Refresh, прежде чем возмущаться, зачем ИМХО, если есть справка?
ADO делает запрос к серверу и заполняет коллекцию параметров.
...
Рейтинг: 0 / 0
VBA Не найдено имя аргумента для процедуры PL/SQL
    #38894775
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
идите вы... лесом...
запустил VB, сейчас рабочей пример приведу... )))
...
Рейтинг: 0 / 0
VBA Не найдено имя аргумента для процедуры PL/SQL
    #38894844
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Признаю... Был не прав (((
...
Рейтинг: 0 / 0
VBA Не найдено имя аргумента для процедуры PL/SQL
    #38897210
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, пример рабочий :-)
Вопрос в том что либо в каком то конкретном случае не хочет запускаться либо после перехода на 11 оракл клиент перестал это поддерживать в том виде котором работал на 9.

Как я понимаю идей нет?
...
Рейтинг: 0 / 0
VBA Не найдено имя аргумента для процедуры PL/SQL
    #38897277
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хоть бы текст (заголовок) процедуры на Oracle привел
...
Рейтинг: 0 / 0
VBA Не найдено имя аргумента для процедуры PL/SQL
    #38897291
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Петров АндрейКак я понимаю идей нет?идея от майкрософта не устраивает? или боишься, что тормознее будет?
...
Рейтинг: 0 / 0
VBA Не найдено имя аргумента для процедуры PL/SQL
    #38897312
Refresh,
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Петров АндрейКоллеги, пример рабочий :-)
Вопрос в том что либо в каком то конкретном случае не хочет запускаться либо после перехода на 11 оракл клиент перестал это поддерживать в том виде котором работал на 9.

Как я понимаю идей нет?
Была такая же проблема после перехода с МС СКЛ 2000 на МС СКЛ 2005 (причём с одной единственной инсталляцией 2005-го, сейчас тоже установлен 2005-ый, и всё с Refresh нормально)
Суть в том, что Refresh - не возвращал список параметров
Думаю, тут где-то есть и решение ...

Но главное не это
А чего ты вообще "вцепился" в этот Refresh ? была бы это какая-то универсальная процедура для запуска ХП, с произвольным кол-вом параметров - было бы понятно,
а тут ты йи-ёшь себе и людям голову с запуском конкретной ХП с наперёд известными параметрами !
так сделай как посоветовали ! - 17342396
Код: vbnet
1.
cmd.Parameters.Append cmd.CreateParameter(...)

и всё!
Заодно "выиграешь" на отсутствии запроса у сервера параметров, что и делает Refresh
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA Не найдено имя аргумента для процедуры PL/SQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]