На бирже курсовых и дипломных проектов можно найти образцы готовых работ или получить помощь в написании уникальных курсовых работ, дипломов, лабораторных работ, контрольных работ, диссертаций, рефератов. Так же вы мажете самостоятельно повысить уникальность своей работы для прохождения проверки на плагиат всего за несколько минут.

ЛИЧНЫЙ КАБИНЕТ 

 

Здравствуйте гость!

 

Логин:

Пароль:

 

Запомнить

 

 

Забыли пароль? Регистрация

Повышение уникальности

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp», которое позволит вам всего за несколько минут, выполнить повышение уникальности любого файла в формате MS Word. После такого повышения уникальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, etxt.ru или advego.ru. Программа «StudentHelp» работает по уникальной технологии и при повышении уникальности не вставляет в текст скрытых символов, и даже если препод скопирует текст в блокнот – не увидит ни каких отличий от текста в Word файле.

Результат поиска


Наименование:


лабораторная работа Використання мови SQL при робот з базами даних в Delphi

Информация:

Тип работы: лабораторная работа. Добавлен: 15.08.2012. Сдан: 2011. Страниц: 9. Уникальность по antiplagiat.ru: < 30%

Описание (план):


Лабораторна робота №10
Тема: Використання мови SQL при роботі з базами даних в Delphi
    Мета: ознайомитися з особливостями використання структурованої мови запитів (SQL) при роботі з базами даних в середовищі Delphi.
Теоретичні  відомості
    Компонент Query.
   Реляційний метод доступу до даних ґрунтується на використанні SQL-запитів, що дозволяють створювати, видаляти та змінювати структуру таблиць, модифікувати набори даних, виконувати вибірку записів за складними критеріями з однієї або декількох таблиць, сортувати записи, здійснювати пошук записів.
   Переваги  цього методу в більшій мірі можна  відчути при роботі з віддаленими  БД, оскільки значно збільшується швидкодія  у порівнянні з навігаційним методом  доступу. Навіть при роботі з локальними БД реляційний метод доступу дозволяє вирішувати достатньо складні задачі простими способами.
   В якості набору даних, який забезпечує можливість створення та використання SQL-запитів, найчастіше застосовується компонент Query, що знаходиться на закладці BDE палітри компонентів. В загальному випадку користувач не має можливості змінювати інформацію, що передається компонентом Query у візуальні елементи керування, такі як DBGrid. Для здійснення змін інформації, що зберігається в БД, формуються спеціальні запити.
   Більшість властивостей компоненту Query аналогічні відповідним властивостям компонента Table.
   Специфічні  властивості компоненту Query:
Властивість Тип Призначення
Active Boolean Визначає активність компонента Query. Якщо True, то компонент містить набір даних, який ґрунтується на виконанні SQL-запиту, що визначається властивістю SQL. Якщо False, то набір даних є порожнім
Constrained Boolean Властивість, встановлена  в True, вказує на те, що в змінюваному наборі даних на записи використовуються обмеження секції WHERE оператора SELECT
DataSource TDataSource Містить посилання  на джерело даних DataSource, що використовується для формування параметричного запиту
Local Boolean Має значення True, якщо компонент Query працює з локальною або файл-серверною БД
ParamCheck Boolean Якщо містить True, забезпечує автоматичне оновлення списку параметрів при зміненні запиту на етапі виконання програми
Params[Index: Word] TParams Містить список параметрів, що передаються в SQL-запиту. Дана властивість має зміст лише при створенні параметричних запитів
Prepared Boolean Має значення True, якщо запит підготований до виконання шляхом виклику методу Prepare
RequestLive Boolean Якщо містить  True, дозволяє змінювати записи набору даних і забезпечує автоматичне відображення цих змін. За замовчанням даній властивості привласнено значення False, тобто набір Query заборонено модифікувати. У випадку, коли за допомогою запиту набір даних формується на основі декількох таблиць, його не можна модифікувати незалежно від значення властивості RequestLive
RowsAffected Integer Містить кількість  запитів, які були змінені або  видалені в результаті виконання  запиту
SQL TStrings Містить текст  SQL-запиту. Текст статичного SQL-запиту можна вводити та змінювати за допомогою спеціального редактора
State TDataSetState Аналогічно  відповідній властивості компоненту Table
Text PChar Містить текст  SQL-запиту, який дійсно був переданий BDE. Вихідний текст запиту може бути змінений програмним чином, тому вміст даної властивості може відрізнятися від вмісту властивості SQL
UniDirectional Boolean Якщо містить  True, показник поточного запису набору даних може переміщуватися лише вгору. Такі набори даних обробляються значно швидше і займає менше пам’яті
 
   Основні методи компоненту Query:
