|
Использование языка SQL в DelphiПредставляю краткую справочную информацию по использованию языка SQL в среде программирования Delphi. Для использования в программе команд языка SQL необходимо поместить на форму объект TQuery. Назовем его MyQuery. А поместив на форму объекты TDBGrid и TDataSource и связав все три объекта между собой, получим возможность видеть в объекте TDBGrid результаты SQL запросов. Создание таблицы с помощью SQL запросаПеред выполнением запроса должны быть определены следующие переменные строкового типа:
with MyQuery do
Типы поля могут быть: int, float, char(10).
begin Active:=False; SQL.Clear; SQL.Add('CREATE TABLE "'+tbl+'"'); SQL.Add('('+fld1+' '+tp1+', '+'fld2'+' '+tp2+')'); ExecSQL; end; Добавление записи в таблицуДобавление записи в таблицу посредством SQL запроса выполняется следующим способом:
with MyQuery do
Здесь val1, val2 - добавляемое значение целого или вещественного типа;begin Active:=False; SQL.Clear; SQL.Add('INSERT INTO "'+Tbl+'"'); SQL.Add('VALUES ('+val1+', '+val2+', "'+val3+'")'); ExecSQL; end; val3 - добавляемое значение строкового типа. Последовательность расположения добавляемых значений в тексте запроса важна и должна соответствовать порядку следования полей таблицы. SQL запрос на выборкуДля выполнения простого SQL запроса на выборку всех записей из указанной таблицы достаточно следующего кода:
with MyQuery do
переменная tbl содержит название таблицы, а лучше - полный путь к таблице, например: 'c:\programs\delphi\sql\first.dbf'.begin Active:=False; SQL.Clear; SQL.Add('SELECT *'); SQL.Add('FROM "'+Tbl+'"'); Active:=True; end; Свойство MyQuery.RecordCount содержит число записей, выбранных из таблицы SQL запросом. Запрос SQL на выборку с условиемПеременная fld содержит название поля таблицы, а переменная val - значение этого поля. Результатом выполнения нижеследующего запроса являются все записи таблицы со значением val в поле fld.
with MyQuery do
begin Active:=False; SQL.Clear; SQL.Add('SELECT *'); SQL.Add('FROM "'+Tbl+'"'); SQL.Add('WHERE '+Fld+' = "'+Val+'"'); Active:=True; end; А если воспользоваться приведенным ниже кодом, то в результате получим все строки таблицы, содержимое поля fld которых содержит значение val. SQL.Add('WHERE '+Fld+' LIKE "%'+Val+'%"');
Запрос SQL для нахождения максимума или минимумаПрограммный код запроса:
with MyQuery do
begin Active:=False; SQL.Clear; SQL.Add('SELECT Max('+Fld+') as M'); SQL.Add('FROM "'+Tbl+'"'); Active:=True; end; Используя команду MyQuery.FieldByName('M').asInteger; можно получить значение максимума целого типа. Для нахождения минимума необходимо в запросе воспользоваться строкой SQL.Add('SELECT Min('+Fld+') as M'); Запрос SQL для удаления записей из таблицыДля удаления записей из таблицы tbl значения поля fld которых равны val используется следующий код:
with MyQuery do
begin Active:=False; SQL.Clear; SQL.Add('DELETE'); SQL.Add('FROM "'+Tbl+'"'); SQL.Add('WHERE '+Fld+' = "'+Val+'"'); ExecSQL; end; Запрос SQL для изменения записей в таблицеПринцип работы запроса аналогичен запросу на удаление, необходимо лишь указать updFld - обновляемое поле и updVal - новое значение для этого поля. Пример запроса:
with MyQuery do
begin Active:=False; SQL.Clear; SQL.Add('UPDATE "'+Tbl+'"'); SQL.Add('SET '+UpdFld+' = "'+UpdVal+'"'); SQL.Add('WHERE '+Fld+' = "'+Val+'"'); ExecSQL; end; Удачной работы! |
Рекламный блок
|
|
Хостинг http://www.tamb.ru
|