Компонент Tquery
Перенесемо на форму компонента TDataSoruce , TQuery, DBGrid і DBNavigator. Потім визначимо властивості за допомогою інспектора об'єктів у наступному порядку:
DataSource1.DataSet=Query1(клацнути мишею по порожньому полю DataSet, буде запропонований список компонентів Query форми)
DBGrid1. DataSoruce= DataSoruce1
DBNavigator1. DataSoruce= DataSoruce1
Query1.DataBaseName=history(вибрати зі списку алиассов)
5) Query1.SQL=SELECT * FROM HISTORY WHERE S>60 (текст запиту SQL )
Query1.Active=true (вибрати зі списку)
Якщо усе зроблено вірно то на екрані будуть видно дані(поля і записи). У результаті на екрані будуть показані записи з процентним вмістом вище 60%.
Компоненти Query і Table мають багато загальних методів і властивостей.
При роботі з локальними базами вигідніше використовувати компонент Table. З його допомогою можна не тільки переглядати таблиці але і зручно(більш ефективно) модифікувати їх, видаляти і вставляти записи. Однак при роботі з мережею більш ефективним виявляється компонент Query.
Властивості компонента tQuery
Компонент TQuery, як і компонент TTable, має усі властивості компонента TDataSet.
Як і у випадку з компонентом TTable, компонент TDataSource керує взаємодією між компонентами Data Controls і компонентом TQuery. Звичайний додаток має один компонент DataSource для кожного компонента TQuery.
Найбільше часто використовуються наступні властивості компонента TQuery:
1)Active - указує, відкритий (true) чи закритий (false) даний запит
2) Eof, Bof - ці властивості приймають значення true, коли покажчик поточної запису розташований на останній чи відповідно першому рядку набору даних, що є результатом виконання запиту.
3) DatabaseName - ім'я каталогу або псевдонім (alias) БД, до якої здійснюється запит.
4) DataSource - указує джерело даних для параметризованных запитів (тобто запитів з параметрами, значення яких заздалегідь невідомо).
5) Fields - це властивість доступна тільки під час виконання (run-time only) і використовується для чи читання модифікації полів, обумовленого по порядковому номері.
6) Params - містить параметри для параметризованного запиту, як SomeNo у наступному прикладі:
Select * from Orders where CustNo=:SomeNo
Параметризированный запит містить не тільки константи, але і змінні. Механізм виконання такого запиту відрізняється від виконання звичайного, статичного запиту.
7)SQL - колекція рядків(memo), що містить текст оператора запиту SQL. Це основна властивість компонента Query. Тут записується текст запиту.
8) RequestLive - якщо true і синтаксис запиту такий, що його результат може бути модифікованно, то користувач може редагувати дані одержанні в результаті запиту зі збереженням їх у базі даних.
Якщо RequestLive має значення false, редагувати результати запиту не можна.
Найчастіше використовуються наступні методи компонента TQuery:
1)ExecSQL - виконує SQL-запит, що міститься у властивості SQL, якщо запит не повертає дані. Вживати цей метод потрібно при вставці, редагуванні або видаленні даних. При виконанні ж оператора SELECT (вибір даних) потрібно використовувати метод Open. Наступний приклад показує застосування методу ExecSQL:
Query1.Close();
Query1.SQL.Clear();
Query1.SQL.Add("Delete emp where mpno=1010");
Query1.ExecSQL();
2) Open - відкриває компонент TQuery. Він еквівалентний присвоєнню властивості Active значення true. Використовується, якщо результатом запиту є набір даних (такі запити звичайно починаються з оператора SELECT). Приклад використання методу Open:
Query1.Open();
3) Close - закриває компонент TQuery. Виклик Close еквівалентний присвоєнню властивості Active значення false. Приклад використання методу Close:
Query1.Close();
4)Prepare - забезпечує передачу серверу баз даних і синтаксичний контроль запиту, що міститься у властивості SQL, для оптимізації і компіляції. Повний запит з параметрами не передається, поки не викликані методи Open чи ExecSQL. Навіть якщо метод Prepare не викликається явно, він буде викликаний неявно, якщо використовуються методи Open чи ExecSQL.
Query1.Close();
Query1.SQL.Add("Delete emp where еmpno=:empno");
Query1.Prepare();
Компоненти TQuery мають багато методів, успадкованих від TdataSet, вони спільні з методами компоненту TTable.
Часто використовуються наступні методи:
5)First, Last, Next, Prior переміщають покажчик поточного запису на першу, останню, наступну і попередню записи відповідно.
6) MoveBy переміщає покажчик поточного запису на визначенну кількість рядків.
7) Insert, Edit, Delete, Append, Post, Cancel - дозволяють модифікувати результат запиту. Метод Insert дозволяє вносити в результат запиту зміна, як у наступному прикладі:
Query2.Insert();
Query2.Fields[0].AsInteger = 100;
Query2.Fields[1].AsString =Edit1.Text;
Query2.Post();
Метод Post записує результати операцій Insert, Update чи Delete на диск, роблячи реальну фізичну зміну в базі даних. Метод Cancel скасовує незавершені операції Insert, Delete, Edit чи Append.
Варто помітити, що маються також інстукції Insert, Edit, Delete мови SQL.
8)FreeBookmark, GetBookmark, GotoBookmark - дозволяють створювати закладки (маркіровані рядки) у запиті і потім повернутися до такого рядка пізніше.
9) GetFieldNames – повернути список полів таблиці в строкову змінну (типу TStrigngs). Наприклад, Guery1.GetFieldNames(ComboBox1.Items) завантажує в список ComboBox1 імена полів таблиці, зв'язаної з компонентом Guery1.
