Избор на информация от базата данни

Повечето системи за управление на бази данни позволяват да се направи подбор на необходимата информация от извършване на запитвания. Един потребител в съответствие с определени правила формулира искането, като посочва как се прилагат критериите трябва да отговарят на интересите на своята информация, а системата показва записите, които отговарят на заявката.

За извадка от записите в базата данни, които отговарят на определени критерии, това е компонент на заявките (фиг. 17.17).

Фиг. 17.17. Икона за заявки компонент

Запитване компонент е подобен компонент на маса, но, за разлика от последните, не е цялата база данни (всички записи), но само част от него - на записите, които отговарят на критериите за заявката.

Таблица. 17.18 изброява някои от свойствата на компонента на запитването.

Таблица 17.18. Запитване съставни имоти

За време на разработването на програмата, за да попитам каква информация ще се извличат от базата данни в резултат на запитването, SQL собственост трябва да съдържат представени на езика на заявката SQL за извличане на данни.

В общи линии, искане за извличане на данни от таблицата е, както следва:

FieldList изберете от масата, където (Критерий) РЕД ОТ FieldList

  • Изберете - записи за подбор на екип от маса и покажете съдържанието на полетата, чиито имена фигурират в списъка;
  • ОТ - параметър на команда, която определя името на таблицата, от която искате да направите избор;
  • КЪДЕ - параметър, който определя критериите за подбор. В най-простия случай, критерият - инструкция за проверка съдържанието на полето;
  • ORDER BY - параметър, който определя състоянието, при което са подредени записи, които отговарят на критериите за заявката.

SELECT Fam, име от ": училище: school.db" КЪДЕ

(Клас = "10а") ORDER BY Име, Fam

Той предвижда образец на база данни "училище" (от School.db таблицата) записи, където в класа е текст 10а т. Ф. Генерира азбучен списък студенти 10а клас.

Друг пример. разследване

SELECT Fam, име от ": училище: school.db" КЪДЕ

(Fam> "К") и (Fam <'Л') ORDER BY Name, Fam

Тя осигурява набор от информация за ученици, чиито имена започват с буквата К.

Молбата може да се генерира и се записва в SQL собственост на времето за проектиране или форми на изпълнение.

Фиг. 17.18. Пример за заявка до базата данни "училище"

SQL имот е даден списък с низове. Ето защо, за да се образува въпрос по време на работа, трябва да използвате метода За да добавите един ред (SQL-декларация) в SQL списък.

По-долу е код фрагмент, който генерира искане за информация за определено лице (критерий за подбор - Fam съдържание поле трябва да съответства на стойността на променливата FAM).

с forml.Queryl направя започне

В близост; // затворете файла - в резултат на

SQL.Clear; // изтриете текста на предишната заявка

// напише нова заявка в SQL имот