Метод Призначення
Open Дозволяє відкрити набір даних. Цей метод використовується для виконання SQL-запиту, побудованого на основі оператору SELECT і здійснює вибірку записів з набору даних. Окрім виконання запиту, метод дає змогу переглянути вміст набору даних, отриманого в результаті
ExecSQL Використовується лише для виконання SQL-запиту. Цей метод не відкриває набір даних і застосовується при роботі із запитами, які здійснюють створення та знищення таблиць та індексів, змінення структури таблиць, а також додавання, видалення і редагування записів таблиць БД
Close Закриває набір  даних. Цей метод необхідно викликати перед будь-яким зміненням набору даних, а також перед динамічним зміненням тексту SQL-запиту.
 
   Структурована мова запитів (SQL) призначена виключно для роботи з таблицями БД. Дана мова не містить засобів, що дозволяють реалізувати цикли, розгалуження, переходи, введення-виведення тощо. Тому звичайно мова SQL окремо не використовується, а включається до складу інших засобів.
   Як  вже було сказано, мова SQL містить засоби по створенню та видаленню таблиць, зміненню їх структури, роботі з індексами. Але найширше використовуються можливості мови SQL з організації вибірки даних за різними критеріями, сортування та пошуку даних, модифікації наборів даних (видалення, змінення записів). Саме на цих можливостях ми і зупинимося в даній лабораторній роботі.
    Організація відбору даних
   Відбір  даних з таблиць БД здійснюється за допомогою оператора SELECT. Результат такого відбору називається вибіркою.
   Оператор  SELECT – найбільш часто використовуваний та найбільш важливий оператор мови SQL. Він дозволяє отримувати вибірки з однієї або декількох таблиць БД та перетворювати результати к потрібному вигляду. За допомогою цього оператору можна реалізувати достатньо складні умови відбори даних. В загальному випадку цей оператор має наступний формат:
   SELECT [DISTINCT] {*|поле 1[,поле 2 …]}
   FROM таблиця 1[, таблиця 2…]
   [WHERE умови відбору]
   [GROUP BY список полів, що групуються]
   [HAVING умови групування]
   [ORDER BY список полів для сортування]
   [UNION оператор_SELECT]
   Опис  оператора SELECT потребує обов’язкового зазначення списку полів, а також операнду FROM, після якого вказується список таблиць, що використовуються для відбору даних. В найпростішому випадку даний оператор може мати, наприклад, наступний вигляд
   SELECT Tovar, Price
   FROM Shop
   В результаті виконання даного оператору  буде сформований набір даних, що містить значення полів Tovar та Price з таблиці Shop.
   Список  полів вказується безпосередньо  після ключового слова SELECT, при цьому імена полів відокремлюються один від одного комами. При зазначенні додаткового описувача DISTINCT після ключового слова SELECT забезпечується виключення з вибірки однакових записів, для яких співпадають значення всіх полів, вказаних в операторі SELECT.
   Якщо  в набір даних необхідно включити всі поля заданої таблиці (таблиць), то замість перерахування імен полів можна вказати символ «*». Припустимо, якщо таблиця Firm.db містить поля Tab_nom, FIO, Otdel, Dolgn і Salary. Тоді два наступні оператори абсолютно ідентичні:
   SELECT Tab_nom, FIO, Otdel, Dolgn, Salary
   FROM Firm
   або
   SELECT *
   FROM Firm
   При відображенні вмісту набору даних за результатами виконання SQL-запиту в компоненті DBGrid за умовчанням в якості заголовків стовпців будуть використовуватися відповідні імена полів. Але існує можливість перевизначення цих заголовків, для чого використовується описувач AS, який ставиться після імені поля, а за ним вказується заголовок, що буде відображатися:
   SELECT Nom_stud AS Номер, FIO AS Прізвище, Grup AS Група
   FROM students
    Використання  умов відбору даних
   В секції WHERE оператора SELECT можна вказати необхідно умову відбору, що дозволить включати у вибірку не всі записи, а тільки ті, які відповідають заданій умові. При використанні даного оператору в набір даних будуть включатися тільки ті записи, які задовольняють встановленим умовам пошуку (відбору).
   При порівнянні значення стовпця з константою умова пошуку має такий загальний  опис:
   WHERE ім’я_поля операція константа
   В якості операції може виступати одна з операцій відношення: = (дорівнює), > (більше), < (менше), >=(більше або дорівнює), <= (менше або дорівнює), !> (не більше), !< (не менше), <> (не дорівнює), != (не дорівнює). Крім того, умова може бути складеною, для поєднання частин якої використовуються круглі дужки та логічні функції NOT, AND, OR. Наприклад:
   SELECT Nom_r, Time_dep
   FROM reys
   WHERE Punkt_dep = ‘Берлін’ AND Punkt_arr = ‘Лондон’ AND
   Time_dep >= 15:00
   Результатом виконання наведеного запиту буде набір  даних, в якій будуть включені два  поля Nom_r та Time_dep, які показують, відповідно, номера рейсів та час відправлення літаків. При цьому існує ряд обмежень: будуть відібрані тільки ті записи, для яких пункт відправлення (Punkt_dep) – Берлін, пункт прибуття (Punkt_arr) – Лондон та час відправлення (Time_dep) – о 15:00 та пізніше.
   Існує ще декілька операцій, які можуть використовуватися  при формуванні умов пошуку:
