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

Автор работы: Пользователь скрыл имя, 12 Января 2011 в 22:05, лабораторная работа

Краткое описание

Мета: ознайомитися з особливостями використання структурованої мови запитів (SQL) при роботі з базами даних в середовищі Delphi.

Содержимое работы - 1 файл

Lab10.doc

— 165.00 Кб (Скачать файл)

   Динамічний  запит формується шляхом змінення властивості  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, а потім очистити вміст властивості SQL, викликавши метод Clear.

   Для виконання SQL-запиту SELECT після динамічних змін необхідно викликати метод Open. Для виконання SQL-запиту, що виконує модифікувати набір даних (UPDATE, INSERT, DELETE).

  1. Параметричні запити

   За  допомогою параметрів в запит  можна передавати деякі значення, які отримують в ході виконання додатку. Параметричний запит не є динамічним в прямому розумінні цього слова. Справа в тому, що параметри можуть бути використані для налаштування як статичного, так і динамічного запиту під час виконання додатку. Але оскільки параметричний запит може бути виконаний тільки в момент роботи додатку і тільки при задаванні деяких значень, раніше не визначених, то прийнято відносити даний вид запитів до динамічних.

   Параметри – це спеціальні змінні, значення яких раніше не відомо. Як і для звичних змінних, в ході виконання додатку замість параметри підставляється його значення. В тексті запиту перед ім’ям параметру ставиться двокрапка.

   Наприклад, зі списку товарів, що є в магазині, потрібно вибрати всі товари, ціна яких менша за деяке значення, що задається користувачем. Для рішення даної задачі, насамперед створюється запит такого вигляду:

   SELECT Tovar, Price

   FROM shop

   WHERE Price <: Cena

   Параметри, вказані в SQL-запиті, автоматично задаються в список параметрів, що є значенням властивості Params компоненту Query. За допомогою даної властивості можна отримати доступ до кожного параметру при розробці або виконанні додатку. Звертання до параметри здійснюється за його номером (індексом) або за його ім’ям.

   При виконанні додатку перед викликом запиту замість параметру потрібно підставити його значення. Необхідно  також вказати тип параметру  за допомогою однієї з властивостей вигляду AsXXXX (AsString, AsInteger тощо), після чого значення перетворити до даного типу.

   Приклад:

   Procedure TForm1.Button1Click(Sender: TObject);

   begin

     Query1.Close;

     Query1.ParamsByName(‘Cena’).AsFloat := StrToFloat(Edit1.Text);

     Query1.Open;

   end;

   Таким чином можна передавати різні  параметри в SQL-запит, не змінюючи сам текст запиту. Оскільки текст параметричного запиту не змінюється, його можна попередньо підготувати, використовуючи метод Prepare. Даний метод звично викликається при створенні форми. Використання цього методу дозволяє прискорювати виконання параметричних, а також статичних запитів. Аналізуючи властивість Prepared, можна визначити, чи був запит попередньо підготований. Після підготовки запиту методом Prepare даній властивості встановлюється значення True.

   Якщо  текст підготованого запиту був змінений (привласнення значень параметрам зміненням не вважається), то автоматично викликається метод UnPrepare і властивості Prepared встановлюється значення False.

Завдання

  1. Розробити телефонний довідник, що містить наступну інформацію:
  • прізвище, ім’я по батькові;
  • домашня адреса;
  • дата народження;
  • стать;
  • номер домашнього телефону;
  • номер мобільного телефону;
  • група (родина, друзі, колеги та ін.)
  1. Для зберігання інформації використати локальну базу даних.
  1. Програма повинна забезпечувати:
  • можливість додавання, редагування та вилучення інформації зі збереженням внесених змін в таблиці БД;
  • можливість навігації по записах БД;
  • можливість пошуку та фільтрації інформації за різними критерієм;
  • можливість сортування та групування записів.
  1. Програма повинна мати зручний та інтуїтивний інтерфейс.
  1. Всі операції з вибірки, додавання, змінення, вилучення, сортування та групування записів повинні бути реалізовані з використанням запитів на мові SQL.
 
 
 

Звіт  повинен містити:

  1. Тему та мету лабораторної роботи
  2. Текст індивідуального завдання
  3. Блок-схему алгоритму програми або основних процедур та функцій, виконану згідно ГОСТ 19.002-80 та ГОСТ 19.003-80
  4. Перелік змінних, які вводилися автором програми, їх типів та призначення у вигляді таблиці:
Змінна Тип Призначення
     
  1. Структуру таблиць БД з поясненням призначення  полів і з описом зв’язків між  таблицями (якщо вони є)
  2. Повний текст програми з коментарями, які пояснюють всі процедури та функції
  3. Інтерфейс та приклади роботи програми (екранні форми)

Информация о работе Використання мови SQL при роботі з базами даних в Delphi