Краткие теоретические сведения. C++Builder поставляется в комплекте с двумя SQL-ядрами баз данных, одно из которых встроено в BDE для работы с Paradox и dBase

 

C++Builder поставляется в комплекте с двумя SQL-ядрами баз данных, одно из которых встроено в BDE для работы с Paradox и dBase, а другое встроено в InterBase [1].

Свойство SQL компонента TQuery имеет тип TString. При программном обращении к объекту TQuery сначала необходимо завершить текущий запрос и удалить все строки, содержащиеся в свойстве SQL:

Query1->Close();

Query1->SQL->Clear(0;

Далее следует добавить новые строки, которые нужно выполнить:

Query1->SQL->Add(“Select * from Customer”);

Query1->SQL->Add(“where ... =’1111’ “);

С помощью оператора Add в SQL-запрос можно включить от одной до Х строк, причем Х ограничен только объемом памяти компьютера. Чтобы среда C++Builder обработала оператор и вернула указатель, содержащий результат запроса, нужно выполнить следующую команду:

Query1 ->Open();

Команда Open применяется в том случае, если хотите прочитать информацию из таблицы. Если нет необходимости возвращать какие-либо данные, необходимо использовать оператор ExecSQL, а не Open. Одно из свойств SQL –это возможность считывать текстовые файлы, содержащие SQL –операторы, непосредственно с жесткого диска. Функция LoadFromFile позволяет с помощью одной команды загрузить весь текстовый файл в процессе выполнения программы.

C++Builder позволяет сформировать параметрический запрос. В параметрическом запросе подставляются переменные вместо отдельных слов в конструкции where или insert SQL-оператора.

Например, один из ранее рассмотренных запросов:

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

Для преобразования этого запроса в параметрический достаточно заменить правую часть конструкции like переменной, например, с именем NameStr:

Select * from Country where Name like : NameStr;

Существуют два способа присвоения значений параметрическим SQL –операторам. Первый способ состоит в применении свойства Params объекта TQuery. Второй способ заключается в использовании свойства DataSource. Основные свойства, используемые при решении этой задачи:

__property TParams *Params;

TParam *__fastcall ParamByName(const System::AnsiString Value);

void __fastcall Prepare(void);

Объекты TParam и TParams содержатся в файле DBTABLES.HPP. Для подстановки связанных переменных в параметрический запрос через свойство Params обычно необходимо выполнить следующие действия:

· Убедиться в том, что таблица закрыта;

· Подготовить объект Query, выполнив команду Prepare .

· Присвоить правильные значения свойству Params.

· Открыть запрос.

· Большинство SQL-серверов слабо поддерживает параметрические переменные, в этом случае используется функцая Format. Принцип действия VCL-функции Format во многом аналогичен принципу действия оператора sprintf. Эта функция позволяет выполнять подстановку переменных почти любого типа вместо определенных слов строки.