Описание
Задает или возвращает значение, указывающее, представляет ли объект 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