В начало

Параметрический запрос в ADO

 

            Есть база данных «Библиотека», в составе которой имеется таблица «Читатель», все это написано в СУБД «MS Access 2002». Необходимо средствами ADO выполнить организовать и выполнить параметрический запрос к таблице «Читатель».

Рис. 1. Таблица «Читатель» в СУБД «MS Access 2002»

Рис. 1. Таблица «Читатель» в СУБД «MS Access 2002»

 

            Запускаем IDE «Delphi 7», создаем новое приложение. На основную форму приложения перетаскиваем следующие компоненты:

– ADOConnection, ADOQuery (с закладки ADO);

– DataSource (с закладки Data Access);

– DbGrid (с закладки Data Controls);

– Edit, Button (с закладки Standart).

Рис. 2. Расположение компонентов на форме приложения

 

            Далее конфигурируем/связываем компоненты между собой.

            В компоненте «ADOConnection1» необходимо настроить свойства: ConnectionString и LoginPromt.

            В компоненте «ADOQuery1» нужно выставить параметры: Connection и SQL.

            В компоненте «DataSource1» надо установить параметру «DataSet» значение «ADOQuery1».

            Компоненту «DBGrid1» нужно установить параметру «DataSource» значение «DataSourse1».

            В компоненте «Edit1» необходимо очистить параметр «Text».

            А на кнопке «Button1» в событии «OnClick» написать код для выполнения параметрического запроса. В начале кода производим деактивацию компонента «ADOQuery1», затем размещаем в его свойстве «SQL» необходимый запрос, потом присваиваем параметру «Fam» значение из компонента «Edit1» и выполняем запрос, снова активируя компонент «ADOQuery1».

   ADOQuery1.Active:=False;

   ADOQuery1.SQL.Clear;

   ADOQuery1.SQL.Add('SELECT * ');

   ADOQuery1.SQL.Add('FROM Читатель');

   ADOQuery1.SQL.Add('WHERE Фамилия = :Fam');

   ADOQuery1.Parameters.ParamByName('Fam').Value:=Edit1.Text;

   ADOQuery1.Active:=True;

           

Таким образом, вводя  в поле «Edit1» фамилию и выполнив запрос, будет выведена на экран запись таблицы «Читатель».

Рис. 3. Результат параметрического запроса по фамилии

 

            В том случае если будет вылетать ошибка «Невозможно использовать…», то следует в инспекторе объектов у компонента «ADOConnection1» установить свойство «Connected = False» и ошибка пропадет.

Рис. 4. Ошибка одновременного доступа к базе