Свойство Parameter.Direction (DAO)
Область применения: Access 2013, Office 2013
Синтаксис
expression . Направление
Выражение Переменная, представляющая объект Parameter .
Замечания
Параметр или возвращаемое значение — это значение Long, которое можно задать для одной из констант ParameterDirectionEnum .
Используйте свойство Direction , чтобы определить, является ли параметр входным, выходным параметром или возвращаемым значением процедуры. Некоторые драйверы ODBC не предоставляют сведения о направлении параметров в инструкцию SELECT или вызов процедуры. В таких случаях перед выполнением запроса необходимо задать направление.
Например, следующая процедура возвращает значение из хранимой процедуры с именем "get_employees":
{? = call get_employees}
Этот вызов создает один параметр — возвращаемое значение. Перед выполнением queryDef необходимо задать направление для этого параметра dbParamOutput или dbParamReturnValue.
Необходимо задать все направления параметров, кроме dbParamInput , перед доступом или заданием значений параметров и перед выполнением QueryDef.
Для возвращаемых значений следует использовать dbParamReturnValue , но в тех случаях, когда этот параметр не поддерживается драйвером или сервером, можно использовать dbParamOutput .
Драйвер Microsoft SQL Server автоматически задает свойство Direction для всех параметров процедуры. Не все драйверы ODBC могут определить направление параметра запроса. В таких случаях перед выполнением запроса необходимо задать направление.
Пример
В этом примере свойство Direction используется для настройки параметров запроса к источнику данных ODBC.
Sub DirectionX()
Dim wrkMain As Workspace
Dim conMain As Connection
Dim qdfTemp As QueryDef
Dim rstTemp As Recordset
Dim strSQL As String
Dim intLoop As Integer
' Create ODBC workspace and open a connection to a
' Microsoft SQL Server database.
Set wrkMain = CreateWorkspace("ODBCWorkspace", _
"admin", "", dbUseODBC)
' Note: The DSN referenced below must be configured to
' use Microsoft Windows NT Authentication Mode to
' authorize user access to the Microsoft SQL Server.
Set conMain = wrkMain.OpenConnection("Publishers", _
dbDriverNoPrompt, False, _
"ODBC;DATABASE=pubs;DSN=Publishers")
' Set SQL string to call the stored procedure
' getempsperjob.
strSQL = "{ call getempsperjob (?, ?) }"
Set qdfTemp = conMain.CreateQueryDef("", strSQL)
With qdfTemp
' Indicate that the two query parameters will only
' pass information to the stored procedure.
.Parameters(0).Direction = dbParamInput
.Parameters(1).Direction = dbParamInput
' Assign initial parameter values.
.Parameters(0) = "0877"
.Parameters(1) = 0
Set rstTemp = .OpenRecordset()
With rstTemp
' Loop through all valid values for the second
' parameter. For each value, requery the recordset
' to obtain the correct results and then print out
' the contents of the recordset.
For intLoop = 1 To 14
qdfTemp.Parameters(1) = intLoop
.Requery
Debug.Print "Publisher = " & _
qdfTemp.Parameters(0) & _
", job = " & intLoop
Do While Not .EOF
Debug.Print , .Fields(0), .Fields(1)
.MoveNext
Loop
Next intLoop
.Close
End With
End With
conMain.Close
wrkMain.Close
End Sub