Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Выходной параметр ХП / 25 сообщений из 25, страница 1 из 1
08.10.2003, 16:52:43
    #32287963
ustasw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
Помоготе пожалуйста.
Не получается получить выходной параметр из храранимой процедуры. Если оставить только входные параметры то процедура работает, а как присвоить акцесовской переменной значение выходного параметра процедуры не пойму.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    
Dim nomer As String
Dim qry As QueryDef
Dim PN_U As Integer

nomer='ff'

Set qry = CurrentDb.CreateQueryDef( "")
    qry.Connect = " ODBC;DSN=SRV;DATABASE=db1;LANGUAGE=English;Address=srvdb, 1433 ;AnsiNPW=No "
    qry.ReturnsRecords = False
    qry.SQL = " {call Pr1 ('" & nomer & "', @PO_U= " & PN_U & "  OUTPUT)}"


такой вариант на работает
...
Рейтинг: 0 / 0
08.10.2003, 17:04:53
    #32287989
ustasw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
Возможно ли вообще получить из хранимой процедуры значение ее выходного параметра?
...
Рейтинг: 0 / 0
08.10.2003, 18:07:14
    #32288098
PA
PA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
Используй ADO или ODBCDirect...
...
Рейтинг: 0 / 0
08.10.2003, 19:34:08
    #32288176
ustasw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
2 PA
Пожет примерчик какой-нибудь приведете
...
Рейтинг: 0 / 0
08.10.2003, 20:45:49
    #32288215
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
вот примерчик
только он для ADP
тебе придется строку подключения сделать

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Dim cmd As New ADODB.Command
cmd.ActiveConnection = CurrentProject.Connection
cmd.CommandText =  "sp_daystatus" 
cmd.CommandType = adCmdStoredProc
cmd.Parameters.Append cmd.CreateParameter( "@data" , adInteger, adParamInputOutput)
cmd.Parameters( 0 ) = datasql  'это входное значение'
cmd.Execute
dataintable = cmd.Parameters( 0 )  'это выходное значение'
Set cmd = Nothing
...
Рейтинг: 0 / 0
08.10.2003, 21:14:56
    #32288219
ustasw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
2 АлексейК
Да, классная вещь ADO. Спасибо, буду разбираться с ADO.
У меня правда проект на Access97, там вроде как ADO не поддерживается и надо устанавливать ссылку на библиотеку ADO (я еще не пробовал).
...
Рейтинг: 0 / 0
09.10.2003, 09:37:45
    #32288391
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
    Dim ws As Workspace
    Dim cn As Connection
    Dim strSQL As String
    Dim qd As QueryDef
    
    Set ws = CreateWorkspace( "ODBCWorkspace" ,  "admin" ,  "", dbUseODBC)
    Set cn = ws.OpenConnection(" Store ", dbDriverNoPrompt, False, _
    " ODBC;DSN=Store;DATABASE=Store;Network=DBMSSOCN;Trusted_Connection=Yes ")
    
    strSQL = " {call dbo.sp_Test (?,?)} "

    Set qd = cn.CreateQueryDef("  ", strSQL)

    qd.Parameters(0 ).Direction = dbParamInput
    qd.Parameters( 1 ).Direction = dbParamOutput
    qd.Parameters( 0 ) = " 1 "

    qd.Execute
    
    MsgBox qd.Parameters( 1 )
    
    cn.Close
    ws.Close
...
Рейтинг: 0 / 0
09.10.2003, 11:48:07
    #32288605
ustasw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
Так и писать dbo.sp_Test (?,?) с ворпосами?

Код: plaintext
strSQL =  "{call dbo.sp_Test (?,?)}"  ?
...
Рейтинг: 0 / 0
09.10.2003, 13:26:02
    #32288789
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
"?" - это параметр процедуры dbo.sp_Test. Сколько параметров в твоей конкретной процедуре, столько "?" и ставь.
...
Рейтинг: 0 / 0
09.10.2003, 13:35:03
    #32288809
ustasw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
Понятно конечно, что параметр, просто синтаксис какой то странный
...
Рейтинг: 0 / 0
09.10.2003, 13:36:40
    #32288812
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
т.е. в твоем конкретном случае
Код: plaintext
1.
2.
3.
strSQL =  "{call Pr1 (?,?)}" 
qd.Parameters( 0 ).Direction = dbParamInput
qd.Parameters( 0 ) = nomer
qd.Parameters( 1 ).Direction = dbParamOutput

если конечно я правильно понял замысел - у процедуры Pr1 2 параметра, первый входной, второй выходной.
...
Рейтинг: 0 / 0
09.10.2003, 13:39:12
    #32288816
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
просто синтаксис какой то странный
ну так этож DAO, в ADO поэлегантней. Сам решай что использовать.
...
Рейтинг: 0 / 0
09.10.2003, 15:37:30
    #32289055
ustasw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
2 Pavel
Да ты все правильно понял, спасибо.
Пока правда ODBC -ошибка вызова выдает, но буду искать где ошибка.
...
Рейтинг: 0 / 0
09.10.2003, 18:11:41
    #32289275
