Пользовательскиe sql-скрипты

Материал из Alta-Soft Wikipedia
Версия от 18:53, 4 сентября 2015; Kislakov (обсуждение | вклад) (Новая страница: «== Общие сведения == Пользовательские скрипты - это файлы *.sql, которые содержат текст с наб…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Общие сведения

Пользовательские скрипты - это файлы *.sql, которые содержат текст с набором SQL-команд. Данные файлы следует размещать в папке ARTICUL\Addons - для платформонезависимых скриптов, ARTICUL\Addons\mssql - для MSSQL-скриптов, ARTICUL\Addons\sqlite - для SQLite-скриптов, ARTICUL\Addons\msacc - для MSAccess-скриптов. Артикул активирует меню "Сервис/Выполнить пользовательский скрипт", если при запуске обнаруживает соответствующие файлы. Синтаксис и оформление таких скриптов производится также, как в окне "Выполнение SQL команд" (меню "Сервис/Выполнить SQL запрос", Ctrl+Alt+S).

Оформление

Оформление Для MSSQL и SQLite поддерживаются специальные комментарии, однако для MSAccess никакие комментарии не поддерживаются:

  • Caption - определяет наименование запускающего данный скрипт пункта меню:

-- Caption: "Наименование"=>"Примечание3"(для выделенных товаров)

  • Hint - определяет подсказку запускающего данный скрипт пункта меню:

-- Hint: Перенос значения колонки "Наименование" в колонку "Примечание3"

Если скрипт не содержит специальных комментариев, то наименование пункта меню будет образовано из имени файла без расширения.


Синтаксис

Допускается использовать следующие входные параметры:

  • :sInvNum - номер текущего инвойса.
  • :nPOListID - идентификатор текущей/выделенной записи товара в инвойсе, если скрипт содержит данный параметр и на закладке "Инвойс" выделено несколько товаров, то скрипт будет выполнен один раз для каждого выделенного товара.
  • :nPOListWhere - текущий набор условий фильтров для товаров инвойса.

Рекомендуется заканчивать каждое SQL-предложение символом ";". Не смотря на то что в большинстве случаев будет работать и без этого, но иногда могут возникнуть проблемы. Для MSAccess еще и каждое SQL-предложение должно находится на отдельной строке, за которой следует строка, которая содержит только "GO".

Примеры

  • MSSQL:

-- Caption: "Наименование"=>"Примечание3"(для выделенных товаров)
-- Hint: Перенос значения колонки "Наименование" в колонку "Примечание3"
update POList set Memo3=Name where ID=:nPOListID;
update POList set Memo3='Из колонки Наименование:'+Memo3 where ID=:nPOListID;

  • SQLite:

-- Caption: "Наименование"=>"Примечание3"(для выделенных товаров)
-- Hint: Перенос значения колонки "Наименование" в колонку "Примечание3"
update POList set Memo3=Name where ID=:nPOListID;
update POList set Memo3='Из колонки Наименование:'||Memo3 where ID=:nPOListID;

  • MSAccess:

update POList set Memo3=Name where ID=:nPOListID;
GO
update POList set Memo3='Из колонки Наименование:'+Memo3 where ID=:nPOListID;