powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / вызов функции vba
20 сообщений из 20, страница 1 из 1
вызов функции vba
    #36992742
volik017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Подскажите, плиз. У меня есть хранимая процедура (функция) на оракле. Мне надо средствами vba вызвать ее в excel. Впринципе, как это сделать я знаю...А как посмотреть, с какими параметрами она вызвается? В VBA это как то можно сделать вроде?
...
Рейтинг: 0 / 0
вызов функции vba
    #36992760
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может через ADODB.Command.Parameters.Refresh?
...
Рейтинг: 0 / 0
вызов функции vba
    #36992770
volik017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

а это где? я интерфейс vba знаю плохо
...
Рейтинг: 0 / 0
вызов функции vba
    #36992788
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у-у-у-у....
Это не интерфейс VBAvolik017Впринципе, как это сделать я знаю...
И это тоже не интерфейс VBA
Вы это как собираетесь делать-то?

ЗЫ: я с ораклом не работал, не знаю, прокатит ли с ним Parameters.Refresh, пусть ораклисты поправят, если что
...
Рейтинг: 0 / 0
вызов функции vba
    #36992808
volik017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Set cm = New ADODB.Command
Set cm.ActiveConnection = adoConnect

cm.CommandText = "{? = CALL tram_pam_pam( ?, ?, ?) }"
cm.Parameters.Append cm.CreateParameter(""RETURN_VALUE"", adInteger, adParamReturnValue)
cm.Parameters.Append cm.CreateParameter("tram1", adVarChar, adParamInput, 4000, "")
cm.Parameters.Append cm.CreateParameter("tram2", adVarChar, adParamOutput, 4000)
cm.Parameters.Append cm.CreateParameter("tram3", adVarChar, adParamOutput, 4000)

cm.Execute

Вот кусочек, как это делаю в макросе excel средствами vba. Все работает. Но знаю, что в среде VBA можно подконнектиться к базе oracle и где -то посмотреть, как будет вызваться эта функция и скаими парметрами...
...
Рейтинг: 0 / 0
вызов функции vba
    #36992816
volik017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
то беж, мне в среде vba надо посмотреть как вызвается та или иная функция, с какими параметрами
...
Рейтинг: 0 / 0
вызов функции vba
    #36992834
ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ё
Гость
Shocker.Proможет через ADODB.Command.Parameters.Refresh?
+1
для МС СКЛ точно прокатуит
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
  With cmd
    .CommandText = ProcName
    .CommandType = adCmdStoredProc
    .CommandTimeout =  1000 
    .ActiveConnection = cn
    .Parameters.Refresh
    Dim pr As Variant
    For Each pr In .Parameters
      Debug.Print pr.Name
    Next
    ' ....
  End With
Код: plaintext
1.
2.
3.
4.
RunStoredProc("МаяПроцедура")
@RETURN_VALUE
@NewPass
@Login
...
Рейтинг: 0 / 0
вызов функции vba
    #36992841
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
strCon = "Driver={Microsoft ODBC for Oracle};Server=XE;uid=adm;pwd=1;"

Set oCMD = CreateObject("ADODB.Command")
Set oCon = CreateObject("ADODB.Connection")
Set oRs = CreateObject("ADODB.Recordset")
Set oParam = CreateObject("ADODB.Parameter")

oCon.Open strCon
oCMD.ActiveConnection = oCon
oCMD.CommandText = "testprg"'имя ХП
oCMD.CommandType =  4 
oCMD.NamedParameters = True
oCMD.Parameters.Refresh

for i = o to CMD.Parameters.Count

paramName = oCMD.Parameters(i).Name
paramType = oCMD.Parameters(i).Type
..................
next i

может типа этого тебе надо?
...
Рейтинг: 0 / 0
вызов функции vba
    #36992845
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
volik017Вот кусочек, как это делаю в макросе excel средствами vba. Все работает.

все
Код: plaintext
cm.Parameters.Append траливали
заменяются на один
Код: plaintext
cm.Parameters.Refresh
ну а дальше можете в цикле распечатать себе содержание коллекции Parameters
...
Рейтинг: 0 / 0
вызов функции vba
    #36992855
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот, timtim ответ уже дал
Только цикл не от "о", а от "0" и не до Count, а до Count-1 (ну или от 1 до Count тогда, не помню)

Код: plaintext
1.
2.
3.
4.
5.
for i =  0  to CMD.Parameters.Count- 1 

Debug.Print oCMD.Parameters(i).Name
Debug.Print TypeName(oCMD.Parameters(i).Type)

next i
...
Рейтинг: 0 / 0
вызов функции vba
    #36992859
volik017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет,
я как то видела (сама с этим мало работала), но у себя хочу также :)
смысл в том, что если я не ошибаюсь,
типа в DataEnvironvente делаем новый коннект, конектимся к базе...после коннекта появляется дерево с таблицами и хранимыми всякими "процедурами". А далее с помощью каких то нехитрых нажатий клавиш в дереве на конкретной функции можно увидеть ее параметры и вообще как она вызывается. Только почему-то у меня в этом дереве есть функции и процедуры, а пакетов нет.
Т.е, то что я хочу, делается с помощью интерфейcа в vba.
...
Рейтинг: 0 / 0
вызов функции vba
    #36992924
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может тупо ораклового клиента на машину поставить и нормально использовать его возможности, вместо дурацких примочек типа датаэнвиромента?
...
Рейтинг: 0 / 0
вызов функции vba
    #36992936
volik017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да у меня все есть на машине....где можно посмотреть еще, как функция ораклевая будет вызываться в vba?
...
Рейтинг: 0 / 0
вызов функции vba
    #36992997
volik017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
volik017,
неть, никто?
...
Рейтинг: 0 / 0
вызов функции vba
    #36993017
ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ё
Гость
volik017...где можно посмотреть еще, как функция ораклевая будет вызываться в vba?
ну если того что показали - мало,
то ещё можно - "в чесных, чуть уставших" глазах разработчика этой "функция ораклевая"
ну или в документации, которую он вам составил/передал
...
Рейтинг: 0 / 0
вызов функции vba
    #36993029
volik017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
разработчик я сама ?)
...
Рейтинг: 0 / 0
вызов функции vba
    #36993049
ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ё
Гость
volik017разработчик я сама ?)
оракловой "процедура (функция)" ??!
...ай бросьте ))
...
Рейтинг: 0 / 0
вызов функции vba
    #36993052
volik017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
volik017,

скорее мне надо поспрашивать у того человека, на машине которого я это видела.
...
Рейтинг: 0 / 0
вызов функции vba
    #36993056
volik017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
volik017,

но у вас видимо какое то свое видение...
про того, кто должен писать эти функции
...
Рейтинг: 0 / 0
вызов функции vba
    #36993060
volik017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ё,

но у вас видимо какое то свое видение...
про того, кто должен писать эти функции
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / вызов функции vba
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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