Операція Призначення
BETWEEN Використовується  для перевірки входження значення поля в заданий діапазон
IN Використовується  для перевірки входження значення поля в заданий набір значень
LIKE Дозволяє виконувати порівняння за заданою маскою. В  масці можуть використовуватися  наступні символи: «%» - для позначення довільного рядка будь-якої довжини, «_» - для позначення довільного одиничного символу. Якщо дані символи повинні використовуватися в шаблоні безпосередні як такі, без врахування їх спеціального значення, то операція доповнюється описувачем ESCAPE символ, який дозволяє задати символ, поява якого в шаблоні відміняє спеціальні функції наступного за ним символу
IS NULL Використовується  для перевірки невизначеного  значення поля
 
   Приклад:
   SELECT FIO, Rist, Vaga,
   FROM grup
   WHERE (Vaga BETWEEN 45 AND 65) AND (Rist IN (160, 165, 170))
   Результатом виконання цього запиту буде набір  даних, що містить поля Прізвище (FIO), Зріст (Zrist) та Вага (Vaga). Набір даних формується на основі записів з таблиці grup, у яких значення поля Vaga знаходиться в діапазоні від 45 до 65, а значення поля Zrist точно дорівнює одному з трьох значень 160, 165, 170.
    Додаткові функції мови SQL
   В мові SQL існує ряд додаткових функцій, які можуть бути використані при складанні запитів. Серед них можна виділити наступні функції:
