Читать реферат по информатике, вычислительной технике, телекоммуникациям: "Компоненты для работы с БД: TTable и TQuery" Страница 9

назад (Назад)скачать (Cкачать работу)

Функция "чтения" служит для ознакомления с работой. Разметка, таблицы и картинки документа могут отображаться неверно или не в полном объёме!

не константой потому, что параметру предшествует двоеточие ":NameStr". Это двоеточие сообщает Delphi о необходимости заменить переменную NameStr некоторой величиной, которая будет известна позже.

Нужно обратите внимание, что слово NameStr было выбрано абсолютно случайно. Использовать можно любое допустимое имя переменной, точно также, как выбирается идентификатор переменной в программе.

Есть два пути присвоить значение переменной в параметризованном запросе SQL. Один способ состоит в том, чтобы использовать свойство Params объекта TQuery. Второй - использовать свойство DataSource для получения информации из другого DataSet. Вот ключевые свойства для достижения этих целей:

property Params[Index: Word];

function ParamByName(const Value: string);

property DataSource;

Если подставлять значение параметра в параметризованный запрос через свойство Params, то обычно нужно сделать четыре шага:

    Закрыть TQuery

    Подготовить объект TQuery, вызвав метод PrepareПрисвоить необходимые значения свойству ParamsОткрыть TQuery

Второй шаг выполняется в том случае, если данный текст запроса выполняется впервые, в дальнейшем его можно опустить.

Вот фрагмент кода, показывающий как это может быть выполнено практически:

Query1.Close;

Query1.Prepare;

Query1.Params[0].AsString := ‘Argentina’;

Query1.Open;

Params - это индексированное свойство, которое имеет синтаксис как у свойства Fields для TDataSet. Например, можно получить доступ к первой переменной в SQL запросе, адресуя нулевой элемент в массиве Params:

Params[0].AsString := ‘”Argentina”’;

Если параметризованный SQL запрос выглядит так:

select * from Country where Name = :NameStr

то конечный результат (т.е. то, что выполнится на самом деле) - это следующее предложение SQL:

select * from Country where Name = “Argentina”Все, что произошло, это переменной :NameStr было присвоено значение "Аргентина" через свойство Params.

Если в запросе содержится более одного параметра, для того чтобы иметь доступ к ним нужно изменить индекс у свойства Params

Params[1].AsString :=‘SomeValue’;

либо используя доступ по имени параметра

ParamByName(‘NameStr’).AsString:=’”Argentina”’;Итак, параметризованные SQL запросы используют переменные, которые всегда начинаются с двоеточия, определяя места, куда будут переданы значения параметров.

Прежде, чем использовать переменную Params, сначала можно вызвать Prepare. Этот вызов заставляет Delphi разобрать ваш SQL запрос и подготовить свойство Params так, чтобы оно "было готово принять” соответствующее количество переменных. Можно присвоить значение переменной Params без предварительного вызова Prepare, но это будет работать несколько медленнее.

После того, как был вызыван метод Prepare, и после того, как были присвоены необходимые значения переменной Params, Нужно вызвать метод Open, чтобы закончить привязку переменных и получить желаемый DataSet. В нашем случае, DataSet должен включать записи где в поле “Name” стоит “Argentina”.

Open или ExecSQL?

После того, как составлен SQL запрос, есть два различных способа выполнить его. Если нужно получить курсор, то нужно вызывать Open. Если выражение SQL не подразумевает возвращение курсора, то нужно вызывать ExecSQL. Например, если происходит вставка, удаление или обновление данных (т.е. SQL запросы INSERT, DELETE, UPDATE), то нужно вызывать ExecSQL. Тоже самое можно сказать по-другому: Open вызывается при запросе типа SELECT, а ExecSQL - во всех остальных случаях.


Похожие работы

 
Тема: Компоненты для работы с БД: TTable и TQuery
Предмет/Тип: Информатика, ВТ, телекоммуникации (Реферат)
 
Тема: Разработка меню, технологической и нормативной документации для диетической столовой реабилитационного центра для диетической столовой реабилитационного центра для больных с сердечнососудистой патологией
Предмет/Тип: Другое (Курсовая работа (т))
 
Тема: Использование двухступенчатого обратного осмоса для получения воды для инъекций. Требования GMP к получению и хранению воды для инъекций
Предмет/Тип: Другое (Контрольная работа)
 
Тема: Жить нужно не для себя и не для других, а со всеми и для всех Федоров
Предмет/Тип: Русский язык культура речи (Сочинение)
 
Тема: Жить нужно не для себя и не для других, а со всеми и для всех По роману Толстого Война и мир
Предмет/Тип: Русский язык культура речи (Сочинение)

Интересная статья: Быстрое написание курсовой работы