Чтение онлайн

ЖАНРЫ

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

while Query.Eof <> True do begin

 SqlCount := Query.Fields[0].AsInteger;

 Query.Next

end;

Подразумевается наличие компонентов TTable, TQuery, TStoredProc

Объявление

property RecordCount: Longint;

Описание

Времени исполнения и только для чтения. Свойство RecordCount определяет количество записей в наборе данных. Количество возвращаемых записей может зависеть от сервера и не зависит от границ задаваемого диапазона.

Как

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

Nomadic советует:

В процессе работы с БД иногда необходимо выполнить какие-то мелкие запросы. Держать для этого где-то временную 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:= '';

Поделиться с друзьями: