Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запуск ХП из ВБА (можно ли иначе?) / 7 сообщений из 7, страница 1 из 1
28.01.2005, 13:56:00
    #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
28.01.2005, 14:16:24
    #32889343
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск ХП из ВБА (можно ли иначе?)
авторно что-то криво мне выглядит процес постоянного делита и аппенда параметров правильно мыслишь :)

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



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

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

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

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

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

2. но и это только пол беды: зачем вы этой фигней на клиенте занимаетесь?
что нельзя было в ХП курсор устроить и в цикле вторую ХП вызывать?
...
Рейтинг: 0 / 0
28.01.2005, 14:51:03
    #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
28.01.2005, 15:05:33
    #32889526
mastermind
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск ХП из ВБА (можно ли иначе?)
"не знаю" :)
...
Рейтинг: 0 / 0
28.01.2005, 15:15:37
    #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
28.01.2005, 15:24:45
    #32889607
mastermind
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск ХП из ВБА (можно ли иначе?)
пасиба за советы, буду пробовать:)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запуск ХП из ВБА (можно ли иначе?) / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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