Имея соединение с сервером БД можно производить работу с объектами и их данными. Для выполнения каких-либо действий пользователь, под которым производилось подключение, должен обладать соответствующими правами. Для работы с объектами БД и управления транзакциями к серверу в интерфейсе IDalConnection реализован ряд свойств и методов. Чтобы работать с базой данных с помощью SQL-запросов используется команда, которую описывает интерфейс IDalCommand. Для создания команды используется метод IDalConnection.CreateCommand. У команды в свойстве IDalCommand.SQL необходимо задать SQL-запрос, который будет выполняться. Выполнение запроса происходит при вызове метода IDalCommand.Execute, IDalCommand.ExecuteWithoutLast или IDalCommand.CreateCursor. В зависимости от того, какие действия выполняет SQL-запрос возможны следующие варианты:
SQL-запрос извлекает данные. Для работы с полученными данными используется курсор. Для выполнения команды и создания курсора используется метод IDalCommand.CreateCursor;
SQL-запрос изменяет данные. Метод IDalCommand.Execute или IDalCommand.ExecuteWithoutLast вернет количество записей, которые были изменены.
Var
//...
ORCLConnect: IDalConnection;
Command: IDalCommand;
Cursor: IDalCursor;
//...
Begin
//...
Command := ORCLConnect.CreateCommand;
//Извлечение данных
Command.SQL := "select * from Table1";
//Курсор для работы и полученными данными
Cursor := Command.CreateCursor;
While Not Cursor.Eof Do
//...
Cursor.Next;
End While;
Cursor.Close;
//Изменение данных
Command.SQL := "insert into Table1(Code) values('123')";
i := Command.Execute;
Command.Close;
Debug.WriteLine("Добавлено записей: " + i.ToString);
Для многократного использования команды с различными наборами значений реализована возможность указывать в SQL-запросе параметры. Параметры имеют следующий синтаксис: :<Наименование параметра>. Анализ SQL-запроса на наличие параметров производится при вызове метода IDalCommand.Parse. После анализа коллекция параметров будет доступна в свойстве IDalCommand.Params. В данной коллекции для каждого параметра можно указать значение, которое будет подставлено в SQL-запрос при выполнении команды.
Var
//...
ORCLConnect: IDalConnection;
Command: IDalCommand;
//...
Begin
//...
Command := ORCLConnect.CreateCommand;
//Изменение данных
Command.SQL := "insert into Table1(Code) values(:CodeValue)";
//Анализ SQL-запроса
Command.Parse;
//Указание значения найденного параметра
Command.Params.Item(0).Value := 124;
//Выполнение команды
i := Command.Execute;
Command.Close;
Debug.WriteLine("Добавлено записей: " + i.ToString);
В команде можно указать несколько наборов значений параметров. Количество наборов указывается в свойстве IDalCommand.MaxParamsRows.
Примечание. Перед указанием значения свойства IDalCommand.MaxParamsRows для каждого параметра должен быть указан тип данных.
Значения параметров также указываются в коллекции IDalCommand.Params. Для перехода к следующему набору параметров используется метод IDalCommand.NextParamsRow.
Var
//...
ORCLConnect: IDalConnection;
Command: IDalCommand;
//...
Begin
//...
Command := ORCLConnect.CreateCommand;
//Изменение данных
Command.SQL := "insert into Table1(Code) values(:ParamArray)";
//Анализ SQL-запроса
Command.Parse;
//Указание коллекции значений параметра
Param := Command.Params.Item(0);
Param.DataType := DbDataType.Integer;
Command.MaxParamsRows := 3;
//Первое значение
Param.Value := 125;
Command.NextParamsRow;
//Второе значение
Param.Value := 126;
Command.NextParamsRow;
//Третье значение
Param.Value := 127;
//Выполнение команды
i := Command.Execute;
Command.Close;
Debug.WriteLine("Добавлено записей: " + i.ToString);
См. также: