Справочное руководство по Delphi

Свойство SQL


  • Свойство SQL - вероятно, самая важная часть TQuery. Доступ к этому свойству происходит либо через Инспектор Объектов во время конструирования проекта (design time), или программно во время выполнения программы (run time).
  • Интересней, конечно, получить доступ к свойству SQL во время выполнения, чтобы динамически изменять запрос. Например, если требуется выполнить три SQL запроса, то не надо размещать три компонента TQuery на форме. Вместо этого можно разместить один и просто изменять свойство SQL три раза. Наиболее эффективный, простой и мощный способ - сделать это через параметризованные запросы, которые будут объяснены в следующей части. Однако, сначала исследуем основные особенности свойства SQL, а потом рассмотрим более сложные темы, типа запросов с параметрами.

    Свойство SQL имеет тип TStrings, который означает что это ряд строк, сохраняемых в списке. Список действует также, как и массив, но, фактически, это специальный класс с собственными уникальными возможностями. В следующих нескольких абзацах будут рассмотрены наиболее часто используемые свойства.

    При программном использовании TQuery, рекомендуется сначала закрыть текущий запрос и очистить список строк в свойстве SQL:

    Query1.Close;

    Query1.SQL.Clear;

    Обратите внимание, что всегда можно “безопасно” вызвать Close. Даже в том случае, если запрос уже закрыт, исключительная ситуация генерироваться не будет.

    Следующий шаг - добавление новых строк в запрос:

    Query1.SQL.Add(‘Select * from Country’);

    Query1.SQL.Add(‘where Name = ’’Argentina’’’);

    Метод Add используется для добавления одной или нескольких строк к запросу SQL. Общий объем ограничен только количеством памяти на вашей машине.

    Чтобы Delphi отработал запрос и возвратил курсор, содержащий результат в виде таблицы, можно вызвать метод:

    Query1.Open;



    Демонстрационная программа THREESQL показывает этот процесс (см Рис.1)

    Рис.1:

    Программа THREESQL показывает, как сделать несколько запросов с помощью единственного объекта TQuery.

    Программа THREESQL использует особенность локального SQL, который позволяет использовать шаблоны поиска без учета регистра (case insensitive). Например, следующий SQL запрос:


    Select * form Country where Name like ’C%’

    возвращает DataSet, содержащий все записи, где поле Name начинается с буквы ‘C’. Следующий запрос позволит увидеть все страны, в названии которых встречается буква ‘C’:

    Select * from Country where Name like ‘%C%’;

    Вот запрос, которое находит все страны, название которых заканчивается на ‘ia’:

    Select * from Country where Name like ‘%ia’;

    Одна из полезных особенностей свойства SQL - это способность читать файлы, содержащие текст запроса непосредственно с диска. Эта особенность показана в программе THREESQL.

    Вот как это работает. В директории с примерами к данному уроку есть файл с расширением SQL. Он содержат текст SQL запроса. Программа THREESQL имеет кнопку с названием Load, которая позволяет Вам выбрать один из этих файлов и выполнять SQL запрос, сохраненный в этом файле.

    Кнопка Load имеет следующий метод для события OnClick:

    procedure TForm1.LoadClick(Sender: TObject);

    begin

    if OpenDialog1.Execute then

    with Query1 do begin

    Close;

    SQL.LoadFromFile(OpenDialog1.FileName);

    Open;

    end;

    end;

    Метод LoadClick сначала загружает компоненту OpenDialog и позволяет пользователю выбрать файл с расширением SQL. Если файл выбран, текущий запрос закрывается, выбраный файл загружается с диска в св-во SQL, запрос выполняется и результат показывается пользователю.


    Содержание раздела