Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
programmirovanie_v_dx:sql_zaprosy [2018/04/01 13:24]
jurist23rus [Редактор SQL-выражений]
programmirovanie_v_dx:sql_zaprosy [2019/03/14 19:02]
7bit
Строка 1: Строка 1:
-====== SQL-запросы ======+====== 24. SQL-запросы ======
  
 Синтаксис SQL-выражений в DataExpress (DX-SQL) почти такой же, как в Firebird-SQL.  Синтаксис SQL-выражений в DataExpress (DX-SQL) почти такой же, как в Firebird-SQL. 
Строка 34: Строка 34:
 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>
Строка 63: Строка 63:
 Красным выделено, данные какой формы будут изменяться и поля, которые будут изменены. Красным выделено, данные какой формы будут изменяться и поля, которые будут изменены.
  
-Кроме того класс автоматически определяет генератор, который связан с формой. Так что при добавлении записи, 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)''
Строка 85: Строка 88:
 Редактор поможет вам составить выражение 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 из скрипта в редактор. Для этого нажмите третью кнопку на панели инструментов. Лишние кавычки и символы ''+'' удаляются.