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

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

ЗЫ: я с ораклом не работал, не знаю, прокатит ли с ним Parameters.Refresh, пусть ораклисты поправят, если что
...
Рейтинг: 0 / 0
03.12.2010, 11:18
    #36992808
volik017
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции vba
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
03.12.2010, 11:20
    #36992816
volik017
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции vba
то беж, мне в среде vba надо посмотреть как вызвается та или иная функция, с какими параметрами
...
Рейтинг: 0 / 0
03.12.2010, 11:26
    #36992834
ё
ё
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции vba
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
03.12.2010, 11:29
    #36992841
timtim
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции vba
Код: 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
03.12.2010, 11:30
    #36992845
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции vba
volik017Вот кусочек, как это делаю в макросе excel средствами vba. Все работает.

все
Код: plaintext
cm.Parameters.Append траливали
заменяются на один
Код: plaintext
cm.Parameters.Refresh
ну а дальше можете в цикле распечатать себе содержание коллекции Parameters
...
Рейтинг: 0 / 0
03.12.2010, 11:35
    #36992855
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции vba
Ну вот, 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
03.12.2010, 11:36
    #36992859
volik017
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции vba
нет,
я как то видела (сама с этим мало работала), но у себя хочу также :)
смысл в том, что если я не ошибаюсь,
типа в DataEnvironvente делаем новый коннект, конектимся к базе...после коннекта появляется дерево с таблицами и хранимыми всякими "процедурами". А далее с помощью каких то нехитрых нажатий клавиш в дереве на конкретной функции можно увидеть ее параметры и вообще как она вызывается. Только почему-то у меня в этом дереве есть функции и процедуры, а пакетов нет.
Т.е, то что я хочу, делается с помощью интерфейcа в vba.
...
Рейтинг: 0 / 0
03.12.2010, 11:49
    #36992924
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции vba
может тупо ораклового клиента на машину поставить и нормально использовать его возможности, вместо дурацких примочек типа датаэнвиромента?
...
Рейтинг: 0 / 0
03.12.2010, 11:53
    #36992936
volik017
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции vba
Да у меня все есть на машине....где можно посмотреть еще, как функция ораклевая будет вызываться в vba?
...
Рейтинг: 0 / 0
03.12.2010, 12:11
    #36992997
volik017
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции vba
volik017,
неть, никто?
...
Рейтинг: 0 / 0
03.12.2010, 12:16
    #36993017
ё
ё
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции vba
volik017...где можно посмотреть еще, как функция ораклевая будет вызываться в vba?
ну если того что показали - мало,
то ещё можно - "в чесных, чуть уставших" глазах разработчика этой "функция ораклевая"
ну или в документации, которую он вам составил/передал
...
Рейтинг: 0 / 0
03.12.2010, 12:18
    #36993029
volik017
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции vba
разработчик я сама ?)
...
Рейтинг: 0 / 0
03.12.2010, 12:22
    #36993049
ё
ё
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции vba
volik017разработчик я сама ?)
оракловой "процедура (функция)" ??!
...ай бросьте ))
...
Рейтинг: 0 / 0
03.12.2010, 12:22
    #36993052
volik017
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции vba
volik017,

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

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

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


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