Поделиться через


Свойство 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