IDalCommandParam.Direction

Синтаксис

Direction: DalParamDirection;

Описание

Свойство Direction определяет предназначение параметра SQL-запроса.

Комментарии

По умолчанию свойству установлено значение DalParamDirection.Input.

Пример 1

Для выполнения примера предполагается наличие в репозитории базы данных с идентификатором "BD". На сервере, на который настроена данная база данных, имеется функция "Func_1", вычисляющая какое-либо значение.

Sub Main;

Var

MB: IMetabase;

DB: IDatabaseInstance;

Com: IDalCommand;

v: Variant;

Begin

MB := MetabaseClass.Active;

DB := MB.ItemById("BD").Open(Null) As IDatabaseInstance;

Com := DB.Connection.CreateCommand("");

Com.Type := DalCommandType.StoredProcedure;

Com.SQL := "Func_1";

Com.Params.Add("Param").Direction := DalParamDirection.ReturnValue;

Com.Execute;

v := Com.Params.Item(0).Value;

Com.Close;

End Sub Main;

После выполнения примера будет создана команда, выполняющая хранимые на сервере функции или процедуры. Для команды будет создан один параметр, в который возвращается результат выполнения функции. После выполнения команды в переменной "v" будет содержаться результат выполнения функции "Func_1".

Пример 2

Sub Main;

Var

Driv: IDalDriver;

Connect: IDalConnection;

Command: IDalCommand;

ConnectDesc: IDalConnectionDescriptor;

ConnectDescParams: IDalConnectionDescriptorParams;

Cur: IDalCursor;

f: IDalCursorField;

Begin

Driv := New DalOrcl8Driver.Create;

ConnectDesc := Driv.CreateDescriptor;

ConnectDescParams := ConnectDesc.Params;

ConnectDescParams.Find("User Name").Value := "TestUser";

ConnectDescParams.Find("Password").Value := "TestUser";

ConnectDescParams.Find("Host BSTR").Value := "Test";

ConnectDescParams.Find("Schema").Value := "TestShema";

Connect := ConnectDesc.CreateConnection;

Command := Connect.CreateCommand;

Command.SQL := "Begin" + #13 + #10 +

"OPEN :Cursor1 For Select * From Table_1;" + #13 + #10 +

"End;";

Command.Parse;

Command.Params.Item(0).Direction := DalParamDirection.RefCursor;

Command.Execute;

Cur := Command.Params.Item(0).Value As IDalCursor;

While Not Cur.Eof Do

For Each f In Cur.Fields Do

Debug.Write(f.Value + " ");

End For;

Debug.WriteLine("");

Cur.Next;

End While;

Cur.Close;

Command.Close;

Connect.Close;

End Sub Main;

После выполнения примера произойдет подключение к схеме «TestShema», расположенной на сервере «Test». Подключение осуществляется с использованием драйвера для работы с СУБД Oracle 9.x\10.x\11.x. В рамках схемы будет выполнена процедура, возвращающая курсор, содержащий все записи таблицы «Table_1». Курсор будет получен через первый параметр команды. Значения всех полей по всем записям будут выведены в консоль среды разработки.

См. также:

IDalCommandParam