Описание
Задает или возвращает значение, указывающее, представляет ли
объект Parameter входной параметр, выходной параметр, и то, и другое, или
значение, возвращаемое из процедуры (только в рабочей области
ODBCDirect).
Значение
Задаваемое или возвращаемое значение имеет тип данных Long
и определяется одной из следующих констант:
dbParamInput (По умолчанию). Передача данных в процедуру. dbParamInputOutput Передача данных в процедуру и из процедуры. dbParamOutput Возвращение данных из процедуры, аналогично выходному параметру в инструкции SQL. dbParamReturnValue Возвращение данных из процедуры.
Замечания
Свойство 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