Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA: как запустить процедуру в БД? / 7 сообщений из 7, страница 1 из 1
06.11.2003, 10:09
    #32316872
Builder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA: как запустить процедуру в БД?
Перед получением данных в Excel из базы данных в базе данных надо выполнить процедуру. Как запустить её из VBA? Кто-нибудь может помочь?
...
Рейтинг: 0 / 0
06.11.2003, 10:51
    #32316945
tpg
tpg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA: как запустить процедуру в БД?
Ничего сложного... Если через ADO, то надо создать объект коннекции и сказать ему

con.Execute("MyProc")

Или создать объект Command и, настроив соответствующе его свойства, тоже сказать

cmd.Execute
...
Рейтинг: 0 / 0
06.11.2003, 12:39
    #32317158
Builder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA: как запустить процедуру в БД?
Спасибо, tpg. Пробовал db.Execute("Procedure(Param)"). "Run-time Error '3065' Невозможен запуск запроса на выборку"
...
Рейтинг: 0 / 0
06.11.2003, 13:57
    #32317311
tpg
tpg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA: как запустить процедуру в БД?
А по подробней... Что такое Param? Нельзя ли привести кусок кода, да и текст процедуры не помешал бы.
...
Рейтинг: 0 / 0
06.11.2003, 14:44
    #32317386
Builder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA: как запустить процедуру в БД?
Подключаюсь через ODBC к Oracle, используется DAO, процедура aaa.bbb('55') хранится в базе, её надо выполнить 1 раз в начале, текста её не знаю, другие программы её часто используют...
Set db = OpenDatabase("", dbDriverNoPrompt, False, "ODBC;DSN=Oracle;")
db.Execute ("aaa.bbb('55')")
...
Set rs = db.OpenRecordset(Select, dbOpenDynaset)
...
Рейтинг: 0 / 0
06.11.2003, 14:50
    #32317394
tpg
tpg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA: как запустить процедуру в БД?
А параметр точно символьного типа должен передаваться?
...
Рейтинг: 0 / 0
06.11.2003, 15:09
    #32317411
Builder
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA: как запустить процедуру в БД?
Да символьного. У меня заработало в таком виде:
db.Execute "{Call aaa.bbb('55')}", dbSQLPassThrough
Это я в MS Query вызов процедур подсмотрел. Теперь заметил другую проблему: если в SELECT есть к.л. функция, например to_date(), VBA на неё ругается.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA: как запустить процедуру в БД? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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