Описание
Задает или возвращает значение, указывающее, представляет ли объект Parameter входной параметр, выходной параметр, и то, и другое, или значение, возвращаемое из процедуры (только в рабочей области ODBCDirect).
Значение
Задаваемое или возвращаемое значение имеет тип данных Long и определяется одной из следующих констант:
Замечания
Свойство Direction позволяет определить, является ли параметр входным параметром, выходным параметром, и тем, и другим, или представляет значение, возвращаемое из процедуры. Некоторые драйверы ODBC не обеспечивают передачу сведений о типе параметров в инструкцию SELECT или при вызове процедуры. В этих случаях необходимо указывать тип параметра до выполнения запроса.
Например, следующая процедура возвращает значение из сохраненной процедуры с именем "get_employees":
{? = call get_employees}
При данном вызове образуется один параметр — возвращаемое значение. Тип этого параметра должен быть задан с помощью константы dbParamOutput или dbParamReturnValue до выполнения объекта QueryDef.
Для всех параметров, за исключением параметра с типом dbParamInput, тип параметра должен быть определен до доступа к значению или задания его свойства, а также до выполнения объекта QueryDef.
Для возвращаемых значений необходимо задавать тип dbParamReturnValue, а в случаях, когда этот тип не поддерживается, можно использовать константу dbParamOutput.
Драйвер Microsoft SQL Server 6.0 автоматически задает значение свойства 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
' Создает рабочую область ODBC и открывает подключение
' к базе данных Microsoft SQL Server.
Set wrkMain = CreateWorkspace("ODBCWorkspace", "admin", "", dbUseODBC)
Set conMain = wrkMain.OpenConnection("Publishers", dbDriverNoPrompt, False, "ODBC;DATABASE=pubs;UID=sa;PWD=;DSN=Publishers")
' Задает строку SQL, вызывающую сохраненную
' процедуру getempsperjob.
strSQL = "{ call getempsperjob (?, ?) }"
Set qdfTemp = conMain.CreateQueryDef("", strSQL)
With qdfTemp
' Указывает, что два параметра запроса передают
' данные в сохраненную процедуру.
.Parameters(0).Direction = dbParamInput
.Parameters(1).Direction = dbParamInput
' Присваивает параметрам начальные значения.
.Parameters(0) = "0877"
.Parameters(1) = 0
Set rstTemp = .OpenRecordset()
With rstTemp
' Цикл по всем допустимым значениям второго параметра.
' Для каждого значения набор записей отбирается
' заново, а затем печатается.
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