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

на главную - закладки

Жанры

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

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

Шрифт:

RAW_PARTITIONS, RDB$DB_KEY, READ, REAL, RECORD_VERSION, REFERENCES, RESERV, RESERVING, RETAIN, RETURNING_VALUES, RETURNS, REVOKE, RIGHT, ROLLBACK

SECOND, SEGMENT, SELECT, SET, SHARED, SHADOW, SCHEMA, SINGULAR, SIZE, SMALLINT, SNAPSHOT, SOME, SORT, SQLCODE, STABILITY, STARTING, STARTS, STATISTICS, SUB_TYPE, SUBSTRING, SUM, SUSPEND

TABLE, THEN, TIME, TIMESTAMP, TIMEZONE_HOUR, TIMEZONE_MINUTE, TO, TRAILING, TRANSACTION, TRIGGER, TRIM

UNCOMMITTED, UNION, UNIQUE, UPDATE, UPPER, USER

VALUE, VALUES, VARCHAR, VARIABLE, VARYING, VIEW

WAIT, WHEN, WHERE, WHILE, WITH, WORK, WRITE

YEAR

Операторы:

||, –, *, /, <>, <, >, ,(запятая), =, <=, >=, ~=, !=, ^=, (, )
 

Сиротские Master-записи

Как

с помощью SQL найти записи таблицы, которых нет в другой таблице?

Вот пример: 

with PeopleHiddenForm.PersonQuery.SQL do begin

 Add('Select P.Last, P.First, P.Middle, P."Suffix", P.KeyNo, COUNT(PersMemL.PersonKeyNo)');

 Add('From Person P Left Outer Join ');

 Add(' PersMemL PersMemL');

 Add('On ((P.KeyNo = PersMemL.PersonKeyNo))');

 Add('Group By P.Last, P.First, P.Middle, P.Suffix, P.KeyNo');

 Add('Having ((Count(PersmemL.PersonKeyNo) = 0))');

Данный код позволяет связаться с таблицей (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;

implementation

Поделиться:
Популярные книги

Блуждающие огни 4

Панченко Андрей Алексеевич
4. Блуждающие огни
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Блуждающие огни 4

Я сделаю это сама

Кальк Салма
1. Магический XVIII век
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Я сделаю это сама

Флеш Рояль

Тоцка Тала
Детективы:
триллеры
7.11
рейтинг книги
Флеш Рояль

Боярышня Дуняша

Меллер Юлия Викторовна
1. Боярышня
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Боярышня Дуняша

Газлайтер. Том 8

Володин Григорий
8. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 8

Леди для короля. Оборотная сторона короны

Воронцова Александра
3. Королевская охота
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Леди для короля. Оборотная сторона короны

На границе империй. Том 10. Часть 1

INDIGO
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 1

Черный Маг Императора 5

Герда Александр
5. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 5

Невест так много. Дилогия

Завойчинская Милена
Невест так много
Любовные романы:
любовно-фантастические романы
7.62
рейтинг книги
Невест так много. Дилогия

Идеальный мир для Социопата 3

Сапфир Олег
3. Социопат
Фантастика:
боевая фантастика
6.17
рейтинг книги
Идеальный мир для Социопата 3

Повелитель механического легиона. Том VIII

Лисицин Евгений
8. Повелитель механического легиона
Фантастика:
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
Повелитель механического легиона. Том VIII

Наследник павшего дома. Том I

Вайс Александр
1. Расколотый мир
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник павшего дома. Том I

Крещение огнем

Сапковский Анджей
5. Ведьмак
Фантастика:
фэнтези
9.40
рейтинг книги
Крещение огнем

Камень Книга двенадцатая

Минин Станислав
12. Камень
Фантастика:
боевая фантастика
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Камень Книга двенадцатая