Пользовательскиe sql-скрипты: различия между версиями

Материал из Alta-Soft Wikipedia
Перейти к навигации Перейти к поиску
(Новая страница: «== Общие сведения == Пользовательские скрипты - это файлы *.sql, которые содержат текст с наб…»)
 
 
Строка 1: Строка 1:
 
== Общие сведения ==
 
== Общие сведения ==
  
Пользовательские скрипты - это файлы *.sql, которые содержат текст с набором SQL-команд. Данные файлы следует размещать в папке ARTICUL\Addons - для платформонезависимых скриптов, ARTICUL\Addons\mssql - для MSSQL-скриптов, ARTICUL\Addons\sqlite - для SQLite-скриптов, ARTICUL\Addons\msacc - для MSAccess-скриптов. Артикул активирует меню "Сервис/Выполнить пользовательский скрипт", если при запуске обнаруживает соответствующие файлы. Синтаксис и оформление таких скриптов производится также, как в окне "Выполнение SQL команд" (меню "Сервис/Выполнить SQL запрос", Ctrl+Alt+S).
+
Пользовательские скрипты - это файлы *.sql, которые содержат текст с набором SQL-команд. Данные файлы следует размещать в папке ARTICUL\Addons - для платформонезависимых скриптов, ARTICUL\Addons\mssql - для MSSQL-скриптов, ARTICUL\Addons\sqlite - для SQLite-скриптов, ARTICUL\Addons\msacc - для MSAccess-скриптов. При наличии одноименных файлов в ARTICUL\Addons и подпапке текущего типа БД приоритет будет у последней. Артикул активирует меню "Сервис/Выполнить пользовательский скрипт", если при запуске обнаруживает хотя бы один такой файл. Синтаксис и оформление таких скриптов производится также, как в окне "Выполнение SQL команд" (меню "Сервис/Выполнить SQL запрос", Ctrl+Alt+S). После выполнения скрипта данные на закладке "Инвойс" главного окна Артикула будут полностью обновлены для немедленого отображения возможных внесенных в инвойс изменений.
  
 
== Оформление ==
 
== Оформление ==
  
Оформление Для MSSQL и SQLite поддерживаются специальные комментарии, однако для MSAccess никакие комментарии не поддерживаются:   
+
Для MSSQL и SQLite поддерживаются специальные комментарии, однако для MSAccess никакие комментарии не поддерживаются:   
  
* Caption - определяет наименование запускающего данный скрипт пункта меню:
+
* '''Caption''' - определяет наименование запускающего данный скрипт пункта меню:
-- Caption: "Наименование"=>"Примечание3"(для выделенных товаров)
+
<source lang=sql>
* Hint - определяет подсказку запускающего данный скрипт пункта меню:
+
-- Caption: "Наименование"=>"Примечание3" (для выделенных товаров)
 +
</source>
 +
* '''Hint''' - определяет подсказку запускающего данный скрипт пункта меню:
 +
<source lang=sql>
 
-- Hint: Перенос значения колонки "Наименование" в колонку "Примечание3"
 
-- Hint: Перенос значения колонки "Наименование" в колонку "Примечание3"
 +
</source>
  
 
Если скрипт не содержит специальных комментариев, то наименование пункта меню будет образовано из имени файла без расширения.
 
Если скрипт не содержит специальных комментариев, то наименование пункта меню будет образовано из имени файла без расширения.
 
 
   
 
   
 
== Синтаксис ==
 
== Синтаксис ==
 
    
 
    
Допускается использовать следующие входные параметры:
+
В тексте запросов допускается использовать (неограниченное кол-во раз) следующие входные параметры:
 +
 
 +
* ''':sInvNum''' - номер текущего инвойса.
 +
* ''':nPOListID''' - идентификатор текущей/выделенной записи товара в инвойсе, если скрипт содержит данный параметр и на закладке "Инвойс" выделено несколько товаров, то скрипт будет выполнен один раз для каждого выделенного товара.
 +
* ''':nPOListWhere''' - текущий набор условий фильтров для товаров инвойса.
  