ustasw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
Код: 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.
    Dim ws As Workspace
    Dim cn As Connection
    'Dim strSQL As String
    Dim qd As QueryDef
    
    Set ws = CreateWorkspace( "ODBCWorkspace" ,  "admin" ,  "", dbUseODBC)
    Set cn = ws.OpenConnection(" Store ", dbDriverNoPrompt, False, _
    " ODBC;DSN=SRV;DATABASE=db;LANGUAGE=English;Address=dbsrv, 1433 ;AnsiNPW=No ")
    
    strSQL = " {call dbo.fff (?,?,?,?)} "
    
    Set qd = cn.CreateQueryDef("  ")    
    qd.SQL = strSQL
    qd.Parameters(0 ).Direction = dbParamInput
    qd.Parameters( 1 ).Direction = dbParamInput
    qd.Parameters( 2 ).Direction = dbParamInput
    qd.Parameters( 3 ).Direction = dbParamInput    
    qd.Parameters( 0 ) = "a "
    qd.Parameters(1 ) =  2 
    qd.Parameters( 2 ) = "b"
    qd.Parameters( 3 ) =  4 
    qd.Execute   
   
    cn.Close
    ws.Close


Получаю - ODBC -ошибка вызова
Может подскажите где ошибка?
...
Рейтинг: 0 / 0
10.10.2003, 06:42:39
    #32289482
Pavel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
Для начала раскомментируй 'Dim strSQL As String. Но это не причина.
Скорее всего дело в строке подключения.
1. Замени имя коннекта на совпадающее с DSN, т.е. вместо "Store" поставь "SRV".
2.Сообщи тип аунтификации - SQL или смешанная.
3. При создании/редактировании DSN проходит тестовое соединение?
...
Рейтинг: 0 / 0
10.10.2003, 10:32:33
    #32289623
ustasw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
2 Pavel
Код: 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.
    Dim ws As Workspace
    Dim cn As Connection
    Dim strSQL As String
    Dim qd As QueryDef
    
    Set ws = CreateWorkspace( "ODBCWorkspace" ,  "admin" ,  "", dbUseODBC)
    Set cn = ws.OpenConnection(" SRV ", dbDriverNoPrompt, False, _
    " ODBC;DSN=SRV;DATABASE=db;LANGUAGE=English;Address=dbsrv, 1433 ;AnsiNPW=No ")
    
    strSQL = " {call dbo.fff (?,?,?,?)} "
    
    Set qd = cn.CreateQueryDef("  ")    
    qd.SQL = strSQL
    qd.Parameters(0 ).Direction = dbParamInput
    qd.Parameters( 1 ).Direction = dbParamInput
    qd.Parameters( 2 ).Direction = dbParamInput
    qd.Parameters( 3 ).Direction = dbParamInput    
    qd.Parameters( 0 ) = "a "
    qd.Parameters(1 ) =  2 
    qd.Parameters( 2 ) = "b"
    qd.Parameters( 3 ) =  4 
    qd.Execute   
   
    cn.Close
    ws.Close
 


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

1. Замени имя коннекта на совпадающее с DSN, т.е. вместо "Store" поставь "SRV".
-заменил
2.Сообщи тип аунтификации - SQL или смешанная.
- тип аунтификации SQL
3. При создании/редактировании DSN проходит тестовое соединение?
-смотрел в Profile, соединения нет
...
Рейтинг: 0 / 0
08.09.2004, 15:47:40
    #32685632
Rodion Doroshkevich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
А как от StoredProcedure получить массив записей, например рекордсет?
...
Рейтинг: 0 / 0
08.09.2004, 15:53:58
    #32685659
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
авторА как от StoredProcedure получить массив записей, например рекордсет?

обязательно в выходной параметр ?
...
Рейтинг: 0 / 0
08.09.2004, 15:59:51
    #32685673
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
Rodion DoroshkevichА как от StoredProcedure получить массив записей, например рекордсет?
mdp/adp ?
...
Рейтинг: 0 / 0
08.09.2004, 16:01:18
    #32685680
Rodion Doroshkevich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
Shuhard Rodion DoroshkevichА как от StoredProcedure получить массив записей, например рекордсет?
mdp/adp ?
Работаю в MDE, а в какой рекордсет? DAO или DAO все равно.
...
Рейтинг: 0 / 0
08.09.2004, 16:05:07
    #32685693
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
DAO или DAO все равно.
воистину все равно
...
Рейтинг: 0 / 0
08.09.2004, 16:10:51
    #32685716
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
прямой запрос к серверу через ODBC - "exec SP Par1,Par2,Par3"
на запросе открываешь RecordSet
если надо параметры менять - через DAO.QueryDef
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Dim MyZap As DAO.QueryDef
Dim MyDb As DAO.Database
Dim RstSp as DAO.Recordset
Set MyDb = CurrentDb
On Error Resume Next
MyDb.QueryDefs.Delete "ZMyZap"
Set MyZap = MyDb.CreateQueryDef("ZMyZap")
MyZap.Connect = "ODBC;DSN=rumba;DATABASE=tel;Trusted_Connection=Yes"
MyZap.SQL = "exec SP Par1,Par2,Par3"
Set RstSp = MyZap.OpenRecordset
...
Рейтинг: 0 / 0
08.09.2004, 16:12:55
    #32685728
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
2 Shuhard

тока вроде автор хочет рекордсет получить в выходной параметр согласно теме топика ?
...
Рейтинг: 0 / 0
08.09.2004, 16:13:02
    #32685730
Rodion Doroshkevich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
Rodion Doroshkevich
Работаю в MDE, а в какой рекордсет? DAO или DAO все равно.
Сорри MDB, и DAO и ADO, конечно!
...
Рейтинг: 0 / 0
08.09.2004, 16:15:49
    #32685743
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выходной параметр ХП
АлексейК2 Shuhard

тока вроде автор хочет рекордсет получить в выходной параметр согласно теме топика ?
я думаю,что автор ЭТОГО не хочет,а использует чужой топик в корыстных целях
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Выходной параметр ХП / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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