Предыдущая версия справа и слева
Предыдущая версия
Следующая версия
|
Предыдущая версия
|
programmirovanie_v_dx:sql_zaprosy [2018/04/01 13:24] jurist23rus [Редактор SQL-выражений] |
programmirovanie_v_dx:sql_zaprosy [2019/03/14 19:02] 7bit |
====== SQL-запросы ====== | ====== 24. SQL-запросы ====== |
| |
Синтаксис SQL-выражений в DataExpress (DX-SQL) почти такой же, как в Firebird-SQL. | Синтаксис SQL-выражений в DataExpress (DX-SQL) почти такой же, как в Firebird-SQL. |
with SQLSelect('select id, [название] from [запчасти] order by [название]') do | with SQLSelect('select id, [название] from [запчасти] order by [название]') do |
begin | begin |
while not EOF do | while not EOF do |
begin | begin |
// Какие-то действия | // Какие-то действия |
… | … |
MoveNext; | MoveNext; |
end; | end; |
Free; | Free; |
end; | end; |
</code> | </code> |
Красным выделено, данные какой формы будут изменяться и поля, которые будут изменены. | Красным выделено, данные какой формы будут изменяться и поля, которые будут изменены. |
| |
Кроме того класс автоматически определяет генератор, который связан с формой. Так что при добавлении записи, id будет автоматически заполнен. Обращение к генератору тоже занимает какое-то время, поэтому для ускорения массового добавления записей вы можете устанавливать id вручную, без помощи генератора. Для этого установите свойство UseGenerator в False. Правда, вам все равно придется корректировать генератор для обеспечения нормальной работы формы. Это делается процедурой SQLExecute. | Класс автоматически определяет генератор, который связан с формой. Свойство UseGenerator определяет как будет использован генератор: |
| * ugNotUse - генератор не используется, id записи задается вручную; |
| * ugAppend - id записи возвращается генератором при каждом добавлении записи; |
| * ugApplyUpdates - перед сохранением изменений в базу значение генератора увеличивается на количество добавленных записей, а id новых записей заполняется значениями. |
| |
===== Выполнение произвольных SQL-инструкций ===== | ===== Выполнение произвольных SQL-инструкций ===== |
| |
Процедура SQLExecute позволяет выполнить произвольный SQL-скрипт, передаваемый в параметр SQL. | Процедура SQLExecute выполняет произвольный SQL-скрипт, передаваемый в параметре SQL. |
| |
''procedure SQLExecute(const SQL: String)'' | ''procedure SQLExecute(const SQL: String)'' |
Редактор поможет вам составить выражение SQL. Откройте редактор:\\ | Редактор поможет вам составить выражение SQL. Откройте редактор:\\ |
| |
{{ :programmirovanie_v_dx:ris_18.jpg?nolink&600 |Рис 18}}\\ | {{ :programmirovanie_v_dx:ris_18.jpg?nolink&600 |Кнопка редактора на панели инструментов}}\\ |
| |
{{ :programmirovanie_v_dx:ris_19.png?nolink&600 |Рис 19}} \\ | {{ :programmirovanie_v_dx:ris_19.png?nolink&600 |Редактор SQL-выражений}} \\ |
| |
Прямо в редакторе можно проверить выражение. Результат работы запроса отображается внизу. Нажмите вторую кнопку на панели инструментов, чтобы скопировать выражение в буфер обмена. Теперь вы можете его вставить в скрипт. Строки обрамляются в кавычки и соединяются символом''+''. Можно сделать наоборот, вставить скопированный текст SQL из скрипта в редактор. Для этого нажмите третью кнопку на панели инструментов. Лишние кавычки и символы ''+'' удаляются. | Прямо в редакторе можно проверить выражение. Результат работы запроса отображается внизу. Нажмите вторую кнопку на панели инструментов, чтобы скопировать выражение в буфер обмена. Теперь вы можете его вставить в скрипт. Строки обрамляются в кавычки и соединяются символом''+''. Можно сделать наоборот, вставить скопированный текст SQL из скрипта в редактор. Для этого нажмите третью кнопку на панели инструментов. Лишние кавычки и символы ''+'' удаляются. |