Данный код позволяет связаться с таблицей (PersMemL), содержащей количество ключей персональной записи и запись членства. Запрос возвращает имена персон, которые не имеют записей членства.
На практике этот способ оказывается очень эффективным, по крайней мере, с локальным SQL в таблицах Paradox.
David G. Wachtel
Назначение SQL-счетчика переменной
Delphi 1
query.Close;
query.SQL.Clear;
query.SQL.Add('select count(*) from table where field = :XXX');
Query.ParamByName('XXX').AsString := value;
query.Open;
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;