Приветствую Вас Гость | RSS

Меню сайта

Реклама

Категории раздела
ADO [17]
ASCII и CSV [12]
Access [20]
Alias [24]
BDE [37]
BLOB поля [19]
Clipper [2]
DB2 [2]
DBASE и DBF [26]
Fox Pro [1]
Interbase [21]
MSSQL [0]
ODBC [10]
Oracle [0]
Paradox [0]
SQL [29]
Sybase [1]
База данных [0]
Закладки [2]
Записи [0]
Индексы [10]
Компоненты и Базы данных [0]
Модуль данных [3]
Отчеты [2]
Ошибки БД [17]
Поиск [16]
Поля [0]
Сортировка и Фильтр [6]
Таблицы [0]

Наш опрос
Оцените мой сайт
Всего ответов: 30

Статистика

Онлайн всего: 5
Гостей: 5
Пользователей: 0

Форма входа

Главная » Статьи » Базы данных » SQL

Как удобнее работать с динамически формируемыми запросами

В процессе работы с БД иногда необходимо выполнить какие-то мелкие запросы. Держать для этого где-то временную Query меня лично ломает, посему ловите творение (под Delphi) - модуль для создания временных TQuery и работы с ними.

примеры использования:


var
S: string;
...

S := FastLookUp(format('select A.F1 from A,B where A.F4=B.F4 and
B.F9=%d', [1]));

with GiveMeResultSet('select*from A where F1="777"') do
try
....
finally
Free; {не забудьте!}
end;
.....

if not ExecuteSQL('delete from A') then
ShowMessage('Something Wrong');
.....

Сам модуль идёт ниже


{
Temporary Queries Creatin' and handlin'

(c) 1997-98 by Volok Alexander (D1/D2)

creation date: 30.10.1997
last update : 17.06.1998
}

unit TmpQuery;

interface

uses
DBTables;

const
InternalDBname = 'MAIN';
{Изменять по вкусу - TDataBase.DataBaseName}

type
TSQLScript =
{$IFDEF WIN32}string{$ELSE}PChar{$ENDIF};

{Создаст куери с текстом запроса, но не откроет его}
function CreateTempQuery(SQLscript: TSQLscript): TQuery;

{Создаст куери и откроет запрос - не забудьте прибить}
function GiveMeResultSET(SQLscript: TSQLscript): TQuery;

{Проверит непустоту выборки, заданной ...}
function CheckExistence(SQLscript: TSQLscript): boolean;

{Вытащит аж одно значение(лукап) из выборки, заданной ...}
function FastLookUP(SQLscript: TSQLscript): string;

{Выполнит запрос и сообщит результат}
function ExecuteSQL(SQLscript: TSQLscript): boolean;

implementation

uses
Forms;

function CreateTempQuery(SQLscript: TSQLscript): TQuery;
begin
Result := TQuery.Create(Application);
with Result do
begin
DatabaseName := InternalDBname;
{$IFDEF WIN32}
SQL.Text := SQLscript;
{$ELSE}
SQL.SetText(SQLscript);
{$ENDIF}
end;
end;

function ExecuteSQL(SQLscript: TSQLscript): boolean;
begin
with CreateTempQuery(SQLscript) do
begin
try
ExecSQL;
Result := True;
except
Result := False;
end;
Free;
end;
end;

function CheckExistence(SQLscript: TSQLscript): boolean;
begin
with GiveMeResultSET(SQLscript) do
begin
Result := not EOF;
Free;
end;
end;

function GiveMeResultSET(SQLscript: TSQLscript): TQuery;
begin
Result := CreateTempQuery(SQLscript);
with Result do
try
Open;
except
Free;
Result := nil;
end;
end;

function FastLookUP(SQLscript: TSQLscript): string;
begin
with GiveMeResultSET(SQLscript) do
begin
try
Result := Fields[0].AsString;
except
Result := '';
end;
Free;
end;
end;

end.
Категория: SQL | Добавил: Skinner (29.07.2008)
Просмотров: 410 | Рейтинг: 0.0/0
  Delphi Lab   Главная   Регистрация   Вход  
Интересная Цитата

Поиск

Магазин


Copyright MyCorp © 2025 Хостинг от uCoz