|
Компонент TQuery
Компонент TQuery, как и компонент TTable, обладает всеми свойствами
компонента TDataSet.
Как и в случае с компонентом TTable, компонент TDataSource управляет
взаимодействием между компонентами Data Controls и компонентом TQuery.
Обычно приложение имеет один компонент DataSource для каждого компонента
TQuery.
Наиболее часто используются следующие свойства компонента TQuery:
Отметим, что язык запросов SQL (Structured Query Language), традиционно
применяемый при работе с серверными СУБД, может быть использован и при
работе с таблицами формата dBase и Paradox. Не вдаваясь в подробное описание
синтаксиса этого языка (с ним можно познакомиться в других источниках,
например, в книге М.Грабера "Введение в SQL"), отметим одну его
особенность. SQL – язык непроцедурный. На нем можно написать, что нужно
получить в результате запроса, но нельзя написать, как это сделать, то
есть нельзя описать саму процедуру выполнения запроса. Дело в том, что
реализация выполнения тех или иных операторов SQL серверами баз данных
может быть различна, и в большинстве случаев неинтересна клиентскому приложению,
создаваемому с помощью С++ Builder. В случае таблиц dBase или Paradox реализацию
SQL берет на себя библиотека Borland Database Engine.
Компонент TQuery позволяет использовать операторы SQL для того, чтобы
определять или создавать наборы данных, которые можно отобразить на экране,
вставлять, удалять и редактировать строки.
- RequestLive - если это свойство имеет значение true и синтаксис запроса
таков, что его результат может быть модифицируем, пользователь может редактировать
данные с сохранением их в базе данных. Если RequestLive имеет значение
false, результат запроса возвращается в состоянии read-only.
Наиболее часто используются следующие методы компонента TQuery:
- ExecSQL - выполняет SQL-запрос, содержащийся в свойстве SQL, если запрос
не возвращает данные. Следует употреблять этот метод при вставке, редактировании
или удалении данных. При выполнении же оператора SELECT (выбор данных)
следует использовать метод Open. Следующий пример показывает применение
метода ExecSQL:
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add("Delete emp where empno=1010");
Query1->ExecSQL();
- Open - открывает компонент TQuery. Он эквивалентен присвоению свойству
Active значения true. Используется, если результатом запроса является набор
данных (такие запросы обычно начинаются с оператора SELECT). Пример использования
метода Open:
Query1->Open();
- Close - закрывает компонент TQuery. Вызов Close эквивалентен присвоению
свойству Active значения false. Пример использования метода Close:
Query1->Close();
- Prepare - обеспечивает передачу серверу баз данных запроса, содержащегося
в свойстве SQL, для оптимизации и компиляции. Полный запрос с параметрами
не передается, пока не вызваны методы Open или ExecSQL. Даже если метод
Prepare не вызывается явно, он будет вызван неявно, если используются методы
Open или ExecSQL (в этом можно убедиться, запустив утилиту SQL Monitor).
Пример использования метода Prepare:
Query1->Close();
Query1->SQL->Add("Delete emp where empno=:empno");
Query1->Prepare();
Компоненты TQuery обладают большим разнообразием методов, унаследованных от TDataSet. Наиболее часто используются следующие методы:
- First, Last, Next, Prior перемещают указатель текущей записи на первую,
последнюю, следующую и предыдущую записи соответственно, например:
- MoveBy перемещает указатель на определенное количество строк.
- 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.
- FreeBookmark, GetBookmark, GotoBookmark- - позволяют создавать закладки
(маркированные строки) в запросе и затем вернуться к такой строке позже.
Прежде чем перейти к непосредственному использованию запросов, следует
остановиться на весьма полезном инструменте - генераторе запросов Visual
Query Builder, с помощью которого можно определить свойство SQL компонента
TQuery, если по каким-либо причинам это неудобно делать непосредственно
в редакторе свойств.
Назад | Содержание | Вперед
|
 |
 |
|
 |
 |
 |
|
Новости мира IT:
- 02.03 - NVIDIA, Ericsson, Nokia и партнёры займутся развитием 6G с использованием ИИ и открытых платформ
- 02.03 - Распространение Windows 11 ускорилось — доля ОС превысила 72 %
- 02.03 - Энтузиаст воссоздал Linux образца 1994 года с графическим интерфейсом в браузере
- 02.03 - Google придумала, как защитить HTTPS от квантового взлома, не увеличивая размеры TLS-сертификатов
- 28.02 - Учреждён фонд Open Source Endowment, формирующий целевой капитал для финансирования открытого ПО
- 28.02 - Xiaomi вернула себе лидерство на глобальном рынке носимой электроники
- 28.02 - Nvidia GeForce3 отмечают четвертьвековой юбилей — это были первые видеокарты с программируемыми шейдерами
- 28.02 - Ericsson впервые испытала 6G в реальном времени — и успешно поуправляла роботами
- 28.02 - Роскомнадзор не стал отрицать сообщения о принятом в Кремле решении заблокировать Telegram с апреля
- 25.02 - Российский суд оштрафовал Google на 22,8 млн рублей за распространение VPN
- 25.02 - Российский рынок ПО превысил 800 млрд рублей — облака, ИИ и ИБ стали ключевыми драйверами роста
- 25.02 - Mozilla выпустила Firefox 148 с тем самым выключателем всех ИИ-функций
- 25.02 - Windows 11 стала быстрее работать и выходить из сна с новым обновлением — есть и другие улучшения
- 19.02 - VK внедрила в поиск визуально‑языковую ИИ-модель для точных ответов и ускорения разработки технологий
- 19.02 - Российские операторы по-разному «морозят» SIM-карты после роуминга — многие остаются без интернета на сутки
- 19.02 - Google Gemini научился генерировать 30-секундные музыкальные треки по описанию и картинкам
- 19.02 - Firefox вот-вот лишится поддержки Windows 7 и 8 — Mozilla советует срочно обновить ОС
- 17.02 - «Яндекс» захватил 69 % поискового рынка России — выручка пробила 1,4 трлн рублей, а прибыль взлетела на 80 % за квартал
- 17.02 - Московский суд взыскал с Google Ireland 160 млрд рублей по делу о банкротстве ООО «Гугл»
- 17.02 - Apple проведёт презентацию 4 марта — ожидаются iPhone 17e, новые Mac и iPad
Архив новостей
|
 |
 |
 |
|
|
 |
 |
 |
|
|
|
 |
 |
|