Функція Призначення
UPPER (рядок) Перетворює  всі символи рядка в символи  верхнього регістру
LOWER (рядок) Перетворює  всі символи рядка в символи нижнього регістру
TRIM (рядок) Видаляє символи  пробілу на початку та в кінці  рядка
SUBSTRING рядок FROM n1 TO n2 Виділяє з рядка  символи, починаючи з позиції  n1 до позиції n2
CAST (вираз AS тип_даних) Перетворює  вираз до заданого типу даних
Рядок_1|| Рядок_2 Здійснює конкатенацію (об’єднання) двох рядків
EXTRACT (елемент FROM вираз) Вибирає значення, яке відповідає вказаному елементу, з виразу що містить значення дати або часу. В якості параметру  елемент можуть бути задані такі значення: YEAR, MONTH, DAY, HOUR, MINUTE або SECOND (рік, місяць, день, годин, хвилина і секунда відповідно)
 
   Відповідність між типами даних мови SQL та типами даних таблиць Paradox наведена в наступній таблиці:
SQL Paradox
CHARACTER (N) Alpha
VARCHAR (N) Alpha
NUMERIC (X, Y) Number
FLOAT (X, Y) Number
MONEY Money
SMALLINT Short
INTEGER Long Integer
DECIMAL (X, Y) BCD
DATE Date
TIME Time
TIMESTAMP Timestamp
BLOB (N, 1) Memo
BLOB (N, 2) Binary
BLOB (N, 3) Formatted Memo
BLOB (N, 4) OLE
BLOB (N, 5) Graphic
BOOLEAN Logical
AUTOINC Autoincrement
BYTES Bytes(N)
 
    Сортування  записів
   Сортування  записів в порядку зростання  або зменшення значень полів  здійснюється за допомогою операнду ORDER BY. Після нього вказується список полів, за якими повинно виконуватися сортування. Записи будуть впорядковані в залежності від порядку зазначення полів. Спочатку виконується сортування за першим вказаним полем; далі для записів, що мають однакове значення першого поля, відбувається впорядкування за другим полем тощо.
   Сортування  може виконуватися як для індексованих, так і для неіндексованих полів. Поля в списку позначаються іменами або номерами, які відповідають порядку розташування полів в списку після ключового слова SELECT.
   За  умовчанням здійснюється сортування в  порядку зростання значень полів. Описувач DESC, який вказується після імені (або номеру) відповідного поля, дозволяє впорядкувати записи за зменшенням значень даного поля.
   Наприклад:
   SELECT Number, Address, Floor, Room, Square, Price
   FROM Flat
   ORDER BY Room, Price DESC, 5
    Агрегатні функції
   В SQL-запитах передбачена можливість використання так званих агрегатних функцій, які дозволяють отримати деяку загальну величину, яка розраховується на основі всіх значень набору даних або певної групи записів. В SQL існують наступні агрегатні функції:
    COUNT (вираз) – підраховує число входжень заданого виразу у всі записи результуючого набору даних;
    SUM (вираз) – визначає загальну суму значень, що визначаються параметром вираз;
    AVG (вираз) – розраховує середнє значення;
    MAX (вираз) – знаходить максимальне значення;
    MIN (вираз) – знаходить мінімальне значення.
   Приклад:
   SELECT COUNT (DISTINCT Name)
   FROM Firm
   WHERE Dolgn = ‘Водій’
   В результаті виконання цього запиту виводиться кількість значень поля Name, які не повторюються, не є порожніми, і у яких значення поля Dolgn дорівнює «Водій» (іншими словами, кількість водіїв, що працюють на фірмі).
    Групування  записів
   Групування  даних використовується, головним чином, в ситуаціях, коли потрібно отримати агреговані значення (мінімум, максимум, середнє, сума, кількість) не за всім набором  даних, а за кожною з груп записів, що входять до набору та характеризуються однакових значення будь-якого поля. Наприклад, наступний запит дозволяє отримати загальну кількість співробітників за кожним відділом фірми:
   SELECT Otdel, COUNT (Tab_nomer)
   FROM Firm
   GROUP BY Otdel
   В ряді випадків необхідно встановити деякі обмеження на значення, що групується. Для цього використовується операнд HAVING. Наприклад, якщо в попередньому потрібно вивести тільки ті відділи, в яких кількість співробітників більше 10, то це можна здійснити за допомогою запиту:
   SELECT Otdel, COUNT (Tab_nomer)
   FROM Firm
   GROUP BY Otdel
   HAVING COUNT (Tab_nomer) > 10
    Відбір  даних з декількох таблиць
   За  допомогою SQL-запиту можна легко сформувати вибірку на основі використання даних з декількох таблиць. У випадку, коли потрібно обрати поля з набору таблиць, для приналежності поля до певної таблиці використовується складене ім’я, що включає ім’я таблиці, розділову крапку та ім’я поля:
   Ім’я_таблиці.ім’я_поля
   Якщо  зв’язок між двома таблицями  не встановлено, то в результуючий набір  даних увійдуть всі можливі комбінації записів вказаних таблиць. На практиці рідко виникає необхідність формування подібних наборів даних. Набагато частіше між таблицями встановлюється зв’язок за певним полем або групою полів. Такий зв’язок можна встановити, використовуючи описувач INNER JOIN в секції FROM, або задаючи відповідну умову в секції WHERE.
   Наприклад, в БД є дві таблиці, в одній з яких містяться дані про всіх викладачів університету, а в іншій міститься розклад занять різних груп. Перша таблиця univer.db містить такі поля: Прізвище викладача (Fam), Посада (Posada), Кафедра (Kaf). Друга таблиця rozklad.db містить поля: Дисципліна (Discipl), Група (Grup), День тижня (Day), Час (Chas), Аудиторія (Audit), Викладач (Prep). З другої таблиці потрібно вибрати всі записи, що відносяться до пар, які проводять викладачі кафедри іноземних мов. Як видно з опису таблиць, в розкладі не вказано, на якій кафедрі працює той чи інший викладач. Тому для того, щоб вибрати необхідні відомості, потрібно використати інформацію з першої таблиці  Розв’язати поставлену задачу можна наступним чином. Між таблицями встановлюється зв’язок за прізвищем викладача і формується проміжний набір даних, що містить записи обох таблиць, у яких співпадають значення відповідних полів. Далі з цього набору виключаються всі записи, які не задовольняють заданій умові, тобто в результуючий набір даних увійдуть тільки записи таблиці rozklad, що містять інформацію про пари, які проводять викладачі кафедри іноземних мов. Реалізується це за допомогою наступного запиту:
   SELECT rozklad.*
   FROM univer INNER JOIN rozklad ON
   univer.Fam = rozklad. Prep
   WHERE (univer.Kaf = ‘Іноземних мов’)
   Але більш зручним способом є використання наступного запиту:
   SELECT rozklad.*
   FROM univer, rozklad
   WHERE (univer.Kaf = ‘Іноземних мов’) AND
   (univer.Fam = rozklad. Prep)
   Цей спосіб має також суттєву перевагу, оскільки дозволяє встановлювати зв’язок між декількома таблицями, а не тільки між двома. Слід також відмітити, що в умові зв’язку можна крім знаку рівності можна використовувати будь-які інші оператори порівняння.
   Як  видно з наведених прикладів, перед іменами полів вказані імена відповідних таблиць. Якщо імена полів в різних таблицях не співпадають, вказувати імена цих таблиць не обов’язково, однак краще все ж таки задавати до якої саме таблиці відноситься дане поле (коли поля таблиць мають однакові імена, назва таблиці перед іменем поля повинна вказуватися обов’язково). Якщо таблиця має довге ім’я, то замість нього рекомендується вказувати псевдонім, що вказується для кожної таблиці в секції FROM. Наприклад:
   SELECT DISTINCT a.Fam, b.Grup
   FROM univer a, rozklad b
   WHERE (a.Fam = b. Prep)
   Описаний  тип зв’язку між двома таблицями  називається внутрішнім. Він характеризується тим, що задається умова зв’язку між відповідними полями і виводяться тільки записи, що задовольняють цій умові.
   Існує також так званий зовнішній зв’язок. Такий зв’язок реалізується за допомогою описувача JOIN і характеризується тим, що одна з таблиць є ведучою, а інша – веденою, і в результуючий набір даних крім записів, що задовольняють умові зв’язку, включаються і всі інші записи ведучої таблиці, у відповідність яким ставляться порожні записи.
   Яка з таблиць буде ведучою, визначає тип з’єднання:
    LEFT – ліве зовнішнє з’єднання, при якому ведучою є таблиця, вказана в описі зліва від описувача виду з’єднання;
    RIGHT – праве зовнішнє з’єднання, при якому ведучою є таблиця, вказана в описі справа від описувача виду з’єднання;
    FULL – повне зовнішнє з’єднання, при якому ведучими є обидві таблиці.
    Вкладені  запити
   В деяких випадках неможливо розв’язати задачу шляхом використання одного запиту (наприклад, в тих випадках, коли заздалегідь не визначена умова відбору даних). Тому іноді виникає необхідність використовувати вкладені запити. В загальному випадку вкладений запит виглядає наступним чином:
   SELECT …
   FROM …
   WHERE поле,_що_порівнюється оператор
               (SELECT …)
   Синтаксис вкладеного запиту не відрізняється від формату основного запиту. Вкладений запит повинен міститися в круглих дужках.
    Поєднання запитів
   В деяких випадках потрібно поєднувати результати виконання декількох  операторів SELECT. Таке поєднання виконується за допомогою оператора UNION. При цьому результуючі набори даних повинні мати однаковий формат, тобто однаковий склад полів та повний збіг типів даних відповідних полів. Якщо в результуючих наборах даних, сформованих після виконання різних запитів, є один і той самий запис, то вона не дублюється у вільному наборі даних.
    Модифікація набору даних
   SQL дозволяє здійснювати редагування  записів шляхом змінення значень  полів в групі записів. Для цього використовується оператор UPDATE, який описується наступним чином:
   UPDATE Ім’я_таблиці
   SET Ім’я_поля = Вираз,
   
   Ім’я_поля = Вираз
   [WHERE Умова_відбору]
   Результатом виконання цього оператора буде змінення значень заданих полів  для всіх записів, що задовольняють  умовам відбору. Вираз визначає нове значення вказаного поля.
   Приклад змінення записів:
   UPDATE Firm
   SET Dolgn = ‘Лаборант’,
   Salary = 650
   WHERE Name = ‘Макаров В.Л.’
   Даний оператор змінює записи таблиці, у яких поле Name має значення «Макаров В.Л.». Полю Dolgn цих записів привласнюється значення «Лаборант», а полю Salary – значення 650.
   Додавання нових записів в таблицю виконується  за допомогою оператору INSERT, що має наступний формат
   INSERT INTO Ім’я_таблиці
   (Ім’я_поля, …, Ім’я_поля)
   VALUES (Значення, …, Значення)
   В результаті виконання цього оператору  до вказаної таблиці буде додана один запис із заповненням перерахованих у списку полів. Значення для них будуть взяти зі списку значень VALUES.
   Наступний приклад демонструє запит, що дозволяє вставити новий запис в таблицю  cars. При цьому полю Number привласнюється значення «щ0001ФВ», полю Car – значення «ВАЗ-2109», полю Year - значення 1999, а поле Owner отримує значення «Іванов І.І.»
   INSERT INTO cars
   (Number, Car, Year, Owner)
   VALUES (‘щ0001ФВ’, ‘ВАЗ-2109’, 1999, ‘Іванов  І.І.’)
   Існує також можливість одночасного додавання  декількох записів, значення полів для яких вибираються з інших таблиць. В такому випадку оператор має наступний синтаксис:
   INSERT INTO Ім’я_таблиці
   (Ім’я_поля, …, Ім’я_поля)
   SELECT …
   В таблицю будуть додані записи, для  яких значення вказаних полів заповнюються на основі значень полів записів, відібраних за допомогою оператора SELECT. Кількість доданих в таблицю записів буде дорівнювати кількості вибраних записів. Кількість та тип полів, що відбираються, повинні відповідати кількості та типу полів, вказаних в тілі оператору INSERT.
   Оператор  DELETE дає змогу видалити записи та має наступний синтаксис:
   DELETE FROM Ім’я_таблиці
   [WHERE Умова_відбору]
   При виконанні даного оператору з  вказаної таблиці видаляються всі  записи, які задовольняють умові  відбору.
   Наведений нижче оператор видаляє з таблиці work всі записи, для яких значення поля Vik менше 30, а значення поля Prof дорівнює «Менеджер»:
   DELETE FROM work
   WHERE Vik < 30 AND Prof = ‘Менеджер’
    Динамічні запити
   SQL-запит,  що створюється при проектуванні  додатку, називається статичним. Крім того, існує можливість формувати або змінювати запит в ході виконання додатку. Такий запит називається динамічним. Динамічні запити використовуються у випадках, коли виникає необхідність змінювати їх в залежності від певних дій користувача, наприклад, якщо поле для сортування визначається тим, який перемикач RadioButton обирає користувач в процесі роботи в той або інший момент часу.
   Динамічний  запит формується шляхом змінення властивості  SQL компонента Query.
   Приклад:
   Procedure TForm1.Button1Click(Sender: TObject);
   begin
     Query1.Close;
     Query1.SQL.Clear;
     Query1.SQL.Add(‘SELECT *’);
     Query1.SQL.Add(‘FROM znak’);
     case ComboBox1.ItemIndex of
         0: pol:= ‘m’;
         1: pol:= ‘g’;
     end;
     Query1.SQL.Add(‘WHERE (Pol = ’+ pol + ‘) AND ’);
    Query1.SQL.Add(‘(Vik BETWEEN ’+ Edit1.Text + ‘ AND ’+ Edit2.Text +‘)’);
     if CheckBox1.Checked
         then Query1.SQL.Add(‘ORDER BY Dat_post DESC’)
         else Query1.SQL.Add(‘ORDER BY Dat_post’);
     Query1.Open;
   end;
   В даному прикладі формується SQL-запит, що дозволяє здійснити вибірку даних з таблиці znak.db, яка містить анкетну інформацію про кандидатів, поданих в службу знайомств. При цьому користувач обирає в списку ComboBox1 стать кандидату. Далі в полях двох однорядкових редакторів Edit1 та Edit2 задається діапазон віку, за яким буде здійснюватися пошук кандидату. Стан перемикача CheckBox1 визначає, чи будуть дані виводитися в порядку зростання або в порядку зменшення дати подачі анкети в службу знайомств.
   Використання  динамічного запиту в наведеному прикладі пояснюється тим, що критерії відбору заздалегідь не відомі, а визначаються тільки на етапі виконання програми. Саме тому використання статичного запиту в даній ситуації неможливо.
   Слід  також звернути увагу, що перед динамічним зміненням SQL-запиту необхідно закрити набір даних, викликавши метод Close
и т.д.................


Перейти к полному тексту работы


Скачать работу с онлайн повышением уникальности до 90% по antiplagiat.ru, etxt.ru или advego.ru


Смотреть полный текст работы бесплатно


Смотреть похожие работы


* Примечание. Уникальность работы указана на дату публикации, текущее значение может отличаться от указанного.