SQL.Add ( "SELECT Fam, име, клас 1);

SQL.Add ( "(Fam =" + FAM + "));

SQL.Add ( "ORDER BY Име, Fam");

Отворете; // активирате изпълнение на заявката

Следната програма, текстът е показана на Обява 17.2 диалогов прозорец - на фиг. 17.19, демонстрира възможността за промяна на заявката, а по-скоро заявка критерии, а програмата. Програмата предоставя на изхода като списък от всички ученици, както и частите му. Например, чрез извършване на искане за информация извежда само за конкретен ученик.

Фиг. 17.19. Формуляр за кандидатстване Database училище

Обявата 17.2. База данни "Училище"

употреби
Windows, съобщения, SysUtils, Курсове,

Graphics, контроли, формуляри,

Диалогови прозорци, решетки, DBGrids, Гб,

DBTables, ExtCtrls, DBCtrls, StdCtrls;

тип
TForm1 = клас (TForm)
Таблица 1: TTable; // маса (цялата база данни)
Query1: TQuery; // заявка (DB записи, които отговарят на критериите за подбор)
DataSource1: TDataSource; // източник на данни - таблица или заявка
DBGrid1: TDBGrid; // таблицата за показване на базата данни или на резултатите от търсенето
DBNavigator1: TDBNavigator;
DBText1: TDBText;
Button1: TButton; // ключ поискване
BUTTON2: TButton; // бутон на всички записи
процедура Button1Click (Sender: TObject);
процедура Button2Click (Sender: TObject);
процедура FormActivate (Sender: TObject);
частен

обществен

приключи;

Var
Form1: TForm1;

// кликнете върху бутон Запитване
процедура TForm1.Button1Click (Sender: TObject);
Var
FAM: низ [30];
започвам
сем: = InputBox ( "примерна информация от базата данни"
"Въведете името и натиснете OK. ',' ');
ако сем <> '' // потребителят въведе името на
след това
започвам
с form1.Query1 да започнат
В близост; // затворете файла, в резултат на предишната заявка
SQL.Clear; // изтриете текста на предишната заявка
// напише нова заявка в SQL имот
SQL.Add ( "SELECT Fam, име, клас");
SQL.Add ( "ОТ": училище: school.db " ');
SQL.Add ( ", където");
SQL.Add ( "(Fam =" "+ FAM +"));
SQL.Add ( "ORDER BY Име, Fam");
Отворете; // активирате изпълнение на заявката
приключи;

<*** другой вариант изменения критерия запроса
започвам
Query1.Close;
Query1.SQL [3]: = '(Fam = "" + FAM + ")";
Query1.Open;
DataSource1.DataSet: = Query1;
приключи;
>
ако Query1.RecordCount <> 0 след това
DataSource1.DataSet: = Query1 // дисплей прекъсване т заявка
друг да започне
ShowMessage ( "В базата данни няма никакви записи, които отговарят на критериите за заявката. ');
DataSource1.DataSet: = Таблица 1;
приключи;
приключи;
приключи;

// кликнете върху бутона Всички записи
процедура TForm1.Button2Click (Sender: TObject);
започвам
DataSource1.DataSet: = Таблица 1; // източник на данни - таблица
приключи;

// форма активиране
процедура TForm1.FormActivate (Sender: TObject);
започвам
DataSource1.DataSet: = Таблица 1;
Table1.Active: = True;
приключи;

процедура TForm1.Button1Click е започнало като кликнете бутона Заявка. Тя отвежда потребителя към низ (име) и запис (добавяне) на редове в SQL Имотът представлява текста на запитването. След това тази процедура се обажда на отворения метод активира изпълнението на искането.

Трябва да се отбележи, че преди да промените свойствата на SQL-заявката трябва да бъдат затворени с помощта на близки (тук трябва да се забравя, че в резултат на заявката - файл с данни (таблица), който е създаден от заявката).

Ако искането е написано в SQL собственост на формуляр за кандидатстване дизайн работно време, а след това по време на критериите за заявки на програмата може да бъде променян само чрез замяна на съответния текстов низ заявката.

Например, за заявката

SELECT DISTINCT Fam, име, клас от ": училище: school.db" КЪДЕ

(Клас = '10 и ') ORDER BY Име, Fam

ръчни критерии за подмяна на заявки могат да бъдат:

forml.Query1.SQL [3]: = '(Fam = "" + FAM + ")"

Трябва да се отбележи, че SQL Имотът е тип структура TStrings, в която редовете са номерирани от нула.

Новини
Knights етер теория

Това Корнилов написа на страницата си в социалната мрежа.

Според Корнилов, тогава посланието му беше посрещната с недоверие.

Сега Владимир Корнилов реши да се върне към този въпрос, във връзка с които публикува в Моята страница във Фейсбук снимки мистериозни израелци, които взеха участие в клането в Одеса.

Сред многото въпроси, които Корнилов, каза той, биха искали да получите отговор, например, са както следва:

"Защо са случайно отиде в Одеса с медицинско оборудване, гумени ръкавици, ако са знаели предварително, че ще бъде ранен и убит? Или защо този боец ​​изведнъж забравили английски, когато разбра, че досието му? ".

Езера, морета и океани от северните --------- lushariya върти обратно на часовниковата стрелка Lc m - р-в-к-и, и водата в южната polushariya - RA - проводим разтваря -sya- зало- ч ас стрелка - Obra-zuya- -Oral-мравка-ски-е-ово-вода компания.

Основната причина за водовъртежите на въртене са местен вятър.
Колкото по-висока скорост на вятъра по-висока скорост на въртене на водовъртежи и като следствие, по-високи водовъртежи центробежната сила, като по този начин увеличаване на нивото на водата на морета и океани.
И толкова по-ниска центробежната сила от водовъртежи, толкова по-ниско нивото на водата в моретата и океаните.

скорост на потока по периметъра на моретата и океаните не е същото навсякъде и зависи от дълбочината на брега. В плитка част на скоростта на морските течения се увеличава, а в дълбоката част на морето се намалява.
Сезонни колебания в нивото на водата часовник-tsya не около бреговете на моретата и океаните-те, но само в тези брегове, където -висока ъгловата скорост на потоците и следователно висока центробежната сила на водата. (Центробежната сила F В = V / R).
През прави брегове, където течения нямат никаква ъглова скорост ниво на водата не се покачва.