Contacts     ->      ICQ:    699 512 265,         E-Mail: CerebroSQL@gmail.com

  • YouTube Social  Icon
 

Хинты и процедуры редактора запросов

Хинты - это подсказки редактору запросов включающие/отключающие ту или иную функцию программы.

  • print_on - включить вывод информации в окно Output текущего листа редактора запросов.

При этом информация не отображается в сетке, программа открывает курсор, обходит весь набор данных и выводит информацию в поле, после закрывает курсор

  • print_off - отключить вывод информации в окно Output текущего листа

  • clear_out - очистить окно Output

  • colname_on - Показывать имена колонок выводимых данных

  • colname_off - Не показывать имена колонок выводимых данных (по умолчанию)

  • delim() - добавить разделитель указанный в скобках для строк в выводе. В виде разделителя может использоваться любой знак, строка, цифры

  • cstr('') - Вывести строку в скобках. Строка должна быть обрамлена кавычками

  • qpr_on - отображать в выводе текст выполненного запроса

  • qpr_off - не отображать в выводе текст выполненного запроса (по умолчанию)

  • snum_on - добавить нумерацию строк в выводе

  • snum_off - не показывать нумерацию строк в выводе (по умолчанию)

  • rdelim_on - отображать разделитель колонок в выводе

  • rdelim_off - не отображать разделитель колонок в выводе (по умолчанию)

Процедуры редактора запросов

 
openlist('<List name>','<Query text (select only!)>')

Параметры процедуры

1. Имя листа. Имя листа может быть указано в любом регистре. Имя это текст вида "list<номер>"

2. Запрос. Разрешено использовать в данном параметре только конструкции "select ..."!!!

При этом, текст запроса может быть много строчным.

Процедура служит для выполнения запросов используя соединение другого листа. При этом, типы листов могут не совпадать. Процедура поддерживает работу со всеми типами СУБД с которыми работает программа(Oracle,PostrgreSQL, MySQL и базами SQLite).

Процедура может использоваться отдельно, для выполнения запросов используя подключение другого листа

Пример использования хинтов для формирования отчета

Так и в составе конструкций "create table ... as openlist" и  "insert into ... openlist"

 
Требования к синтаксису и описание структуры команды "create table <tablename> as openlist('','')"

При использовании данной конструкции программа автоматически на основе имен возвращаемых колонок создает таблицу в базе к которой подключен текущий лист. При этом все поля в данной таблице будут иметь тип Text (varchar2 - для СУБД Oracle)

При выполнении процедуры все шаги ее работы отображаются на вкладке "Messages" текущего листа, так же программа формирует 2 файла на диске в папке ".\tmp\lists":

  • openlist_<date_time>.log - файл содержит лог работы процедуры (messages)

  • openlist_<date_time>.query - файл содержит текст команд SQL при выполнении которых произошла ошибка (если при переносе строк ошибок не возникло, файл не формируется)

Пример: перенос данных представления dba_tablespaces из СУБД Oracle в СУБД MySQL

Требования к синтаксису и описание структуры команды "create table <tablename> (Column list) as openlist('','')"

При использовании данной конструкции предполагается, что до ключевой фразы "as openlist" указан полный код на создание таблицы со всеми необходимыми параметрами.

Программа выполняет указанный код и в случаи успешности его выполнения запускает механизм переноса строк.

При использовании указанного синтаксиса, при переносе данных учитывается тип колонок (в текущей версии не полностью, не переносятся поля типа BLOB, они вставляются как строка, дата так же вставляется как строка)

Пример

Требования к синтаксису и описание структуры команды "insert into <tablename> as openlist('','')"

При использовании данной конструкции предполагается, что вставка данный будет осуществлена во все строки таблицы и соответственно, программа определяет имена колонок в таблице назначения, тип данный и производит перенос данных в таблицу

ВАЖНО: имена колонок в таблице назначения и имена полей из запроса должны совпадать!

Пример

Требования к синтаксису и описание структуры команды "insert into <tablename> (column list) as openlist('','')"

При использовании данного синтаксиса, программа извлекает имена колонок, проверяет их тип и производит вставку данных строго в указанные колонки с соблюдением типа данных (на поддерживаются поля типа BLOB, а поля типа data переносятся как String)

ВАЖНО: имена колонок в таблице назначения и имена полей из запроса должны совпадать!

Пример: