powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запуск ХП из ВБА (можно ли иначе?)
7 сообщений из 7, страница 1 из 1
Запуск ХП из ВБА (можно ли иначе?)
    #32889263
mastermind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
здрасте, наваял я исполнение хп на вба:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Set prmIn_userName = cmd.CreateParameter("userName", adVarChar, adParamInput,  50 , userName)
                Set prmIn_Id_num = cmd.CreateParameter("id_num", adVarChar, adParamInput,  50 , "1")
                Set prmOut_rowCount = cmd.CreateParameter("rowCount", adChar, adParamOutput,  4 )
                Set prmOut_res = cmd.CreateParameter("res", adChar, adParamOutput,  4 )
                    cmd.Parameters.Append prmIn_userName
                    cmd.Parameters.Append prmIn_Id_num
                    cmd.Parameters.Append prmOut_rowCount
                    cmd.Parameters.Append prmOut_res
                    cmd.Execute
                
                rowCount = prmOut_rowCount
                    cmd.Parameters.Delete ("userName")
                    cmd.Parameters.Delete ("id_num")
                    cmd.Parameters.Delete ("rowCount")
                    cmd.Parameters.Delete ("res")
                    'cmd.Execute
                For i =  1  To rowCount
                    Set prmIn_userName = cmd.CreateParameter("userName", adVarChar, adParamInput,  50 , userName)
                    Set prmIn_Id_num = cmd.CreateParameter("id_num", adVarChar, adParamInput,  50 , i)
                    Set prmOut_rowCount = cmd.CreateParameter("rowCount", adChar, adParamOutput,  4 )
                    Set prmOut_res = cmd.CreateParameter("res", adChar, adParamOutput,  4 )
                        cmd.Parameters.Append prmIn_userName
                        cmd.Parameters.Append prmIn_Id_num
                        cmd.Parameters.Append prmOut_rowCount
                        cmd.Parameters.Append prmOut_res
                        cmd.Execute
                    
                    DoCmd.RunSQL "EXEC upr_LegalSoftResIns '" & softName & "', '" & userName & "', '" & _
                                Trim(prmOut_res) & "'"
                        
                        cmd.Parameters.Delete ("userName")
                        cmd.Parameters.Delete ("id_num")
                        cmd.Parameters.Delete ("rowCount")
                        cmd.Parameters.Delete ("res")
                
                Next i
                

как видите сначала исполняю процедурку чтобы получить prmOut_rowCount, а потом цыкл для запуска другой с результатом первой...
но что-то криво мне выглядит процес постоянного делита и аппенда параметров (без етого ругается)...
как бы вы поступили в етой ситуации тоесть как все таки правильно :)
понимаю что мои познание не очень глубоки так что ногами не бить :)
...
...
Рейтинг: 0 / 0
Запуск ХП из ВБА (можно ли иначе?)
    #32889343
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторно что-то криво мне выглядит процес постоянного делита и аппенда параметров правильно мыслишь :)

Параметры нужно создать один раз, далее - менять только значения.
Не повредит cmd.Prepared=true



а вот так не надо:
Код: plaintext
1.
2.
DoCmd.RunSQL "EXEC upr_LegalSoftResIns '" & softName & "', '" & userName & "', '" & _
                                Trim(prmOut_res) & "'"

нужно создать ещё одну команду и делать execute от неё
...
Рейтинг: 0 / 0
Запуск ХП из ВБА (можно ли иначе?)
    #32889375
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то я не врубился :(

а где собственно у вас имена ХП?

Ну есть какое-то cmd - ну пусть он и будет, хорошо
Но вот вопрос второй
у вас там я цикл увидел, и в нем вы тот же cmd пытаетесь пользовать, т.е. параметры ему тада сюда делаете, но:

1. зачем вам это надо, нельзя было сразу из ХП рекордсет вернуть и не париться и цикл у же по нему делать

2. но и это только пол беды: зачем вы этой фигней на клиенте занимаетесь?
что нельзя было в ХП курсор устроить и в цикле вторую ХП вызывать?
...
Рейтинг: 0 / 0
Запуск ХП из ВБА (можно ли иначе?)
    #32889469
mastermind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Alexey Sh
на счет
авторDoCmd.RunSQL "EXEC upr_LegalSoftResIns '" & softName & "', '" & userName & "', '" & _
Trim(prmOut_res) & "'"


я знаю, просто еще не переделал, ...
если не трудно покажите как мне в етом примере присвоить значение, например для
Код: plaintext
1.
Set prmIn_userName = cmd.CreateParameter("userName", adVarChar, adParamInput,  50 , userName)
prmIn_userName = новое значение, или как ?
и как запустить процедуру с новими значениями?

2 paparome
одно имя в DoCmd.RunSQL а первое я не дописал сначала сорри
Код: plaintext
1.
2.
3.
Set cmd = New ADODB.Command
    cmd.ActiveConnection = cnn
    cmd.CommandText = "upr_UsrsIdsToTbl"
    cmd.CommandType = adCmdStoredProc

а про курсор вы правы но я еще знаю как ето дествует...
...
Рейтинг: 0 / 0
Запуск ХП из ВБА (можно ли иначе?)
    #32889526
mastermind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"не знаю" :)
...
Рейтинг: 0 / 0
Запуск ХП из ВБА (можно ли иначе?)
    #32889569
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
Set prmIn_userName = cmd.CreateParameter("userName", adVarChar, adParamInput,  50 , userName)


Изменить значение параметра:
Код: plaintext
prmIn_userName = userName
при создании параметра значения можно не задавать.

список параметров можо получить от сервера вызовом
Код: plaintext
cmd.Parameters.Refresh

cmd.parameters - коллекция, к параметрам можно обращаться по индексам или именам
...
Рейтинг: 0 / 0
Запуск ХП из ВБА (можно ли иначе?)
    #32889607
mastermind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пасиба за советы, буду пробовать:)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запуск ХП из ВБА (можно ли иначе?)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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