Шаг 197 - Свойство Direction

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

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 14.04.2002