* :sInvNum - номер текущего инвойса.
+
Перед непосредственным выполнением скрипта каждый такой параметр будет заменен на соотв-щую sql-константу (строковую или числовую), либо целое sql-выражение, как в случае с :nPOListWhere.
* :nPOListID - идентификатор текущей/выделенной записи товара в инвойсе, если скрипт содержит данный параметр и на закладке "Инвойс" выделено несколько товаров, то скрипт будет выполнен один раз для каждого выделенного товара.
 
* :nPOListWhere - текущий набор условий фильтров для товаров инвойса.
 
  
 
Рекомендуется заканчивать каждое SQL-предложение символом ";". Не смотря на то что в большинстве случаев будет работать и без этого, но иногда могут возникнуть проблемы. Для MSAccess еще и каждое SQL-предложение должно находится на отдельной строке, за которой следует строка, которая содержит только "GO".
 
Рекомендуется заканчивать каждое SQL-предложение символом ";". Не смотря на то что в большинстве случаев будет работать и без этого, но иногда могут возникнуть проблемы. Для MSAccess еще и каждое SQL-предложение должно находится на отдельной строке, за которой следует строка, которая содержит только "GO".
Строка 29: Строка 34:
 
* MSSQL:
 
* MSSQL:
  
-- Caption: "Наименование"=>"Примечание3"(для выделенных товаров)<BR>
+
<source lang=sql>
-- Hint: Перенос значения колонки "Наименование" в колонку "Примечание3"<BR>
+
-- Caption: "Наименование"=>"Примечание3" (для выделенных товаров)
update POList set Memo3=Name where ID=:nPOListID;<BR>
+
-- Hint: Перенос значения колонки "Наименование" в колонку "Примечание3"
 +
update POList set Memo3=Name where ID=:nPOListID;
 
update POList set Memo3='Из колонки Наименование:'+Memo3 where ID=:nPOListID;
 
update POList set Memo3='Из колонки Наименование:'+Memo3 where ID=:nPOListID;
 +
</source>
  
 
* SQLite:
 
* SQLite:
  
-- Caption: "Наименование"=>"Примечание3"(для выделенных товаров)<BR>
+
<source lang=sql>
-- Hint: Перенос значения колонки "Наименование" в колонку "Примечание3"<BR>
+
-- Caption: "Наименование"=>"Примечание3" (для выделенных товаров)
update POList set Memo3=Name where ID=:nPOListID;<BR>
+
-- Hint: Перенос значения колонки "Наименование" в колонку "Примечание3"
update POList set Memo3='Из колонки Наименование:'||Memo3 where ID=:nPOListID;<BR>
+
update POList set Memo3=Name where ID=:nPOListID;
 +
update POList set Memo3='Из колонки Наименование:'||Memo3 where ID=:nPOListID;
 +
</source>
  
 
* MSAccess:
 
* MSAccess:
  
update POList set Memo3=Name where ID=:nPOListID;<BR>
+
<source lang=sql>
GO<BR>
+
update POList set Memo3=Name where ID=:nPOListID;
 +
GO
 
update POList set Memo3='Из колонки Наименование:'+Memo3 where ID=:nPOListID;
 
update POList set Memo3='Из колонки Наименование:'+Memo3 where ID=:nPOListID;
 +
</source>
  
 
[[Категория:Артикул]]
 
[[Категория:Артикул]]

Текущая версия на 20:09, 4 сентября 2015

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

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

Оформление

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

  • Caption - определяет наименование запускающего данный скрипт пункта меню:
-- Caption: "Наименование"=>"Примечание3" (для выделенных товаров)
  • Hint - определяет подсказку запускающего данный скрипт пункта меню:
-- Hint: Перенос значения колонки "Наименование" в колонку "Примечание3"

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

Синтаксис

В тексте запросов допускается использовать (неограниченное кол-во раз) следующие входные параметры:

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

Перед непосредственным выполнением скрипта каждый такой параметр будет заменен на соотв-щую sql-константу (строковую или числовую), либо целое sql-выражение, как в случае с :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;