<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CUcCQXsyeCp7ImA9WhRaE0U.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946</id><updated>2012-02-16T13:04:20.590+04:00</updated><category term="Crystal Reports" /><category term="VBA" /><category term="ESC/Connectivity" /><category term="MSSQL" /><category term="Модуль PC" /><category term="поиско SEO мания" /><category term="Скринкаст" /><category term="Модуль SC" /><category term="Разное" /><category term="Модуль GL" /><category term="БД ERP iScala" /><category term="Стандартные отчеты" /><category term="Модуль SL" /><category term="Внешние отчеты" /><category term="UDDB" /><title>ScalaHelp.RU</title><subtitle type="html">Блог о практических вопросах работы с EPR системой Scala</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.scalahelp.ru/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>35</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/scalahelpru" /><feedburner:info uri="scalahelpru" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>scalahelpru</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry gd:etag="W/&quot;D08GQXk9fyp7ImA9WhRWFko.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-8681758747586602557</id><published>2012-01-04T15:17:00.000+04:00</published><updated>2012-01-04T15:17:00.767+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-04T15:17:00.767+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="БД ERP iScala" /><category scheme="http://www.blogger.com/atom/ns#" term="MSSQL" /><title>Триггера</title><content type="html">На мой взгляд, нужно избегать использования триггеров, давая предпочтение другим способам кастомизации системы. Но все равно иногда обойтись без них не получается. Особенно плохо, если триггер висит на годозависимой таблице - при открытии нового года про них всегда забывают. Следующий скрипт выводит список всех триггеров в текущей базе данных:
&lt;br /&gt;
&lt;pre class="brush:sql"&gt;select name [Trigger Name], object_name(parent_obj) [Table Name]
from sysobjects
where type = 'TR'
order by 2
&lt;/pre&gt;
&lt;br /&gt;
Остается проверить какие из триггеров привязаны к годозависимым таблицам и создать их.&lt;br /&gt;
Кстати, иногда удобнее получить скрипт триггера с помощью SQL:
&lt;br /&gt;
&lt;pre class="brush:sql"&gt;sp_helptext TriggerName
&lt;/pre&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-8681758747586602557?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/o_X_dTnQpb0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/8681758747586602557/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2012/01/blog-post.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/8681758747586602557?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/8681758747586602557?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/o_X_dTnQpb0/blog-post.html" title="Триггера" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2012/01/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUBRXgzeip7ImA9WxBbFkU.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-1707353239400171396</id><published>2010-03-15T23:00:00.001+03:00</published><updated>2010-03-15T23:00:54.682+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-15T23:00:54.682+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="поиско SEO мания" /><title>iScala Rapidshare</title><content type="html">&lt;p&gt;Очередной раз поражаюсь просматривая статистику – что же ищут люди! Ну, правда, как они могли придумать такие запросы.&lt;/p&gt;  &lt;p&gt;Обещаю начать новую рублику. Назову ее &lt;strong&gt;&lt;a href="http://blog.scalahelp.ru/search/label/%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%BE%20SEO%20%D0%BC%D0%B0%D0%BD%D0%B8%D1%8F"&gt;поиско SEO мания&lt;/a&gt;&lt;/strong&gt;. В общем буду делать статьи с заголовком из поисковой статистики. Целью поста будет либо – почему здесь не найти того, что ищете, либо, почему я, такой дурак, не пишу об этом. Признаюсь , что основной целью будет как раз SEO оптимизация.&lt;/p&gt;  &lt;p&gt;Так вот, тема номера сегодня – нет смысла искать iScala для свободного скачивания. Во-первых, ничем это не поможет, система сложная и настроить под свои нужны с наскоку ее не получится. Да, это не добавляет плюсов системе, да, она не так проста, как хотелось бы. Жаль, но это действительно так.&lt;/p&gt;  &lt;p&gt;В общем ответ на ваш запрос – вы без проблем получите систему для ознакомления, вам ее даже доставят за счет производителя, но дальше либо забудьте, либо платите. Вот такая вот горечь жизни :)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-1707353239400171396?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/q3OOTR0yE3k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/1707353239400171396/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2010/03/iscala-rapidshare.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/1707353239400171396?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/1707353239400171396?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/q3OOTR0yE3k/iscala-rapidshare.html" title="iScala Rapidshare" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2010/03/iscala-rapidshare.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUESXY4fSp7ImA9WxBSFUQ.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-777777827971656898</id><published>2009-12-23T19:31:00.001+03:00</published><updated>2009-12-23T20:43:28.835+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-23T20:43:28.835+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ESC/Connectivity" /><title>Загрузка курсов валют</title><content type="html">&lt;p&gt;Каждый день требуется загрузить в систему курсы валют. Операция простая, но достаточно муторная, плюс ошибки ввода и забывчивость пользователей.&lt;/p&gt;  &lt;p&gt;В качестве источника данных по курсам валют можно использовать специальный веб-сервис Центрального Банка России. &lt;a title="http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx" href="http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx"&gt;http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Дальше я пробегусь по вариантам автоматизации задачи в Scala.&lt;/p&gt;  &lt;h4&gt;Epicor Service Connect (ESC)&lt;/h4&gt;  &lt;p&gt;Сразу скажу, что использование ESC для данной задачи – самое правильное решение, т.к. все делается исключительно с использованием стандартной функциональности, никакой самодеятельности. Правда, далеко не у всех есть в лицензии эта опция.&lt;/p&gt;  &lt;p&gt;Лирическое отступление: если у вас есть сопряжение с другими системами, если требуется создавать документы или делать какие-то операции в Скале автоматически, то стоит внимательно посмотреть на функциональность ESC.&lt;/p&gt;  &lt;p&gt;Итак. Регистрируем сервис ЦБ командой Add Service Reference. Создаем новое Workflow, которое будет обновлять курсы. Добавляем канал для оповещения по e-mail. Создаем новый Business Event Type, сразу привязывая его к созданному ранее Workflow. Добавляем расписание – Scheduled Events.&lt;/p&gt;  &lt;p&gt;Во всей этой цепочке самое сложное – Workflow. Сложность возникает из-за того, что сделать все нужные преобразования в визуальном режиме не получится, приходится разбираться с веселыми языком XSLT. &lt;a href="https://sites.google.com/a/apicosoft.ru/apicosoftru/storage/ExchRates.zip"&gt;В качестве основы можете использовать мой вариант&lt;/a&gt; (Огромное спасибо Дмитрию Осипову за помощь). Он сделан для версии iScala 2.3 SR1. В архиве копия каталога Workflow, плюс шаблоны e-mail.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_Igmrj6OQOXY/SzJF6npEKkI/AAAAAAAAAJA/sC6YqAVYZ3Q/s1600-h/ExchRates4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ExchRates" border="0" alt="ExchRates" src="http://lh5.ggpht.com/_Igmrj6OQOXY/SzJF7Io2J0I/AAAAAAAAAJE/RqU0gi-DCWM/ExchRates_thumb2.png?imgmax=800" width="737" height="209" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Date Request / Get Latest Date – запрос последней даты, на которую объявлены курсы, метод GetLatestDate &lt;/li&gt;    &lt;li&gt;Request Rates / Get Exchange Rates – запрос курсов, метод GetCursOnDateXML &lt;/li&gt;    &lt;li&gt;Update Rates / Exchange Rates In – вычисление производных курсов и обновление курсов &lt;/li&gt;    &lt;li&gt;Send OK / Send Fail – оповещение пользователей об успехе / ошибке &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;SQL Server Integration services&lt;/h4&gt;  &lt;p&gt;Предположим, что ESC у вас нет. Тогда есть неплохой вариант – в качестве бесплатного приложения к MS SQL мы получаем службу Integration Services. С помощью этих сервисов можно получить данные с сайта ЦБ и записать в БД. Минус этого решение в том, что придется самому писать данные в таблицу курсов минуя Скалу. Сам я такой вариант не делал, но пример решения, которое подойдет в качестве основы, &lt;a href="http://scherbinin.blog.ru/58439859.html"&gt;можно посмотреть здесь&lt;/a&gt;. &lt;/p&gt;  &lt;h4&gt;SQL Server&lt;/h4&gt;  &lt;p&gt;Следующий вариант – нет ESC, нет Integration Services. Это тоже не тупик. В TSQL есть возможность создавать объекты OLE Automation. Эта возможность отключена по умолчанию, т.к. считается потенциально опасной, для включения нужно выполнить следующий скрипт:&lt;/p&gt;  &lt;pre class="brush:sql"&gt;&lt;br /&gt;sp_configure 'show advanced options', 1;&lt;br /&gt;GO&lt;br /&gt;RECONFIGURE;&lt;br /&gt;GO&lt;br /&gt;sp_configure 'Ole Automation Procedures', 1;&lt;br /&gt;GO&lt;br /&gt;RECONFIGURE;&lt;br /&gt;GO&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;В качестве такого объекта можно использовать MSXML2.DOMDocument, с помощью него можно скачать XML с курсами с того же сайта ЦБ, разобрать его и сохранить курсы в БД. Такой вариант использовался у одного из клиентов, делалось решение на основе &lt;a href="http://www.sql.ru/forum/actualthread.aspx?bid=1&amp;amp;tid=136728&amp;amp;pg=1#1093353"&gt;этой дискуссии на sql.ru&lt;/a&gt;. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-777777827971656898?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/vVZHe27VfYQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/777777827971656898/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2009/12/blog-post.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/777777827971656898?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/777777827971656898?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/vVZHe27VfYQ/blog-post.html" title="Загрузка курсов валют" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_Igmrj6OQOXY/SzJF7Io2J0I/AAAAAAAAAJE/RqU0gi-DCWM/s72-c/ExchRates_thumb2.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2009/12/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQCQHw4fip7ImA9WxBSF08.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-8631447376058460281</id><published>2009-11-28T10:00:00.001+03:00</published><updated>2009-12-25T09:59:21.236+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-25T09:59:21.236+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="БД ERP iScala" /><category scheme="http://www.blogger.com/atom/ns#" term="Разное" /><title>iScala Database Structure</title><content type="html">Разбирался с созданием веб-приложений на основе &lt;a href="http://code.google.com/appengine/"&gt;Google App Engine&lt;/a&gt;. В качестве примера сделал простую страничку, показывающую структуру базы данных Scala. Получилось достаточно забавно, так что я решил все это выложить. Расположено приложение по адресу &lt;a href="http://db.apicosoft.ru/"&gt;http://db.apicosoft.ru/&lt;/a&gt; . &lt;br /&gt;
Была еще идея добавить возможность оставлять комментарии во всех разделах(объяснение для чего нужен объект, примеры кода запросов...), но сразу решил не делать, посмотрим нужно ли вообще это. Тем более, что есть куча людей, считающих такого рода информацию чуть ли не секретной - злобный пользователь прознает и залезет куда не надо. &lt;br /&gt;
&lt;strong&gt;UPDATE 24.12.2009&lt;/strong&gt;: Оказалось, что я не совсем правильно скачал структуру (считал, что актуальная информация в ScalaSystem.mdb, а нужно было брать из ScaConvertDB.mdb). Поправил. Заодно обнаружил&amp;nbsp;дополнительную информацию в ScaConvertDB. Как вам, например, такой комментарий к полю &lt;a href="http://db.apicosoft.ru/SY/SY24#fields"&gt;SY24001&lt;/a&gt;:&lt;br /&gt;
&lt;pre&gt;Code Type Identifies the type of code: 
Code - Description (Module(s) : Length) 

A1 - Communication channel (SY : 2) 
A2 - IBAN (SY : 2) 
A3 - Common address (SY : 2) 
A4 - Common address sub-type (SY : 2) 
A5 - Address entries (SY : 2) 
AA - Journal codes (GL : 6) 
AB - Cash books (GL : 6) 
AT - Tier (GL : 2) 
AX - Cash office (GL : 8) 
AY - Reason codes (GL : 2) 
AZ - Compound Category (GL : 2) 

A0 - Asset group (GL : 10) 
AF - Category A (GL : 4) 
AG - Category B (GL : 4) 
AH - Location (GL : 15) 
AI - Engineer (GL : 25) 
AJ - Disposal code (GL : 4) 
A6 - User defined field 1 (GL : 15) 
A7 - User defined field 2 (GL : 10) 
A8 - User defined field 3 (GL : 10) 
A9 - User defined field 4 (GL : 5) 
AC - Insurance company (GL : 25) 
AD - Insurance category (GL : 20) 
AE - Business transaction code (GL : 3) 
AK - Hospitality simulation transactions (GL : 2) 

BA - Post codes (SL : 10) 
BB - Categories (SL : 4) 
BC - Districts (SL : 2) 
BD - Advertising areas (SL : 2) 
BE - Area codes (SL : 4) 
BF - Trade codes (SL : 5) 
BG - Discount codes (SL : 2) 
BH - Accrual codes (SL : 2) 
BI - Commission codes (SL : 2) 
BJ - Bank codes (SL : 10) 
BK - Salesmen (SL/ST/PR : 3) 
BL - Field engineers (SL : 4) 
BM - Country codes (SL : 3) 
BN - Statistical codes (SC : 13) 
BO - Export codes (SL : 1) 
BP - Payment codes (SL : 2) 
BQ - Accounting code customer (SL : 2) 
BT - Billing terms (SL/PL : 4) 
BS - Document type (SL/PL : 3) 
BV - Jurisdiction code (SY/SL/PL : 2) 

CA - Post codes (PL : 10) 
CB - Categories (PL : 4) 
CC - Country codes (PL : 3) 
CD - Bank codes (PL : 10) 
CE - Sales tax codes (PL : 2) 
CF - Central bank codes (PL : 2) 
CG - Authorization codes (PL : 5) 
CH - Organization codes (PL : 1) 
CI - Accounting code supplier (PL : 2) 
CJ - Supplier type (PL : 1) 

DA - Purchaser (MP/PC/SC : 3) 
DC - Document codes (SY : 1) 

EA - Skill codes (HR/SM : 3) 
EB - Engineer categories (HR/SM : 4) 
EC - Price codes (HR/SM/PR : 2) 
ED - Order status (SM : 2) 
EE - Weighted priorities (OR/PR/SM : 1) 
EF - Order priorities (OR/PR/SM : 1) 
EG - Analysis codes (SM : 15) 
EH - Issue status (SM : 6) 
EI - Return status (SM : 6) 
EJ - Work schedule codes (HR/SM/PR : 6) 
E1 - Error code (SM : 8) (Code EK replaced with E1) 
EL - Error type (SM : 2) 
EM - Error category (SM : 4) 
EN - Status (SM : 2) 
EO - Note category (SM : 2) 
EP - Key word (SM : 15) 
EQ - Note code (SM : 2) 
ER - Price calculation profile (SM : 10) 
EX - Service order accounting codes order (SM : 2) 
EY - Service order accounting codes activ (SM : 2) 
EZ - Service contract accounting codes (SM : 2 
E0 - Type of days (SM : 1) 
E2 - Customer priority codes (SL : 1) 

F0 - Accounting code PUR (AM : 2) 
F1 - Accounting code TAX (AM : 2) 
F2 - Accounting code PLA (AM : 2) 
F3 - Accounting code SAL (AM : 2) 
F4 - Accounting code SCR (AM : 2) 
F5 - Accounting code REV (AM : 2) 
F6 - Accounting code ETX (AM : 2) 
F7 - Accounting code FUS (AM : 2) 
F8 - Accounting code ICT (AM : 2) 
F9 - Accounting code PLP (AM : 2) 
FA - Accounting code ACT (AM : 2) 
FB - Accounting code OLD (AM : 2) 
FC - Accounting code TRA (AM : 2) 
FD - Accounting code STO (AM : 2) 
FE - Accounting code REA (AM : 2) 
FF - Accounting code SFA (AM : 2) 
(FF - FP - Reserved for Asset Transaction Accounting codes) 
(F* - Reserved for Asset Management module) 

IA - Query queues (SC : 1) 
IB - Product groups (SC : 4) 
IC - Article status (SC : 1) 
ID - Discount codes (SC : 2) 
IE - Accounting codes (SC : 2) 
IF - Maintenance codes (SC : 1) 
IG - Service levels (SC : 1) 
IH - Service priority (SC : 1) 
II - Product categories (SC : 10) 
IJ - Budget types (SC : 2) 
IK - Extended product group (SC : 20) 
IL - Price list (SC/PR/OR/PC : 2) 
IM - Batch status codes (SC : 1) 
IN - Cost types (SC : 2) 
IQ - User defined field 1 (SC : 10) 
IR - User defined field 2 (SC : 10) 
IS - User defined field 3 (SC : 8) 
IT - User defined field 4 (SC : 6) 
IU - User defined field 5 (SC : 4) 
IV - User defined field 6 (SC : 4) 
IW - User defined field 7 (SC : 2) 
IX - User defined field 8 (SC : 2) 
IY - User defined field 9 (SC : 2) 
IZ - User defined field 10 (SC : 2) 
I1 - Cycle counting reason (SC : 4) 
I2 - Storage type (SC : 1) 
I3 - Bin type (SC : 3) 
I4 - Bin location rule type (SC : 4) 

GA - Serial number Standard transaction types (SC : 1) 
GB - Serial number Incident Codes (SC : 4) 
GC - Serial number Priority Codes (SC : 4) 
GD - Serial number Action Codes (SC : 4) 
GE - Serial number Status Codes (SC : 4) 
GH - QC Category (SC : 2) 
GF - Serial number User transaction types (SC : 3) 

HA - Cancellation code (OR : 4) 

MR - Customer request type (MA : 2) 

PA - Profession codes (PA : 4; HR/PR/SM : 6) 
PB - Education codes (PA : ) 
PC - Categories (PA : ) 
PD - Departments (PA : 5; HR/PR/SM : 15) 
PE - Community codes 1 (PA : 2) 
PF - Community codes 2 (PA : 2) 
PG - Community codes 3 (PA : 2) 
PH - Work places (PA : 5) 
PI - Person categories (PA : 1) 
PJ - Labour agreement areas (PA : 5) 
PK - Statistical codes 1 (PA : 1) 
PL - Statistical codes 2 (PA : 1) 
PM - Statistical codes 3 (PA : 1) 
PN - Statistical codes 4 (PA : 1) 
PO - Statistical codes 5 (PA : 1) 
PP - Statistical codes 6 (PA : 1) 
PQ - Vacation codes (PA : 4) 
PV - History categories (PA : 2) 

QA - Direct invoicing (DI : 2) 

R0 - User Field 1 (PR : 20) 
R1 - User Field 2 (PR : 10) 
R2 - User Field 3 (PR : 10) 
R3 - User Field 4 (PR : 8) 
R4 - User Field 5 (PR : 8) 
R5 - User Field 6 (PR : 4) 
R6 - User Field 7 (PR : 4) 
R7 - User Field 8 (PR : 2) 
R8 - User Field 9 (PR : 2) 
R9 - User Field 10 (PR : 1) 
RA - User DB Defined 1 (PR : 1-35) 
RB - User DB Defined 2 (PR : 1-35) 
RC - User DB Defined 3 (PR : 1-35) 
RD - User DB Defined 4 (PR : 1-35) 
RE - User DB Defined 5 (PR : 1-35) 
RF - User DB Defined 6 (PR : 1-35) 
RG - User DB Defined 7 (PR : 1-35) 
RH - User DB Defined 8 (PR : 1-35) 
RI - User DB Defined 9 (PR : 1-35) 
RJ - User DB Defined 10 (PR : 1-35) 
RK - (reserved) (PR : ) 
RL - Project category (PR : 4) 
RM - Project type (PR : 2) 
RN - Project status (PR : 1) (not used) 
RO - Project report codes (PR : 8) 
RP - Project budget codes (PR : 2) 
RQ - Project Text Group Description (PR : 1) 
RR - Project User Def Desc (PR : 1) 
RS - Accounting Codes Project (PR : 2) 
RT - Accounting codes Activity (PR : 2) 
RU - Activity cost category (PR : 1) 
RV - Activity gategory (PR : 10) 
RW - Project discount code (PR : 2) 
RX - Activity discount code (PR : 2) 
RY - Invoice sort code (PR : 2) 
RZ - (reserved) (PR : ) 

S* - (reserved) (PR : ) 
SB - IBAN Bank types (SY : 2) 
SE - IBAN Account entry (SY : 1) 
SF - IBAN Section filling (SY : 1) 
SG - IBAN Layout groups (SY : 1) 
ST - IBAN Section type (SY : 1) 
SV - IBAN Validation rule (SY : 3) 

TD - District codes (PL : 10) 

SA - Layout codes (GL : 11) 

WT - Withholding tax codes (PL : 4) 

X0 - Printer groups (SY : 2) 

Y0 - Header batch field 1 (SC/PC/OR/MP : 1) 
Y1 - Header batch field 2 (SC/PC/OR/MP : 1) 
Y2 - Header batch field 3 (SC/PC/OR/MP : 1) 
Y3 - Header batch field 4 (SC/PC/OR/MP : 1) 
Y4 - Header batch field 5 (SC/PC/OR/MP : 1) 
Y5 - Header batch field 6 (SC/PC/OR/MP : 1) 
Y6 - Header batch field 7 (SC/PC/OR/MP : 1) 
Y7 - Header batch field 8 (SC/PC/OR/MP : 1) 
Y8 - Header batch field 9 (SC/PC/OR/MP : 1) 
Y9 - Header batch field 10 (SC/PC/OR/MP : 1) 
YA - Batch user field 1 (SC/PC/OR/MP : 20) 
YB - Batch user field 2 (SC/PC/OR/MP : 10) 
YC - Batch user field 3 (SC/PC/OR/MP : 10) 
YD - Batch user field 4 (SC/PC/OR/MP : 8) 
YE - Batch user field 5 (SC/PC/OR/MP : 8) 
YF - Batch user field 6 (SC/PC/OR/MP : 4) 
YG - Batch user field 7 (SC/PC/OR/MP : 4) 
YH - Batch user field 8 (SC/PC/OR/MP : 2) 
YI - Batch user field 9 (SC/PC/OR/MP : 2) 
YJ - Batch user field 10 (SC/PC/OR/MP : 1) 

Z2 - Operation Code (SY/SL/PL : 10) 
Z3 - Cust/Supp Activity (SY/SL/PL : 10) 
Z4 - Invoice Type (SY/SL/PL : 10) 
Z5 - Brazilian Regions (SY/SL/PL : 10) 
Z6 - City Codes (SY/SL/PL : 10) 
Z7 - State Codes (SY/SL/PL : 10) 
Z8 - (reserved) 
Z9 - Taxable Situation (SY/SL/PL : 10) 
ZA - Type of Legal Entities (SY/SL/PL : 10) 
ZB - Service Codes (SY/SL/PL : 10) 
ZC - Tax Accounting Codes (SY/SL/PL : 1) 

V* - Reserved for VBA projects (all codes starting with V) 
W* - Reserved for VBA projects (all codes starting with W except for WT) &lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-8631447376058460281?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/Hdm-0RqhLz4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/8631447376058460281/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2009/11/iscala-database-structure.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/8631447376058460281?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/8631447376058460281?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/Hdm-0RqhLz4/iscala-database-structure.html" title="iScala Database Structure" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2009/11/iscala-database-structure.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQBSHw8fip7ImA9WxBSFUQ.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-529179822848583840</id><published>2009-07-20T15:30:00.004+04:00</published><updated>2009-12-23T20:45:59.276+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-23T20:45:59.276+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Внешние отчеты" /><category scheme="http://www.blogger.com/atom/ns#" term="БД ERP iScala" /><category scheme="http://www.blogger.com/atom/ns#" term="MSSQL" /><title>SET NOCOUNT ON</title><content type="html">В очередной раз наступил на эти грабли и решил написать – начинайте написание любой процедуры, триггера, просто длинного запроса со строки:&lt;br /&gt;  &lt;pre class="brush:sql"&gt;&lt;br /&gt;SET NOCOUNT ON&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Без этой строки вы реально можете получить проблемы, например, в отчетах, быстрых поисках (если пишете запрос руками и там более одной конструкции), в стандартной функциональности (в случае использования триггеров).&lt;br /&gt;Вот, что написано про эту конструкцию в документации:&lt;br /&gt;&lt;blockquote&gt;Если значение инструкции SET NOCOUNT равно ON, то количество строк не возвращается. Если значение инструкции SET NOCOUNT равно OFF, то количество строк возвращается.&lt;br /&gt;Функция @@ROWCOUNT обновляется, даже если значение SET NOCOUNT равно ON.&lt;br /&gt;Инструкция SET NOCOUNT ON запрещает всем инструкциям хранимой процедуры отправлять клиенту сообщения DONE_IN_PROC. Для хранимых процедур с несколькими инструкциями, не возвращающих большое количество фактических данных, установка в инструкции SET NOCOUNT значения ON может значительно повысить производительность за счет существенного снижения объема сетевого трафика.&lt;br /&gt;Инструкция SET NOCOUNT устанавливается во время выполнения, а не на этапе синтаксического анализа.&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-529179822848583840?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/S3X8aNlFhP8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/529179822848583840/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2009/07/set-nocount-on.html#comment-form" title="Комментарии: 1" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/529179822848583840?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/529179822848583840?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/S3X8aNlFhP8/set-nocount-on.html" title="SET NOCOUNT ON" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2009/07/set-nocount-on.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEFRn84fCp7ImA9WxJUGE4.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-8523993363804522250</id><published>2009-07-17T16:38:00.002+04:00</published><updated>2009-07-17T16:43:37.134+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-17T16:43:37.134+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MSSQL" /><title>MS SQL Profiler</title><content type="html">Profiler – очень мощный инструмент трассировки, упрощающий отладку новых процедур, решение проблем с доступом к данным, оптимизацию быстродействия и т.д.&lt;br /&gt;
Термины, связанные с трассировкой:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Events/События – набор действий, происходящих на сервере, например, запуск хранимой процедуры, сходные события объединены в категории событий &lt;/li&gt;
&lt;li&gt;Data columns/Поля – каждое конкретное событие имеет набор свойств &lt;/li&gt;
&lt;li&gt;Filters/Фильтры – позволяют выбирать только нужные события &lt;/li&gt;
&lt;/ul&gt;Сама программа обладает несколько архаичным интерфейсом. В результате использование ее не столь очевидно.&lt;br /&gt;
Пользоваться трассировщиком по умолчанию может пользователь SA и члены роли SYSADMINS. Начиная с версии SQL Server 2005 можно делегировать эти права любому пользователю:&lt;br /&gt;
&lt;pre style="background-color: #fbfbfb; border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; border-right: #cecece 1px solid; border-top: #cecece 1px solid; min-height: 40px; overflow: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; width: 650px;"&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;1: &lt;span style="color: green;"&gt;-- разрешаем трассировку для LoginID&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;2: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=USE&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;USE&lt;/a&gt; master
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;3: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=GRANT&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;GRANT&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=ALTER&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;ALTER&lt;/a&gt; TRACE &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=TO&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;TO&lt;/a&gt; LoginID
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;4: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=GO&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;GO&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;5: 
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;6: &lt;span style="color: green;"&gt;-- запрещаем трассировку для LoginID&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;7: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=USE&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;USE&lt;/a&gt; master
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;8: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=REVOKE&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;REVOKE&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=ALTER&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;ALTER&lt;/a&gt; TRACE &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=TO&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;TO&lt;/a&gt; LoginID
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;9: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=GO&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;GO&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;10: &lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Для установки профайлера на рабочую станцию нужно воспользоваться дистрибутивом MS SQL, выбрав соответствующую опцию. Никаких дополнительных лицензий для этого не требуется.&lt;br /&gt;
Profiler после запуска начинает собирать информацию в соответствии с выбранными событиями, полями и фильтрами. Все это делается в памяти компьютера, на котором он запущен. Поэтому запускать длительную трассировку на основном сервере не лучшая идея, лучше сделать это с рабочей станции.&lt;br /&gt;
Запускаем трассировку:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Запускаем Profiler &lt;/li&gt;
&lt;li&gt;File –&amp;gt; New Trace &lt;/li&gt;
&lt;li&gt;Connect to server – стандартное окно выбора сервера (трассировать можно базу данных или аналитические сервисы) &lt;/li&gt;
&lt;li&gt;Trace Properties – окно настройки трассировки. Позволяет выбрать события, поля событий и фильтры. Стоит обратить внимание на поле “Use the template”. Шаблон в данном случае – это набор предопределенных для характерных ситуаций настроек трассировки. Можно добавить свои шаблоны. &lt;/li&gt;
&lt;li&gt;Жмем кнопку Run &lt;/li&gt;
&lt;/ol&gt;Появляется основное окно трассировки. Оно разделено на две горизонтальные панели. В верхней панели выводятся захваченные события, каждой строке соответствует одно событие. В нижней панели выводится содержимое поля TextData выбранной строки верхней панели.&lt;br /&gt;
Стандартный набор команд позволяет поставить на паузу, остановить, запустить трассировку. Результаты трассировки можно сохранить (File –&amp;gt; Save).&lt;br /&gt;
Трассировка реально помогает в понимании как работает сервер баз данных, облегчает поиск проблем. Для эффективного использования, конечно, нужно понимать значение событий и полей, в связи с этим хочу обратить внимание, что если в окне Trace Properties навести курсор на поле либо на событие, то внизу окна появится краткое описание события и поля.&lt;br /&gt;
В завершении несколько фактов о Profiler:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Начиная с версии MS SQL 2005 появилось новое событие Deadlock Graph. Оно значительно упрощает поиск взаимных блокировок, т.к. в графическом виде показывает суть конфликта. &lt;/li&gt;
&lt;li&gt;Профайлер позволяет не только захватывать события, но и воспроизводить их обратно на сервере. Так что его можно использовать как простейшее средство стрессового тестирования. &lt;/li&gt;
&lt;li&gt;Трассировку можно запускать программным способом. Причем в профайлере есть команда, облегчающая создания скрипта запуска трассировки. Для этого нужно просто запустить профайлер, создать новую трассировку, выставив все необходимы параметры. После этого запустите команду File –&amp;gt; Export –&amp;gt; Script Trace Definition –&amp;gt; For SQL Server… Вот для примера скрипт, созданный на основе стандартного шаблона: &lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;pre style="background-color: #fbfbfb; border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; border-right: #cecece 1px solid; border-top: #cecece 1px solid; min-height: 40px; overflow: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; width: 650px;"&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;1: &lt;span style="color: green;"&gt;/****************************************************/&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;2: &lt;span style="color: green;"&gt;/* Created by: SQL Server 2008 Profiler             */&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;3: &lt;span style="color: green;"&gt;/* Date: 17/07/2009  16:36:59         */&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;4: &lt;span style="color: green;"&gt;/****************************************************/&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;5: 
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;6: 
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;7: &lt;span style="color: green;"&gt;-- Create a Queue&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;8: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=declare&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;declare&lt;/a&gt; @rc &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=int&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;int&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;9: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=declare&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;declare&lt;/a&gt; @TraceID &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=int&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;int&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;10: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=declare&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;declare&lt;/a&gt; @maxfilesize &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=bigint&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;bigint&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;11: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=declare&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;declare&lt;/a&gt; @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=DateTime&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;DateTime&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=datetime&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;datetime&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;12: 
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;13: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=set&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;set&lt;/a&gt; @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=DateTime&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;DateTime&lt;/a&gt; = '&lt;span style="color: darkred;"&gt;2009-07-20 18:00:00.000&lt;/span&gt;'
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;14: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=set&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;set&lt;/a&gt; @maxfilesize = 5
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;15: 
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;16: &lt;span style="color: green;"&gt;-- Please replace the text InsertFileNameHere, with an appropriate&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;17: &lt;span style="color: green;"&gt;-- filename prefixed by a path, e.g., c:\MyFolder\MyTrace. The .trc extension&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;18: &lt;span style="color: green;"&gt;-- will be appended to the filename automatically. If you are writing from&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;19: &lt;span style="color: green;"&gt;-- remote server to local drive, please use UNC path and make sure server has&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;20: &lt;span style="color: green;"&gt;-- write access to your network share&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;21: 
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;22: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; @rc = &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_create&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_create&lt;/a&gt; @TraceID &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=output&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;output&lt;/a&gt;, 0, N'&lt;span style="color: darkred;"&gt;InsertFileNameHere&lt;/span&gt;', @maxfilesize, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=Datetime&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;Datetime&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;23: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=if&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;if&lt;/a&gt; (@rc != 0) &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=goto&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;goto&lt;/a&gt; error
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;24: 
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;25: &lt;span style="color: green;"&gt;-- Client side File and Table cannot be scripted&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;26: 
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;27: &lt;span style="color: green;"&gt;-- Set the events&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;28: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=declare&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;declare&lt;/a&gt; @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=bit&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;bit&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;29: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=set&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;set&lt;/a&gt; @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt; = 1
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;30: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 14, 1, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;31: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 14, 9, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;32: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 14, 6, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;33: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 14, 10, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;34: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 14, 14, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;35: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 14, 11, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;36: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 14, 12, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;37: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 15, 15, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;38: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 15, 16, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;39: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 15, 9, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;40: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 15, 17, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;41: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 15, 6, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;42: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 15, 10, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;43: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 15, 14, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;44: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 15, 18, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;45: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 15, 11, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;46: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 15, 12, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;47: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 15, 13, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;48: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 17, 1, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;49: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 17, 9, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;50: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 17, 6, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;51: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 17, 10, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;52: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 17, 14, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;53: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 17, 11, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;54: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 17, 12, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;55: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 10, 15, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;56: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 10, 16, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;57: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 10, 9, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;58: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 10, 17, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;59: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 10, 2, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;60: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 10, 10, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;61: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 10, 18, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;62: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 10, 11, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;63: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 10, 12, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;64: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 10, 13, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;65: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 10, 6, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;66: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 10, 14, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;67: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 12, 15, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;68: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 12, 16, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;69: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 12, 1, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;70: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 12, 9, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;71: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 12, 17, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;72: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 12, 6, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;73: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 12, 10, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;74: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 12, 14, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;75: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 12, 18, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;76: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 12, 11, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;77: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 12, 12, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;78: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 12, 13, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;79: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 13, 1, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;80: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 13, 9, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;81: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 13, 6, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;82: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 13, 10, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;83: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 13, 14, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;84: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 13, 11, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;85: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setevent&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setevent&lt;/a&gt; @TraceID, 13, 12, @&lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=on&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;on&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;86: 
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;87: 
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;88: &lt;span style="color: green;"&gt;-- Set the Filters&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;89: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=declare&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;declare&lt;/a&gt; @intfilter &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=int&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;int&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;90: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=declare&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;declare&lt;/a&gt; @bigintfilter &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=bigint&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;bigint&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;91: 
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;92: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setfilter&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setfilter&lt;/a&gt; @TraceID, 6, 0, 6, N'&lt;span style="color: darkred;"&gt;User1&lt;/span&gt;'
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;93: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setfilter&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setfilter&lt;/a&gt; @TraceID, 10, 0, 7, N'&lt;span style="color: darkred;"&gt;SQL Server Profiler - b384f0b7-6852-4661-86de-2da85ca97fdf&lt;/span&gt;'
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;94: &lt;span style="color: green;"&gt;-- Set the trace status to start&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;95: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=exec&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;exec&lt;/a&gt; &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_trace_setstatus&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: orange;"&gt;sp_trace_setstatus&lt;/a&gt; @TraceID, 1
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;96: 
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;97: &lt;span style="color: green;"&gt;-- display trace id for future references&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;98: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=select&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;select&lt;/a&gt; TraceID=@TraceID
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;99: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=goto&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;goto&lt;/a&gt; finish
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;100: 
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;101: error: 
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;102: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=select&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;select&lt;/a&gt; ErrorCode=@rc
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;103: 
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;104: finish: 
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;105: &lt;a href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=go&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99" style="color: blue;"&gt;go&lt;/a&gt;
&lt;/pre&gt;&lt;pre style="background-color: white; font-family: consolas,'Courier New',courier,monospace; font-size: 12px; margin: 0em; width: 100%;"&gt;106: &lt;/pre&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-8523993363804522250?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/jAM3VZk85CY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/8523993363804522250/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2009/07/ms-sql-profiler.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/8523993363804522250?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/8523993363804522250?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/jAM3VZk85CY/ms-sql-profiler.html" title="MS SQL Profiler" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2009/07/ms-sql-profiler.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08ERXkyeSp7ImA9WxJUFUw.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-7570257201102413364</id><published>2009-07-11T21:48:00.001+04:00</published><updated>2009-07-13T23:03:24.791+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-13T23:03:24.791+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Внешние отчеты" /><category scheme="http://www.blogger.com/atom/ns#" term="MSSQL" /><title>EXECUTE AS</title><content type="html">&lt;p&gt;Предположим, что мы делаем отчет для пользователя. Данные выбираются из базы данных с помощью хранимой процедуры, а выводятся, например, в Excel. В этом случае приходится давать пользователю прямой доступ к базе. И тут сразу возникает вопрос – как дать доступ только туда, куда нужно.&lt;/p&gt;  &lt;p&gt;Варианты следующие:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Выбираем нужные таблицы и даем пользователю право читать их. Неудобно то, что все нужно будет повторять для каждого отчета и пользователя. Введение специальных ролей тоже не особо поможет, т.к. для каждого отчета набор таблиц обычно разный, плюс со временем может меняться как сам набор таблиц, так и пользователи, которым разрешен запуск отчета. &lt;/li&gt;    &lt;li&gt;Включаем пользователя в роль &lt;strong&gt;db_datareader&lt;/strong&gt;. В этом случае проблем с администрированием почти никаких, но пользователь будет иметь возможность читать все таблицы базы данных. В большинстве случаев политика безопасности предприятия не позволяет делать так. &lt;/li&gt;    &lt;li&gt;Дать пользователю только право запускать хранимую процедуру, а уже внутри процедуры переключить контекст с помощью конструкции &lt;strong&gt;EXECUTE AS&lt;/strong&gt;. В этом случае пользователь не будет иметь никаких избыточных прав, а администрирование сводится только к выдаче прав на конкретную процедуру. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Пример процедуры, реализующей последний вариант:&lt;/p&gt;  &lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 650px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;  1: &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=USE&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;USE&lt;/a&gt; iScalaDB&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;  2: &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;  3: &lt;span style="color: #008000"&gt;-- создаем новый логин&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;  4: &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=CREATE&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;CREATE&lt;/a&gt; LOGIN ReportUserLogin &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=WITH&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;WITH&lt;/a&gt; PASSWORD='&lt;span style="color: #8b0000"&gt;ERFss$#45%$&lt;/span&gt;'&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;  5: &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=GO&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;GO&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;  6: &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;  7: &lt;span style="color: #008000"&gt;-- создаем пользователя, на которого будем переключать контекст&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;  8: &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=CREATE&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;CREATE&lt;/a&gt; &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=USER&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;USER&lt;/a&gt; ReportUser &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=FOR&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;FOR&lt;/a&gt; LOGIN ReportUserLogin&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;  9: &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=GO&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;GO&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 10: &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 11: &lt;span style="color: #008000"&gt;-- даем вспомогательному пользователю право читать всю базу данных&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 12: &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=EXEC&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;EXEC&lt;/a&gt; &lt;a style="color: #ffa500" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=sp_addrolemember&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;sp_addrolemember&lt;/a&gt; '&lt;span style="color: #8b0000"&gt;db_datareader&lt;/span&gt;','&lt;span style="color: #8b0000"&gt;ReportUser&lt;/span&gt;'&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 13: &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=GO&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;GO&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 14: &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 15: &lt;span style="color: #008000"&gt;-- создаем проверочную процедру&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 16: &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=CREATE&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;CREATE&lt;/a&gt; &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=PROCEDURE&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;PROCEDURE&lt;/a&gt; dbo.TestExecuteAS&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 17: &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=WITH&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;WITH&lt;/a&gt; &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=EXECUTE&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;EXECUTE&lt;/a&gt; &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=AS&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;AS&lt;/a&gt; '&lt;span style="color: #8b0000"&gt;ReportUser&lt;/span&gt;'&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 18: &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=AS&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;AS&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 19: &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=BEGIN&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;BEGIN&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 20:     &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=SET&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;SET&lt;/a&gt; NOCOUNT &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=ON&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;ON&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 21: &lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 22:     &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=SELECT&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;SELECT&lt;/a&gt; *&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 23:     &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=FROM&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;FROM&lt;/a&gt; GL060108&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 24: &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=END&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;END&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 25: &lt;a style="color: #0000ff" href="http://search.microsoft.com/default.asp?so=RECCNT&amp;amp;siteid=us%2Fdev&amp;amp;p=1&amp;amp;nq=NEW&amp;amp;qu=GO&amp;amp;IntlSearch=&amp;amp;boolean=PHRASE&amp;amp;ig=01&amp;amp;i=09&amp;amp;i=99"&gt;GO&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt; 26: &lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Конструкция EXECUTE AS появилась в MS SQL2005, в более ранних версиях была команда SETUSER, но она имела ряд ограничений, которые не позволяли использовать ее в нашем сценарии.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-7570257201102413364?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/3T6eJOR4lDs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/7570257201102413364/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2009/07/execute-as.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/7570257201102413364?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/7570257201102413364?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/3T6eJOR4lDs/execute-as.html" title="EXECUTE AS" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2009/07/execute-as.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUMQXwzcSp7ImA9WxVWF04.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-1514737308014333202</id><published>2009-02-27T13:18:00.002+03:00</published><updated>2009-02-27T13:24:40.289+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-27T13:24:40.289+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Стандартные отчеты" /><title>Сумма прописью</title><content type="html">Ситуация: вы настроили новую валюту и печатаете счет в этой валюте. Обратите внимание на поле, где выводится сумма прописью, с большой вероятностью валюта там не совпадет с той, что вы настроили. Где же находится связь между алгоритмом &amp;nbsp;вывода суммы прописью и конкретной валютой?&lt;br /&gt;
&lt;br /&gt;
Запускаем iScala Administration Console. Выбираем: Языки - Строки LAN файлов - GEN - RUS - SY - Numbers. Именно в этом файле все и хранится, спасибо Владимиру Певзнеру за подробный комментарий:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;;0001        *** File created by Scala CIS (Moscow) 1 April 1998 ***    |
;0002              Adjusted VP/Jul 1999 by Vladimir Pevzner                  |
;0003     Это специальный LAN файл для печати чисел прописью по-русски.      |
;0004 Файл содержит строки постоянной длины (всегда ровно 80 символов,       |
;0005 включая 2 символа для КОНЦА СТРОКИ). Первый символ каждой строки должен|
;0006 быть либо ' '(пробел) либо ';'(точка с запятой).                       |
;0007     Точка с запятой в первой позиции означает, что данная строка явля- |
;0008 ется комментарием. Число в позициях 2-5 означает номер строки. Програм-|
;0009 ма его не использует, однако оно полезно при корректировке данного или |
;0010 подготовке новых файлов, поскольку оно входит в формулы. Строки, испо- |
;0011 льзуемые программой содержат пробел в первой позиции.                  |
;0012                                                                        |
;0013     Приведенные ниже строки содержат БЛОК ПАРАМЕТРОВ (либо 1 символ в  |
;0014 позициях 7-10, либо 3 числа в позициях 7-8, 10 и 12-15, остальная ин-  |
;0015 фармация служит комментарием) :                                        |
;0016                                                                        |
 0017 0005      Количество валют                                             |
;0018                                                                        |
;0019     Ниже приведены параметры каждой валюты. Первый параметр в строке   |
;0020 показывает количество знаков после запятой. Оно может быть положитель- |
;0021 ным, нулевым или отрицательным (например, -3, если учет ведется в тыся-|
;0022 чах денежных единиц). Второй параметр указывает, нужно ли показывать   |
;0023 прописью знаки после запятой (1-да, 0-нет). Третий парамер показывает  |
;0024 номер строки, с которой начинается блок данных для указанной валюты.   |
;0025                                                                        |
 0026 02,0,0152  Для валюты   № 1                                            |
 0027 02,1,0162  Для валюты   № 2                                            |
 0028 02,0,0152  Для валюты   № 3                                            |
 0029 02,0,0152  Для валюты   № 4                                            |
 0030 02,0,0192                                                              |
;0031 &amp;lt;&amp;lt;зарезервировано для валюты № 6&amp;gt;&amp;gt;                                     |
;0032 &amp;lt;&amp;lt;зарезервировано для валюты № 7&amp;gt;&amp;gt;                                     |
;0033 &amp;lt;&amp;lt;зарезервировано для валюты № 8&amp;gt;&amp;gt;                                     |
;0034 &amp;lt;&amp;lt;зарезервировано для валюты № 9&amp;gt;&amp;gt;                                     |
;0035 &amp;lt;&amp;lt;зарезервировано для валюты № 10&amp;gt;&amp;gt;                                    |
;0036                                                                        |
 0037 0213      Номер первой строки блока формул                             |
;0038                                                                        |
;0039     Приведенные ниже строки содержат БЛОК ДАННЫХ (действительные данные|
;0040 помещены в кавычки, остальная информация служит комментарием) :        |
&lt;/pre&gt;&lt;br /&gt;
Думаю, что теперь разобраться не проблема. Редактируем файл и проверяем.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-1514737308014333202?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/UeROFiL0m6Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/1514737308014333202/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2009/02/blog-post.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/1514737308014333202?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/1514737308014333202?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/UeROFiL0m6Q/blog-post.html" title="Сумма прописью" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2009/02/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcFRns_eCp7ImA9WxVTFEQ.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-1676016131734746570</id><published>2008-12-28T22:15:00.003+03:00</published><updated>2008-12-28T22:36:57.540+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-28T22:36:57.540+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Модуль GL" /><category scheme="http://www.blogger.com/atom/ns#" term="Скринкаст" /><title>Автоматические реверсивные проводки</title><content type="html">Давно тут ничего не было. За это время я успел отойти от работы со Скалой и вернуться обратно. Пока не обещаю, что новые посты будут появляться регуляно.&lt;br /&gt;
Сегодня речь пойдет об автоматическом&amp;nbsp;формировании реверсивных проводок. Такие операции&amp;nbsp;требуются, например, при ведении учета по МСФО. Суть в том, что мы вводим какую-то проводку в текущем периоде, а в начале следующего нам надо полностью ее откатить.&lt;br /&gt;
Некоторые вещи легче показать, чем рассказать о них. Поэтому я решил попробовать сделать первый скринкаст.&lt;br /&gt;
&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" height="510" width="640"&gt; &lt;param name="movie" value="http://content.screencast.com/users/Dmitry44/folders/Default/media/41c19ac9-ed30-4d56-904d-a6948f469017/bootstrap.swf"&gt;&lt;/param&gt;&lt;param name="quality" value="high"&gt;&lt;/param&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;/param&gt;&lt;param name="flashVars" value="thumb=http://content.screencast.com/users/Dmitry44/folders/Default/media/41c19ac9-ed30-4d56-904d-a6948f469017/FirstFrame.jpg&amp;width=640&amp;height=510&amp;content=http://content.screencast.com/users/Dmitry44/folders/Default/media/41c19ac9-ed30-4d56-904d-a6948f469017/RevTrans.swf"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="scale" value="showall"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;param name="base" value="http://content.screencast.com/users/Dmitry44/folders/Default/media/41c19ac9-ed30-4d56-904d-a6948f469017/"&gt;&lt;/param&gt;&lt;embed src="http://content.screencast.com/users/Dmitry44/folders/Default/media/41c19ac9-ed30-4d56-904d-a6948f469017/bootstrap.swf" quality="high" bgcolor="#FFFFFF" width="640" height="510" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="thumb=http://content.screencast.com/users/Dmitry44/folders/Default/media/41c19ac9-ed30-4d56-904d-a6948f469017/FirstFrame.jpg&amp;width=640&amp;height=510&amp;content=http://content.screencast.com/users/Dmitry44/folders/Default/media/41c19ac9-ed30-4d56-904d-a6948f469017/RevTrans.swf" allowFullScreen="true" base="http://content.screencast.com/users/Dmitry44/folders/Default/media/41c19ac9-ed30-4d56-904d-a6948f469017/" scale="showall"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;br /&gt;
Не знаю, что получилось, любые комментарии приветствуются...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-1676016131734746570?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/VhyJzxqfkSw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/1676016131734746570/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2008/12/blog-post.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/1676016131734746570?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/1676016131734746570?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/VhyJzxqfkSw/blog-post.html" title="Автоматические реверсивные проводки" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2008/12/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08DQnsycSp7ImA9WB9bFkg.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-2923880725986091885</id><published>2007-12-25T22:03:00.001+03:00</published><updated>2007-12-26T12:04:33.599+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-12-26T12:04:33.599+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Разное" /><title>iScala hardware requirements</title><content type="html">&lt;p&gt;Периодически встает задача порекомендовать конфигурацию компьютеров для Scala. Если с рабочими станциями все достаточно стандартно, то с сервером обычно не все так просто. Для начала глянем в дистрибутив iScala 2.3 и посмотрим, что рекомендует Epicor. &lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;We recommend having a dedicated server for the installation of DBMS and iScala 2.2 SR2 with HF3062. &lt;/p&gt;&lt;p&gt;Recommended configuration for communities of up to 50 users: &lt;/p&gt;&lt;ul&gt; &lt;li&gt;Dual Pentium III - 1 GHz or faster processor system (Dual Xeon - 3 GHz is preferable but not mandatory, at the time of the current release: Spring 2004) &lt;/li&gt;&lt;li&gt;1024 MB RAM or more (4GB is preferable but not mandatory) &lt;/li&gt;&lt;li&gt;Hardware RAID-1 for OS, DBMS and iScala binaries (2GB for the DBMS and iScala installation) &lt;/li&gt;&lt;li&gt;Hardware RAID-5 with 6 spindles for iScala databases (at least 1GB for the initial installation) &lt;/li&gt;&lt;li&gt;100Mb network connection &lt;/li&gt;&lt;li&gt;DVD-ROM drive&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/blockquote&gt; &lt;p&gt;Сразу видно, что рекомендации не корректировали давно, даже номер версии не исправлен. Хотя по большому счету все довольно правильно, нужно только немного подкорректировать некоторые цифры. Далее речь идет о сервере начального уровня, условно до 50 пользователей. &lt;/p&gt;&lt;h3&gt;CPU&lt;/h3&gt; &lt;p&gt;Думаю, оптимальным сегодня будет один двуядерный Xeon. &lt;/p&gt;&lt;h3&gt;RAM&lt;/h3&gt; &lt;p&gt;4GB. Можно поставить и больше, но Windows Server 2003 Standard Edition поддерживает максимально 4GB, а покупать версию Enterprise для сервера начального уровня, наверно, излишне. &lt;/p&gt;&lt;h3&gt;HDD&lt;/h3&gt; &lt;p&gt;На серверах по возможности лучше использовать SCSI диски. &lt;a href="http://ru.wikipedia.org/wiki/RAID"&gt;RAID&lt;/a&gt; же считаю обязательной частью нормального сервера. HotSwap (горячая замена, без остановки сервера) не обязательно, я вот просто почему-то боюсь их дергать прямо во время работы и все равно сначала выключаю. &lt;/p&gt;&lt;p&gt;Приведенная выше конфигурация очень практична. На первый раздел ставим систему. Сам раздел создаем из двух дисков, объединенных в &lt;a href="http://ru.wikipedia.org/wiki/RAID#RAID_1"&gt;RAID1&lt;/a&gt; (зеркалирование). Большой объем для этого раздела не требуется, достаточно 70-80GB. &lt;/p&gt;&lt;p&gt;Второй раздел для данных. Тут удобнее использовать &lt;a href="http://ru.wikipedia.org/wiki/RAID#RAID_5"&gt;RAID5&lt;/a&gt;. В этом случае немного проигрываем по скорости записи (на хорошем контроллере разница должна быть несущественной), но выигрываем по времени чтения. Для сервера начального уровня будет достаточно трех дисков (в &lt;a href="http://ru.wikipedia.org/wiki/RAID#RAID_5"&gt;RAID5&lt;/a&gt; может быть от 3 до 6 дисков). При этом мы жертвуем размером одного диска. Большие диски для этого раздела тоже не обязательны, т.к. могут серьезно поднять стоимость системы. Если, предположим, вы будете использовать три диска объемом 100GB, то получите раздел объемом 200GB. Для рабочих данных вполне достаточно, особенно, если бекапирование делается на другие диски. &lt;/p&gt;&lt;h3&gt;Сервер&lt;/h3&gt; &lt;p&gt;Конечно, лучше от нормального производителя - HP, Dell, IBM… &lt;/p&gt;&lt;p&gt;Конструктив удобнее для монтажа в 19 дюймовую стойку, но это уже определяется системным администратором. Еще нужен UPS и не надо забывать делать поправку на время.&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;UPD:&lt;/span&gt; В текущем хотфиксе требования исправлены:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;Server Hardware&lt;br /&gt;&lt;br /&gt;Communities of up to 50 Users&lt;br /&gt;&lt;br /&gt;We recommend having a dedicated server for the installation of DBMS and iScala 2.3.&lt;br /&gt;&lt;br /&gt;Recommended configuration for communities of up to 50 users:&lt;br /&gt;&lt;br /&gt;Dual Xeon - 3 GHz or better&lt;br /&gt;2 GB RAM or more (4GB is preferable but not mandatory)&lt;br /&gt;Hardware RAID-5 for OS, DBMS and iScala binaries (2GB for the DBMS and iScala installation)&lt;br /&gt;Hardware RAID-5 with 6 spindles for iScala databases (at least 1GB for the initial installation)&lt;br /&gt;Gigabit network connection&lt;br /&gt;DVD ROM drive&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-2923880725986091885?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/PmCfu1ritJk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/2923880725986091885/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2007/12/iscala-hardware-requirements.html#comment-form" title="Комментарии: 2" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/2923880725986091885?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/2923880725986091885?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/PmCfu1ritJk/iscala-hardware-requirements.html" title="iScala hardware requirements" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2007/12/iscala-hardware-requirements.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UAQHg-eip7ImA9WxRaEEg.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-31245522036553415</id><published>2007-11-29T12:15:00.001+03:00</published><updated>2008-12-12T08:20:41.652+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-12T08:20:41.652+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="VBA" /><title>iScala VBA: Встроенные формы</title><content type="html">&lt;p&gt;Чаще всего при создании новой формы средствами VBA используют стандартные компоненты. В результате форма выглядит достаточно инородно:&lt;br&gt;&lt;img id="BLOGGER_PHOTO_ID_5138189379161504674" style="display: block; margin: 0px auto 10px; cursor: pointer; text-align: center" alt="" src="http://4.bp.blogspot.com/_Igmrj6OQOXY/R06EBF2bO6I/AAAAAAAAAE0/AxLOkUab7pw/s400/VBATunneling1.png" border="0"&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;В составе Scala идет набор своих компонентов - туннелированные компоненты, позволяющих встраивать VBA приложения без всяких швов. Сделаем простейшую форму.&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Создаем новое VBA приложение Tunneling: &lt;em&gt;Tools -&amp;gt; VBA Developer -&amp;gt; Project Explorer&lt;/em&gt;. New Project. Set Active для нового приложения.  &lt;li&gt;Идем в среду разработки: &lt;em&gt;Tools -&amp;gt; VBA Developer -&amp;gt; Visual Basic Editor&lt;/em&gt;  &lt;li&gt;Добавляем новую форму.  &lt;li&gt;Идем в &lt;em&gt;Tools -&amp;gt; References&lt;/em&gt; и добавляем ссылку на &lt;strong&gt;ScaXVBProxies 1.0 Type Library&lt;/strong&gt;  &lt;li&gt;На палитре компонентов Toolbox щелкаем правой клавишей мыши и выбираем Additional Controls. Отмечаем все &lt;strong&gt;ScaXVB&lt;/strong&gt;* компоненты. Получится что-то вроде этого:&lt;br&gt;&lt;img id="BLOGGER_PHOTO_ID_5138189413521243058" style="display: block; margin: 0px auto 10px; cursor: pointer; text-align: center" alt="" src="http://4.bp.blogspot.com/_Igmrj6OQOXY/R06EDF2bO7I/AAAAAAAAAE8/wE533lZ4LxM/s400/VBATunneling2.png" border="0"&gt;  &lt;li&gt;Бросаем на форму &lt;strong&gt;ScaXVBForm&lt;/strong&gt;. Он должен присутствовать на любой форме, где используются туннелированные компоненты.  &lt;li&gt;Рисуем фому, используя только скальские компоненты. Добавляем кнопку закрыть с кодом &lt;strong&gt;ScaXVBForm1.DelayUnload&lt;/strong&gt;  &lt;li&gt;Добавляем событие &lt;strong&gt;ScaXVBForm1_OnScaReady&lt;/strong&gt;. В этом событии нужно заполнить все заголовки на форме. Дело в том, что вы не сможете сделать это в дизайнере, т.к. по идеологии таких приложений они должны читать все строки из LAN-файлов. По уму и нужно создать пользовательский LAN-файл и читать строки оттуда, но для простоты я сделал это в коде.  &lt;li&gt;Добавляем кнопку для запуска (в меню добавляется аналогично):&lt;br&gt;&lt;img id="BLOGGER_PHOTO_ID_5138189422111177682" style="display: block; margin: 0px auto 10px; cursor: pointer; text-align: center" alt="" src="http://2.bp.blogspot.com/_Igmrj6OQOXY/R06EDl2bO9I/AAAAAAAAAFM/JoZTqIdeaV4/s400/VBATunneling4.png" border="0"&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Получаем стандартную встроенную форму:&lt;br&gt;&lt;img id="BLOGGER_PHOTO_ID_5138189417816210370" style="display: block; margin: 0px auto 10px; cursor: pointer; text-align: center" alt="" src="http://1.bp.blogspot.com/_Igmrj6OQOXY/R06EDV2bO8I/AAAAAAAAAFE/_RNse4N2W8Y/s400/VBATunneling3.png" border="0"&gt;&lt;/p&gt; &lt;p&gt;Код примера.&lt;/p&gt; &lt;p&gt;&lt;pre&gt;&lt;code&gt;' Файл UserForm2&lt;br /&gt;&lt;br /&gt;Private Sub scaXVBButton1_OnScaClick()&lt;br /&gt;    ScaXVBForm1.DelayUnload&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub ScaXVBForm1_OnScaReady()&lt;br /&gt;    scaXVBLabel1.Caption = "Some Label 1:"&lt;br /&gt;    scaXVBLabel2.Caption = "Some Label 2:"&lt;br /&gt;    scaXVBLabel3.Caption = "Some Label 3:"&lt;br /&gt;    scaXVBButton1.Caption = "Close"&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;' Файл ProjectMacros&lt;br /&gt;&lt;br /&gt;Sub RunUserForm2()&lt;br /&gt;    UserForm2.ScaXVBForm1.Connect ThisProcess, scaXVBDockedForm&lt;br /&gt;    UserForm2.ScaXVBForm1.Show&lt;br /&gt;End Sub&lt;/code&gt;&lt;/pre&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-31245522036553415?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/90DXUUuNAIU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/31245522036553415/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2007/11/iscala-vba.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/31245522036553415?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/31245522036553415?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/90DXUUuNAIU/iscala-vba.html" title="iScala VBA: Встроенные формы" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_Igmrj6OQOXY/R06EBF2bO6I/AAAAAAAAAE0/AxLOkUab7pw/s72-c/VBATunneling1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2007/11/iscala-vba.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UMRHo-cSp7ImA9WB9WFUU.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-8776990750901868072</id><published>2007-11-20T23:08:00.001+03:00</published><updated>2007-11-20T23:08:05.459+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-11-20T23:08:05.459+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Внешние отчеты" /><category scheme="http://www.blogger.com/atom/ns#" term="Разное" /><title>Расширение функциональности Scala/iScala.Внешние программы. На чем писать.</title><content type="html">&lt;p&gt;Рано или поздно встает вопрос написания внешних программ, для целей отчетности или дополнительной функциональности. Вот на выборе среды, в которой можно это сделать, и остановлюсь сегодня. Исходить буду из то, что нужно решение, которое легко освоить, недорогое (в идеале бесплатное). Поэтому я сразу отбросил C++, да и C# решил не упоминать. &lt;h3&gt;Visual Basic 6 (VB6)&lt;/h3&gt; &lt;p&gt;Очень простая среда программирования, легкая в освоении и понятная, правда немного устаревшая и я не уверен, что Microsoft еще продает лицензии на этот продукт. Если у вас уже освоен VBA, то особых проблем при переходе не будет. Скорее всего еще долго будет использоваться. &lt;h3&gt;Delphi&lt;/h3&gt; &lt;p&gt;&lt;a href="http://www.codegear.com/"&gt;http://www.codegear.com/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Для своего времени это была просто революционная среда, но сейчас она потеряла былую популярность, в основном благодаря большому количеству ошибок в процессе развития. Сейчас имеется бесплатная версия. В ней нельзя устанавливать дополнительные компоненты, но существующего набора компонентов будет достаточно для подавляющего большинства приложений. Среда сложнее в освоении, чем VB6. Если уже есть опыт использования Delphi, то ничто не мешает делать это дальше, осваивать же с нуля не советую, есть, на мой взгляд, лучшие варианты. &lt;h3&gt;Access&lt;/h3&gt; &lt;p&gt;Я не любитель этого продукта, хотя честно несколько раз брался за него. Похоже не мое. Но уже неоднократно видел кучу функциональности для Scala, написанной на Access. В общем попробовать его стоит, свои задачи он решает. &lt;h3&gt;Visual Basic 2005 Express Edition&lt;/h3&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/rus/msdn/vstudio/express/default.mspx"&gt;http://www.microsoft.com/rus/msdn/vstudio/express/default.mspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Это бесплатный вариант Visual Studio. Никаких лицензионных ограничений. Функциональные ограничения несущественны для простых разработок. Современная, удобная среда, с полным набором возможностей. Для запуска приложений требуется установленный .Net Framework 2.0, но он устанавливается вместе с iScala 2.3. Для более ранних версий придется поставить его руками. Буквально на дня вышел Visual Basic 2008 Express, но его я еще не смотрел. Думаю, что тоже будет достойный продукт. &lt;h3&gt;SharpDevelop&lt;/h3&gt; &lt;p&gt;&lt;a href="http://www.icsharpcode.net/OpenSource/SD/"&gt;http://www.icsharpcode.net/OpenSource/SD/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Бесплатная среда для разработки программ под .Net Framework с открытыми исходными кодами. Возможности шире, чем у VB Express, работает довольно стабильно. Мне его использовать в реальных проектах не приходилось, но рассмотреть его как вариант стоит. &lt;h3&gt;Вывод&lt;/h3&gt; &lt;p&gt;На чем остановиться нужно решить самому. У меня это VB6 для быстрых и простых задач и VB Express в остальных случаях.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-8776990750901868072?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/NMHJBnmShhA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/8776990750901868072/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2007/11/scalaiscala.html#comment-form" title="Комментарии: 1" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/8776990750901868072?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/8776990750901868072?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/NMHJBnmShhA/scalaiscala.html" title="Расширение функциональности Scala/iScala.Внешние программы. На чем писать." /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2007/11/scalaiscala.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UAQ3czfSp7ImA9WxRaEEg.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-1741085386427600065</id><published>2007-11-13T21:18:00.001+03:00</published><updated>2008-12-12T08:20:42.985+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-12T08:20:42.985+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MSSQL" /><title>MS SQL: Backup всех БД</title><content type="html">&lt;p&gt;Вот считаешь иногда, что во многом разобрался, ищешь новое только в свежих версиях, а потом натыкаешься на фичу, которая была в программе уже давным давно. Вот так вчера я выяснил, что в MS SQL есть простой способ бекапа всех баз данных. Спешу поделиться, вдруг все-таки не я один пропустил такую удобную процедуру. &lt;/p&gt;&lt;p&gt;Запускаем &lt;strong&gt;Enterprise Manager&lt;/strong&gt;. Выбираем в дереве "&lt;strong&gt;Management/Database Maintenance Plan&lt;/strong&gt;" . Команда "&lt;strong&gt;New Maintenance Plan...&lt;/strong&gt;". Запускается визард. Дальше, если картинки нет, то соответствующие окна пропущены и в них менять ничего не нужно.&lt;img id="BLOGGER_PHOTO_ID_5132391316112251010" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://4.bp.blogspot.com/_Igmrj6OQOXY/RznqtZ0rmII/AAAAAAAAAEE/hSTwl_G5lJE/s400/MSSQLBak01.png" border="0" /&gt; &lt;/p&gt;&lt;p&gt;Выбор баз данных. Можно выбрать все, только системные, все кроме системных, указать конкретных список БД.&lt;/p&gt; &lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5132391328997152914" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://3.bp.blogspot.com/_Igmrj6OQOXY/RznquJ0rmJI/AAAAAAAAAEM/eGfC8LrTP-o/s400/MSSQLBak02.png" border="0" /&gt;&lt;/p&gt; &lt;p&gt;Здесь включаем бекап и, нажимаем на отмеченную кнопку.&lt;/p&gt; &lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5132391333292120226" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://4.bp.blogspot.com/_Igmrj6OQOXY/RznquZ0rmKI/AAAAAAAAAEU/2rG8jv9Mzbw/s400/MSSQLBak03.png" border="0" /&gt;&lt;/p&gt; &lt;p&gt;Расписание запуска. В моем случае сделан запуск после каждого рабочего дня.&lt;/p&gt; &lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Igmrj6OQOXY/Rznq7Z0rmLI/AAAAAAAAAEc/ET3vi3hjJ9Q/s1600-h/MSSQLBak04.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5132391556630419634" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://4.bp.blogspot.com/_Igmrj6OQOXY/Rznq7Z0rmLI/AAAAAAAAAEc/ET3vi3hjJ9Q/s400/MSSQLBak04.png" border="0" /&gt;&lt;/a&gt;Указываем куда помещать файлы бекапов и нужно ли для каждой базы создавать свой подкаталог. Еще очень удобно, что можно указать сколько времени хранить, т.е. кроме самой процедуры резервного копирования, будут еще стираться старые файлы (тут бы я еще предусмотрел еще одну отдельную процедуру, которая, например, в выходные будет копировать текущие резервные копии на ленточку или другой сервер).&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Igmrj6OQOXY/RznrAp0rmMI/AAAAAAAAAEk/aKhWv_MyjB4/s1600-h/MSSQLBak05.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5132391646824732866" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://1.bp.blogspot.com/_Igmrj6OQOXY/RznrAp0rmMI/AAAAAAAAAEk/aKhWv_MyjB4/s400/MSSQLBak05.png" border="0" /&gt;&lt;/a&gt;Логи и оповещение оператора.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Igmrj6OQOXY/RznrFZ0rmNI/AAAAAAAAAEs/pQVbapPyS0Q/s1600-h/MSSQLBak06.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5132391728429111506" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://4.bp.blogspot.com/_Igmrj6OQOXY/RznrFZ0rmNI/AAAAAAAAAEs/pQVbapPyS0Q/s400/MSSQLBak06.png" border="0" /&gt;&lt;/a&gt;Ну вот и все. Задаем имя для плана и сохраняем. Все сделано на примере 2000й версии. В 2005м никаких принципиальных отличий нет. Запускаем &lt;strong&gt;Management Studio&lt;/strong&gt;. Путь "&lt;strong&gt;Managements/Maintenance Plans&lt;/strong&gt;". Команда "&lt;strong&gt;Maintenance Plan Wizard&lt;/strong&gt;".&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-1741085386427600065?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/kmq1ABfx0_s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/1741085386427600065/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2007/11/ms-sql-backup.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/1741085386427600065?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/1741085386427600065?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/kmq1ABfx0_s/ms-sql-backup.html" title="MS SQL: Backup всех БД" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_Igmrj6OQOXY/RznqtZ0rmII/AAAAAAAAAEE/hSTwl_G5lJE/s72-c/MSSQLBak01.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2007/11/ms-sql-backup.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUFQns9fip7ImA9WB9XE0g.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-3343695683535355568</id><published>2007-11-06T16:52:00.001+03:00</published><updated>2007-11-06T16:53:33.566+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-11-06T16:53:33.566+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Стандартные отчеты" /><title>DDF отчеты</title><content type="html">&lt;p&gt;DDF отчеты самая старая технология создания отчетов в Scala. Такой отчет представляет из себя текстовый файл. Файл является шаблоном отчета, где описано содержание всех секций, состав секций и последовательность их вывода жестко зашиты в коде, так что повлиять можно только на содержимое самих секций. Для примера можно взглянуть на довольно простой отчет &lt;strong&gt;OR06 Product Label&lt;/strong&gt;:&lt;pre&gt;:START-LABEL&lt;br /&gt;╔═════════════════════════════════════╗  &lt;br /&gt;║ &amp;lt;805&amp;gt;                               ║  &lt;br /&gt;║ &amp;lt;806&amp;gt;                               ║  &lt;br /&gt;║ STOCK.COD: &amp;lt;804L25&amp;gt;                 ║  &lt;br /&gt;║ DEL.DATE : &amp;lt;615&amp;gt;     QTY  :&amp;lt;811R09&amp;gt; ║  &lt;br /&gt;║ ORDER    : &amp;lt;04&amp;gt;      POS  : &amp;lt;801&amp;gt;   ║  &lt;br /&gt;║ BUYER    : &amp;lt;401L25&amp;gt;                 ║  &lt;br /&gt;║ CUSTOMER : &amp;lt;400&amp;gt;                    ║  &lt;br /&gt;║─────────────────────────────────────║  &lt;br /&gt;║ &amp;lt;86&amp;gt;                                ║  &lt;br /&gt;╚═════════════════════════════════════╝  &lt;br /&gt;:END-LABEL&lt;br /&gt;0&lt;br /&gt;2&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Тут всего одна секция &lt;strong&gt;LABEL&lt;/strong&gt;. Угловыми скобками выделены макросы. Коды полей можно посмотреть здесь: "&lt;em&gt;Системные Утилиты - Документы - Изменение Определения Документа - Редактор Формата Отчета&lt;/em&gt;", предварительно выбрав нужный отчет. Например, макрос &lt;strong&gt;&amp;lt;804L25&amp;gt;&lt;/strong&gt; означает следующее: &lt;strong&gt;804&lt;/strong&gt; - код запаса,&amp;nbsp; &lt;strong&gt;L25&lt;/strong&gt; - взять 25 символов слева. Менять можно только содержимое внутри секций. Значения вне секций трогать не советую(в нашем примере это две последние строки), там часто бывают всякие настройки, без которых сам отчет будет работать некорректно.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Какие еще преобразования возможны в DDF файлах? В хелпе я не нашел полного описания. У меня откуда-то давно есть текстовый файлик. Правда, не все, что описано в нем удалось использовать, но несколько раз он мне очень помог, так что приведу его здесь полностью:&lt;br&gt;&lt;pre&gt;-------------&lt;br /&gt;DDF processor&lt;br /&gt;-------------&lt;br /&gt;&lt;br /&gt;Start [Prefix] DDFCode [Selector] [Modifier]... [Language] [;] End&lt;br /&gt;&lt;br /&gt; Start       &amp;lt;           Start of DDF Code&lt;br /&gt;&lt;br /&gt; Prefix      #           Optional Prefix&lt;br /&gt;             D (1)       Date in words format (old style)&lt;br /&gt;             ! (1)       Date in words format (old style)&lt;br /&gt;             $ (2)       Amount in words format&lt;br /&gt;             Z (3)       Old Amount in words Format&lt;br /&gt;             * (4)       Leading ***&lt;br /&gt;             _ (5)       Russian dash delimiter ("12.12" like "12-12")&lt;br /&gt;             = (6)       Russian truncate decimals ("12.00" like "12=")&lt;br /&gt;             . (7)       Numbers with "." delimiter&lt;br /&gt;             : (8)       Trimming of spaces before formating&lt;br /&gt;&lt;br /&gt; DDFcode     ##          DDF code&lt;br /&gt;             ###&lt;br /&gt;             ?##         Extended DDF Code&lt;br /&gt;             ?###&lt;br /&gt;             ??###&lt;br /&gt;&lt;br /&gt; Selector    L##         Left part selector&lt;br /&gt;             L###&lt;br /&gt;             R##         Right part selector&lt;br /&gt;             R###&lt;br /&gt;             S##@##      Substring,Length&lt;br /&gt;             S###@##&lt;br /&gt;             S##@###&lt;br /&gt;             S###@###&lt;br /&gt;&lt;br /&gt; Modifier(s) /*    To Currency Recalculation modifier&lt;br /&gt;             /?&lt;br /&gt;             /##&lt;br /&gt;             :*    From Currency Recalculation modifier&lt;br /&gt;             :?&lt;br /&gt;             :##&lt;br /&gt;             .#    Rounding modifier&lt;br /&gt;             -#    Coding segment,Length&lt;br /&gt;             +##   Price from Price List&lt;br /&gt;&lt;br /&gt; Style       @#    Date style (Numeric format):&lt;br /&gt;                     0 - Scala standard/2 digit year)&lt;br /&gt;                     1 - Scala extended/4 digit year)&lt;br /&gt;                     2 - Compressed(No delimiters)/2 digit year&lt;br /&gt;                     3 - Compressed/4 digit year&lt;br /&gt;                     4 - ISO 8601 (always YYYY-MM-DD)&lt;br /&gt;&lt;br /&gt;             @#    Date Style (Date in word Format)&lt;br /&gt;             @*    Output Currency Style (Amount in word format)&lt;br /&gt;             @?&lt;br /&gt;             @##&lt;br /&gt;&lt;br /&gt; Language    ???   Language&lt;br /&gt; FitFlag     ;     Example w/o fit:      1234567890&lt;ddfcode&gt;1234567890&lt;br /&gt;                    DDFCode=XXX          1234567890XXX      1234567890&lt;br /&gt;                    DDFCODE=XXXXXXXXXXXX 1234567890XXXXXXXXXXXX4567890&lt;br /&gt;                   Example with fit:     1234567890&lt;ddfcode  ;&gt;1234567890&lt;br /&gt;                    DDFCode=XXX          1234567890XXX12346567890&lt;br /&gt;                    DDFCODE=XXXXXXXXXXXX 1234567890XXXXXXXXXXXX1234567890&lt;br /&gt;&lt;br /&gt;             &amp;amp;     Equivalent to fit plus additionally substitutes XML internal entities&lt;br /&gt;                    &amp;amp; -&amp;gt; &amp;amp;amp;&lt;br /&gt;                    &amp;lt; -&amp;gt; &amp;amp;lt;&lt;br /&gt;                    &amp;gt; -&amp;gt; &amp;amp;gt;&lt;br /&gt;                    ' -&amp;gt; &amp;amp;apos;&lt;br /&gt;                    " -&amp;gt; &amp;amp;quot;&lt;br /&gt;                   &amp;amp; prevent ANSII2OEM conversion of DDF Code as well&lt;br /&gt;             \     Equivalent to fit without trimming spaces&lt;br /&gt;                   Example with fit:           1234567890&lt;ddfcode  \&gt;1234567890&lt;br /&gt;                       DDFCode=XXX             1234567890XXX       12346567890&lt;br /&gt;                       DDFCODE=XXXXXXXXXXXX    1234567890XXXXXXXXXXXX1234567890&lt;br /&gt;&lt;br /&gt;             &amp;gt;     End of DDF Code&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;На что стоит обратить внимание:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;операции над строками, &amp;lt;CodeL10&amp;gt; - взять 10 символов слева, &amp;lt;CodeR15&amp;gt; - взять 15 символов справа, &amp;lt; CodeS10@12&amp;gt;  - подстрока 12 символов, начиная с 10го&lt;br /&gt;&lt;li&gt;разные варианты заполнения &amp;lt;Code&amp;gt;, &amp;lt;Code;&amp;gt;, &amp;lt;Code\&amp;gt;&lt;/li&gt;&lt;/ul&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-3343695683535355568?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/h3hbDyXO7oY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/3343695683535355568/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2007/11/ddf.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/3343695683535355568?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/3343695683535355568?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/h3hbDyXO7oY/ddf.html" title="DDF отчеты" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2007/11/ddf.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYERng5fCp7ImA9WB9QFks.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-158656366983549943</id><published>2007-10-29T17:28:00.001+03:00</published><updated>2007-10-29T17:28:27.624+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-10-29T17:28:27.624+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Стандартные отчеты" /><category scheme="http://www.blogger.com/atom/ns#" term="Crystal Reports" /><title>Стандартные отчеты ERP Scala</title><content type="html">&lt;p&gt;Scala в своем составе имеет большое количество отчетов. Их можно условно разделить на отчетные формы и первичные документы. &lt;p&gt;К сожалению, логика и внешний вид большинства отчетных форм зашита в коде. При большом желании их тоже можно изменить, я даже видел такое решение - сделано было на основе постпроцессора. В двух словах: в настройках канала вывода указана программа (это и есть постпроцессор), Скала формирует отчет в виде текстового файла и запускает постпроцессор, передавая ему путь к файлу. Всего-то и остается написать программу, которая будет парсить файл и делать то, что вам нужно. Еще, как вариант, можно добраться до таких отчетов с помощью VBA, но это тоже будет разборка уже готового текста. В общем - мазохизм. Если уж требуется изменить такой отчет, то я бы лучше просто попробовал повторить его в виде внешнего отчета. &lt;p&gt;Но не все так плохо. Первичные документы можно менять в широких пределах. Для того, чтобы посмотреть список таких отчетов, запускаем команду "&lt;em&gt;Системные Утилиты - Документы - Изменение Определения Документа - Редактор Формата Отчета&lt;/em&gt;". В дереве вверху слева дерево отчетов. В этом же окне, если выбрать отчет, то можно увидеть список кодов, которые можно использовать в этом конкретном отчете в разрезе секций. &lt;p&gt;Отчеты хранятся по пути &lt;strong&gt;\iScala\WinDS\Resources\Reports\&lt;/strong&gt;. В ветке &lt;strong&gt;Standard\Модуль&lt;/strong&gt; трогать ничего не надо, там лежат стандартные варианты. Свои наработки выкладываем в ветку &lt;strong&gt;Custom\Модуль&lt;/strong&gt;. &lt;h3&gt;Имя отчета&lt;/h3&gt; &lt;p&gt;Формируется по правилу &lt;strong&gt;MMKKCCDDLLL.EXT&lt;/strong&gt;, где: &lt;ul&gt; &lt;li&gt;&lt;strong&gt;MM&lt;/strong&gt; - модуль (GL, PL, SL….) &lt;li&gt;&lt;strong&gt;KK&lt;/strong&gt; - код документа внутри модуля &lt;li&gt;&lt;strong&gt;CC&lt;/strong&gt; - код компании (документ с кодом компании 01 будет использоваться по умолчанию для всех компаний, если, конечно, для самой этой компании не определен свой документ) &lt;li&gt;&lt;strong&gt;DD&lt;/strong&gt; - код документа (работает в случае, если в заголовке конкретного документа есть поле "Код документа", это поле будет определять какой из шаблонов брать, по умолчанию берется отчет с кодом 00) &lt;li&gt;&lt;strong&gt;LLL&lt;/strong&gt; - код языка (ENG, RUS… - в iScala; 00, 01… - в Scala) &lt;li&gt;&lt;strong&gt;EXT&lt;/strong&gt; - расширение файл зависит от типа отчета (DDF, RTF, RPT)&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Например, GL040100RUS.DDF - Модуль GL, документ Cash Receipt/Приходный кассовый ордер, компания 01, код документа 00, язык русский, типа отчета DDF. &lt;p&gt;Сам отчет может быть сделан с использованием нескольких технологий. Какой конкретный вариант будет использоваться определяется настройками канала вывода. Дальше рассмотрим эти варианты. &lt;h3&gt;DDF&lt;/h3&gt; &lt;p&gt;Представляет из себя текстовый шаблон отчета. Отчет разбит на секции, список и порядок вывода секций изменить нельзя. Внутри секций используются коды полей для подстановки данных из системы. Имеется небольшой набор способов форматирования данных. &lt;h3&gt;RTF&lt;/h3&gt; &lt;p&gt;На самом деле это тоже DDF, и все правила подстановки полей там такие же. Просто внутри секции используется формат RFT, он ведь тоже текстовый. До iScala это был практически единственный способ сформировать красивый документ. При этом редактирование такого документа не самая простая задача. Если у вас iScala, то я бы избегал использования RTF отчетов. Единственный случай, когда это может быть оправдано, это унаследованные отчеты. Зачем ломать то, что работает? В остальных случаях я бы предпочел использовать Crystal Reports. &lt;h3&gt;RPT&lt;/h3&gt; &lt;p&gt;Это отчет на Crystal Reports. Здесь тоже без DDF не обошлось. Видимо для целей совместимости, такой отчет формируется в два этапа. Сначала отрабатывается специально заполненный DDF отчет, на основе его формируется набор данных(датасет), который и передается в RPT. Описание структуры передаваемых данных делается на основе TTX файла, этот файл необходим только во время дизайна отчета. RPT отчеты, на мой взгляд, сейчас самый удобный вариант для кастомизации, т.к. позволяют наиболее гибко настроить выходную форму.&lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-158656366983549943?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/32DJ2flCBjM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/158656366983549943/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2007/10/erp-scala.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/158656366983549943?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/158656366983549943?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/32DJ2flCBjM/erp-scala.html" title="Стандартные отчеты ERP Scala" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2007/10/erp-scala.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkAEQnY8eSp7ImA9WxJUFUo.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-6721720779102737627</id><published>2007-10-23T13:02:00.001+04:00</published><updated>2009-07-14T17:38:23.871+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-14T17:38:23.871+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MSSQL" /><title>MS SQL: Отладка хранимых процедур, триггеров</title><content type="html">&lt;p&gt;Сегодня не совсем скальская тема. Но в любом случае, поддержка БД MSSQL составляет существенную часть работы администратора ERP системы Scala. &lt;/p&gt;  &lt;p&gt;В &lt;strong&gt;MS SQL 2000&lt;/strong&gt; появилась возможность отлаживать хранимые процедуры. Правда отладчик был упрятан довольно далеко, в результате не все знают про его существование. &lt;/p&gt;  &lt;p&gt;Для запуска хранимой процедуры под отладчиком нужно запустить &lt;strong&gt;Query Analyzer&lt;/strong&gt;, приконнектиться к серверу, найти в &lt;strong&gt;Object Browser&lt;/strong&gt; (если это окно не открыто, то нажмите F8) нужную процедуру. Щелкните на ней правой кнопкой мыши и выберите пункт &lt;strong&gt;Debug&lt;/strong&gt;. Появится окно &lt;strong&gt;Debug Procedure&lt;/strong&gt; - в нем нужно заполнить значения параметров процедуры, с которыми вы хотите ее запустить. После нажатия кнопки &lt;strong&gt;Execute&lt;/strong&gt; вы попадет в отладчик. Возможности отладчика стандартные: пошаговое выполнение, проверка значений переменных, точки останова... Думаю тут ничего сложного. &lt;/p&gt;  &lt;p&gt;С хранимыми процедурами понятно. А как быть, если нужно отладить, например, триггер? В этом случае есть одна хитрость - нужно сначала сделать хранимую процедуру, действия в которой приведут к выполнению триггера. После этого запускаем отладку этой вспомогательной процедуры, доходим пошагово до строки, зажигающей триггер, и жмем на ней кнопку &lt;strong&gt;Step Into&lt;/strong&gt; (F11). В результате должен открыться текст триггера, а выполнение его остановится на первой строке - то, что нам и было нужно. Я думаю, что такой же фокус пройдет и с функцией, каюсь, сам не пробовал. &lt;/p&gt;  &lt;p&gt;В &lt;strong&gt;MS SQL 2005&lt;/strong&gt; функциональность отладки была существенно переработана. Теперь для отладки нужно использовать &lt;strong&gt;Visual Studio&lt;/strong&gt;. Причем версии Express Edition и Standard для этого не подойдут, только Professional и Team. Правда, все стало проще - в окне &lt;strong&gt;Server Explorer&lt;/strong&gt; щелкаем правой кнопкой мыши на любом объекте БД (хранимой процедуре, триггере, функции), выбираем из локального меню пункт &lt;strong&gt;Step Into…&lt;/strong&gt; и попадаем в отладку. Причем, отлаживать можно как хранимые процедуры, написанные на T-SQL, так и на C# или VB.NET. &lt;/p&gt;  &lt;p&gt;Попробовал воспользоваться для отладки процедуры на 2005м сервере Query Analyzer из 2000го - ругается &lt;strong&gt;[SQL-DMO]You must use SQL Server 2005 management tools to connect to this server&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; Ситуация с отладчиком улучшилась с выходом &lt;strong&gt;MS SQL 2008&lt;/strong&gt;. Теперь запускать отладку можно непосредственно из &lt;strong&gt;MS SQL Server Management Studio&lt;/strong&gt;. Просто в окне редактирования запускаем скрипт через ALT+F5. Доступны стандартные методы отладки.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-6721720779102737627?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/KgHBquTWwBo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/6721720779102737627/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2007/10/ms-sql.html#comment-form" title="Комментарии: 2" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/6721720779102737627?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/6721720779102737627?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/KgHBquTWwBo/ms-sql.html" title="MS SQL: Отладка хранимых процедур, триггеров" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2007/10/ms-sql.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ENQ34zcCp7ImA9WB9RFU4.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-6303459300079664393</id><published>2007-10-16T15:49:00.001+04:00</published><updated>2007-10-16T15:54:52.088+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-10-16T15:54:52.088+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="БД ERP iScala" /><category scheme="http://www.blogger.com/atom/ns#" term="Модуль GL" /><title>Синхронизация справочников учетных измерений</title><content type="html">&lt;p&gt;Довольно часто в Scala заводится две компании - одна для российского и одна для западного учета. В этом случае справочники учетных измерений могут существенно совпадать. Получается, что нужно заводить, редактировать и удалять новые значения сразу в нескольких места. Это не очень удобно.  &lt;/p&gt;&lt;p&gt;Существует несколько способов решения. Например, можно сделать SQL-скрипт, который будет синхронизировать нужные справочники и регулярно запускать его (руками либо запланировать job). Еще можно сделать триггер, который будет выполнять такую работу. Вот и займемся созданием такого триггера.  &lt;/p&gt;&lt;p&gt;Текст триггера (проверено iScala 2.2 SR1): &lt;/p&gt;&lt;pre&gt;&lt;code&gt;create trigger GL03SYNC_&lt;yy&gt; ON [dbo].[GL03&lt;c1&gt;&lt;yy&gt;]&lt;br /&gt;for insert, update, delete&lt;br /&gt;as&lt;br /&gt;&lt;br /&gt;begin&lt;br /&gt;&lt;br /&gt;set nocount on&lt;br /&gt;&lt;br /&gt;declare @DelCount int, @InsCount int, @DimList as nvarchar(100)&lt;br /&gt;&lt;br /&gt;-- список УИ, все 'BCDEFGHIJ'&lt;br /&gt;set @DimList = 'BCDE'&lt;br /&gt;&lt;br /&gt;select @DelCount = count(*) from deleted&lt;br /&gt;select @InsCount = count(*) from inserted&lt;br /&gt;&lt;br /&gt;-- Update&lt;br /&gt;if @DelCount &amp;gt; 0 and @InsCount &amp;gt; 0&lt;br /&gt;begin&lt;br /&gt; update s set&lt;br /&gt;   GL03001 = i.GL03001, GL03002 = i.GL03002, GL03003 = i.GL03003, GL03004 = i.GL03004, GL03005 = i.GL03005,&lt;br /&gt;   GL03006 = i.GL03006, GL03007 = i.GL03007, GL03008 = i.GL03008, GL03009 = i.GL03009, GL03010 = i.GL03010,&lt;br /&gt;   GL03011 = i.GL03011, GL03012 = i.GL03012, GL03013 = i.GL03013, GL03014 = i.GL03014, GL03015 = i.GL03015,&lt;br /&gt;   GL03016 = i.GL03016, GL03017 = i.GL03017, GL03018 = i.GL03018, GL03019 = i.GL03019, GL03020 = i.GL03020&lt;br /&gt; from GL03&lt;c2&gt;&lt;yy&gt; s&lt;br /&gt; join inserted i on i.GL03001 = s.GL03001 and i.GL03002 = s.GL03002&lt;br /&gt; where charindex(i.GL03001, @DimList) &amp;gt; 0&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;-- Delete&lt;br /&gt;if @DelCount &amp;gt; 0 and @InsCount = 0&lt;br /&gt;begin&lt;br /&gt; delete s&lt;br /&gt; from GL03&lt;c2&gt;&lt;yy&gt; s&lt;br /&gt; join deleted i on i.GL03001 = s.GL03001 and i.GL03002 = s.GL03002&lt;br /&gt; where charindex(i.GL03001, @DimList) &amp;gt; 0&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;-- Insert&lt;br /&gt;if @DelCount = 0 and @InsCount &amp;gt; 0&lt;br /&gt;begin&lt;br /&gt; insert into GL03&lt;c2&gt;&lt;yy&gt;&lt;br /&gt; select * from inserted i where charindex(i.GL03001, @DimList) &amp;gt; 0 and not exists&lt;br /&gt;   (select * from GL03&lt;c2&gt;&lt;yy&gt; s where i.GL03001 = s.GL03001 and i.GL03002 = s.GL03002)&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;end&lt;/yy&gt;&lt;/c2&gt;&lt;/yy&gt;&lt;/c2&gt;&lt;/yy&gt;&lt;/c2&gt;&lt;/yy&gt;&lt;/c2&gt;&lt;/yy&gt;&lt;/c1&gt;&lt;/yy&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;  &lt;/p&gt;&lt;p&gt;В приведенном тексте нужно:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Заменить &amp;lt;C1&amp;gt; на код компании-источника&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Заменить &amp;lt;C2&amp;gt; на код исходной компании-приемника&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Заменить &amp;lt;YY&amp;gt; на финансовый год (2 символа)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Отредактировать список учетных измерений, подлежащих синхронизации - переменная @DimList&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Триггер требуется повесить на все таблицы GL03 в компаниях-источниках (обычно компания российского учета). При заведении нового года нужно не забывать добавлять и новый триггер.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;После установки триггера, все операции в синхронизируемых справочниках желательно проводить только в компании-источнике, иначе возникнет расхождение.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-6303459300079664393?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/8IUTgD5lorQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/6303459300079664393/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2007/10/blog-post_16.html#comment-form" title="Комментарии: 3" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/6303459300079664393?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/6303459300079664393?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/8IUTgD5lorQ/blog-post_16.html" title="Синхронизация справочников учетных измерений" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>3</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2007/10/blog-post_16.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UAQnYyfSp7ImA9WxRaEEg.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-6689928712260974372</id><published>2007-10-10T09:56:00.000+04:00</published><updated>2008-12-12T08:20:43.895+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-12T08:20:43.895+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="VBA" /><category scheme="http://www.blogger.com/atom/ns#" term="Crystal Reports" /><category scheme="http://www.blogger.com/atom/ns#" term="UDDB" /><title>Заполняем параметр отчета из VBA</title><content type="html">&lt;p&gt;Задача: в любом стандартном отчете(Crystal Reports) получить возможность добавлять расшифровку подписи директора и главного бухгалтера.&lt;br&gt;Начнем с хранения расшифровок. Заведем для этого &lt;a href="http://blog.scalahelp.ru/2007/07/uddb.html"&gt;несвязанную UDDB таблицу&lt;/a&gt; (компание-независимая, годо-независимая) Params:&lt;/p&gt; &lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5119583396089507906" style="display: block; margin: 0px auto 10px; cursor: pointer; text-align: center" alt="" src="http://3.bp.blogspot.com/_Igmrj6OQOXY/Rwxp-VnnMEI/AAAAAAAAADY/E-XCNM3FfdI/s400/Params1.png" border="0"&gt;&lt;/p&gt; &lt;p&gt;Заполняем таблицу (считаем что ID для директора DIR, а для главного бухгалтера GLBUH):&lt;/p&gt; &lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5119583396089507922" style="display: block; margin: 0px auto 10px; cursor: pointer; text-align: center" alt="" src="http://3.bp.blogspot.com/_Igmrj6OQOXY/Rwxp-VnnMFI/AAAAAAAAADg/AVh39PmY7UQ/s400/Params2.png" border="0"&gt;&lt;/p&gt; &lt;p&gt;Добавляем новый VBA проект. Он будет срабатывать при запуске печати, просматривать отчет и, если в отчете есть параметры DIR или GLBUH, то заполняет их соответствующими значениями из UDDB таблицы. В новом проекте делаем двойной щелчок на ThisProcess, в открывшемся окне редактора вставляем код: &lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&lt;/code&gt;'   Declare the report engine to access its events&lt;br&gt;Dim WithEvents m_rptEngine As ScaPrintEngine.ScaReportEngine&lt;br&gt;Dim dctDict As New Scripting.Dictionary&lt;br&gt;&lt;br&gt;Private Sub m_rptEngine_ReportBeforePreview(ByVal Report As ScaPrintEngine.IScaReport, PreviewReport As Boolean)&lt;br&gt;   Dim crParamDef As CRAXDRT.ParameterFieldDefinition&lt;br&gt;   Dim crParamDefs As CRAXDRT.ParameterFieldDefinitions&lt;br&gt;  &lt;br&gt;   Set crParamDefs = Report.NativeReport.ParameterFields&lt;br&gt;   For Each crParamDef In crParamDefs&lt;br&gt;       With crParamDef&lt;br&gt;           If dctDict.Exists(.ParameterFieldName) Then _&lt;br&gt;               .SetCurrentValue dctDict(.ParameterFieldName)&lt;br&gt;       End With&lt;br&gt;   Next crParamDef&lt;br&gt;End Sub&lt;br&gt;&lt;br&gt;Private Sub ScaProcessPI_ActionStart(ByVal ActCode As String, _&lt;br&gt;   ByVal MenuParam As String, ByVal ActType As Long, ByVal ActParam As Variant)&lt;br&gt;'   Initialise the report engine member on action start&lt;br&gt;   Set m_rptEngine = ThisProcess.Reporter&lt;br&gt;End Sub&lt;br&gt;&lt;br&gt;Private Sub m_rptEngine_NewReport(ByVal Report As ScaPrintEngine.IScaReport)&lt;br&gt;'   Save action code in the report name&lt;br&gt;   Report.Name = ThisProcess.ActionCode&lt;br&gt;&lt;br&gt;   Dim objConnection As New ADODB.Connection&lt;br&gt;   Dim objCommand As New ADODB.Command&lt;br&gt;   Dim objRs As New ADODB.Recordset&lt;br&gt;&lt;br&gt;   objConnection.ConnectionString = ThisProcess.UserContext.GetConnectionString(scaADO)&lt;br&gt;   objConnection.Open&lt;br&gt;   objCommand.CommandText = "select ID, Value from Params0000 where CompanyCode = '" _&lt;br&gt;       &amp;amp; ThisProcess.UserContext.CompanyCode &amp;amp; "'"&lt;br&gt;   Set objCommand.ActiveConnection = objConnection&lt;br&gt;   objCommand.CommandType = adCmdText&lt;br&gt;   Set objRs = objCommand.Execute&lt;br&gt;  &lt;br&gt;   dctDict.RemoveAll&lt;br&gt;   Do While Not objRs.EOF&lt;br&gt;       dctDict.Add RTrim(objRs.Fields("ID").Value), RTrim(objRs.Fields("Value").Value)&lt;br&gt;       objRs.MoveNext&lt;br&gt;   Loop&lt;br&gt;&lt;br&gt;   objRs.Close&lt;br&gt;   objConnection.Close&lt;br&gt;  &lt;br&gt;   Set objRs = Nothing&lt;br&gt;   Set objCommand = Nothing&lt;br&gt;   Set objConnection = Nothing&lt;br&gt;  &lt;br&gt;End Sub&lt;br&gt;&lt;/pre&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Добавляем недостающие ссылки:&lt;/p&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5119583400384475234" style="display: block; margin: 0px auto 10px; cursor: pointer; text-align: center" alt="" src="http://4.bp.blogspot.com/_Igmrj6OQOXY/Rwxp-lnnMGI/AAAAAAAAADo/Jikojdxbnf8/s400/Params3.png" border="0"&gt;&lt;/p&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Переводим проект в глобальный. &lt;/p&gt;&lt;br&gt;&lt;br /&gt;&lt;p&gt;Все. Добавляем в любой стандартный отчет параметры DIR и GLBUH, кидаем их на форму. Значения, если все сделано правильно, заполнятся автоматически при печати.&lt;br&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5119583400384475250" style="display: block; margin: 0px auto 10px; cursor: pointer; text-align: center" alt="" src="http://4.bp.blogspot.com/_Igmrj6OQOXY/Rwxp-lnnMHI/AAAAAAAAADw/cnBY0AlQD5E/s400/Params4.png" border="0"&gt;&lt;br&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5119583404679442562" style="display: block; margin: 0px auto 10px; cursor: pointer; text-align: center" alt="" src="http://1.bp.blogspot.com/_Igmrj6OQOXY/Rwxp-1nnMII/AAAAAAAAAD4/7-p-2pngbgg/s400/Params5.png" border="0"&gt;&lt;br&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Список параметров можно расширять только добавляя записи в Params, в коде исправления не потребуются. Пример набросал прямо сейчас, так что ошибки могут быть, но как отправная точка подойдет.&lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-6689928712260974372?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/oe-dM7hswJ0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/6689928712260974372/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2007/10/vba.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/6689928712260974372?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/6689928712260974372?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/oe-dM7hswJ0/vba.html" title="Заполняем параметр отчета из VBA" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_Igmrj6OQOXY/Rwxp-VnnMEI/AAAAAAAAADY/E-XCNM3FfdI/s72-c/Params1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2007/10/vba.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UARX48fip7ImA9WxRaEEg.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-4076934826858391144</id><published>2007-10-05T12:35:00.000+04:00</published><updated>2008-12-12T08:20:44.076+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-12T08:20:44.076+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Модуль PC" /><category scheme="http://www.blogger.com/atom/ns#" term="Модуль SC" /><title>ГТД в информации о партии</title><content type="html">&lt;p&gt;&lt;span lang="ru"&gt;Специального поля под ГТД (Грузовая Таможенная Декларация) в &lt;/span&gt;&lt;span lang="en-US"&gt;Scala &lt;/span&gt;&lt;span lang="ru"&gt;нет. Хранить эту информацию уместнее всего в партии. Проще всего отвести для ГТД одно из полей пользователя партии.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span lang="ru"&gt;Запускаем команду "Управление Запасами - Прочее - Настройка - Параметры". Идем на закладку 3 "Поля пользователя в партии", выбираем незанятое поле - в моем случае второе. В первом поле пишем название - "ГТД", второе поле "Нет", если не хотим проверки по справочнику. Если же проверка требуется, то ставим "Да" и дополнительно заполняем соответствующий справочник, не забывая поддерживать его в актуальном состоянии ("Управление Запасами - Прочее - Настройка - Файлы кодов - ГТД").&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5117768729457274930" style="display: block; margin: 0px auto 10px; cursor: pointer; text-align: center" alt="" src="http://2.bp.blogspot.com/_Igmrj6OQOXY/RwX3i1nnMDI/AAAAAAAAADQ/qT1nFdmwcMk/s400/GTD1.png" border="0"&gt;&lt;/p&gt; &lt;p&gt;При выборе поля для ГТД нужно учесть, что максимальная длинна полей пользоватея партии разная:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;20  &lt;li&gt;10  &lt;li&gt;10  &lt;li&gt;8  &lt;li&gt;8  &lt;li&gt;4  &lt;li&gt;4  &lt;li&gt;2  &lt;li&gt;2  &lt;li&gt;1&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Трудно сказать с чем связан такой разнобой. Размер самого ГТД не лимитирован. Лучше всего подходит поле 1, т.к. оно самое длинное, как вариант можно&amp;nbsp; использовать два поля.&lt;/p&gt; &lt;p&gt;Если такой размер полей не устраивает, то можно хранить ГТД в дополнительном описании партии. Например, в первом поле текста. Размера в 70 символов гарантированно хватит. Дополнительно нужно сделать процесс введения ГТД удобным. Дело в том, что при настройках по умолчанию окно ввода текста партии не появляется. Для изменения этого поведения нужно запустить команду "Управление Запасами - Прочее - Дополнительные Параметры", закладка 2, параметр "Ввод текста о партии при поступлении" = Да. Минусом данного способа является неудобство при выводе в DDF.&lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-4076934826858391144?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/ldFMZk1qZ_c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/4076934826858391144/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2007/10/blog-post.html#comment-form" title="Комментарии: 2" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/4076934826858391144?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/4076934826858391144?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/ldFMZk1qZ_c/blog-post.html" title="ГТД в информации о партии" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_Igmrj6OQOXY/RwX3i1nnMDI/AAAAAAAAADQ/qT1nFdmwcMk/s72-c/GTD1.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2007/10/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UARXw8fCp7ImA9WxRaEEg.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-8184982801461055880</id><published>2007-09-25T14:50:00.001+04:00</published><updated>2008-12-12T08:20:44.274+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-12T08:20:44.274+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Внешние отчеты" /><title>RGW плюсы и минусы использования</title><content type="html">&lt;p&gt;RGW - генератор отчетности. Автор Рушан Абдряшитов. Проект родился не внутри R&amp;amp;D, а скорее от недостатка средств отчетности для консультантов при внедрении. Это один из немногих внешних генераторов отчетов, заточенных под Скалу. Позволяет делать несколько типов отчетов:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Отчет на основе окошек. Окошко в данном случае - это ячейка в шаблоне отчета, в которой прописаны правила расчета суммы в этой ячейке. Что-то вроде этого:&lt;img id="BLOGGER_PHOTO_ID_5114092654063726626" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://2.bp.blogspot.com/_Igmrj6OQOXY/RvjoLFnnMCI/AAAAAAAAADI/saxefVB9vVE/s400/RGW1.png" border="0" /&gt;По такой схеме удобно, например, делать балансовые формы. Образец такой формы есть в дистрибутиве RGW. Не требуется знать ничего о структуре базы данных, просто описываем правила расчета бухгалтерским языком. &lt;/li&gt;&lt;li&gt;Формирование выборки по произвольному SQL запросу. В тексте запроса можно использовать макросы CC, YY, Period1, Period2 (Код компании, финансовый год, дата начала периода и дата конца периода соответственно). Запрос может быть только один, поддерживается группировка по одному полю. &lt;/li&gt;&lt;li&gt;Корреспонденция счетов. В генератор встроен механизм, который в полуавтоматическом режиме, пытается привести многострочные проводки Скалы к виду дебет-кредит. Я обычно &lt;a href="http://blog.scalahelp.ru/2007/07/blog-post.html"&gt;пытаюсь отговорить&lt;/a&gt; от использования корреспонденции, раз уж выбрана Scala. Если без этого никак, то другого готового способа, кроме как RGW, я не знаю. &lt;/li&gt;&lt;li&gt;Запуск отчетов Crystal Reports. Для использования под RGW отчеты требуют небольших правок. Следует учитывать, что начиная с версии iScala 2.3 имеется возможность вставлять RPT отчеты непосредственно в меню Скалы.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Плюсы RGW: &lt;/p&gt;&lt;ul&gt; &lt;li&gt;Простая возможность создавать отчеты своими силами, не прибегая к услугам консультантов &lt;/li&gt;&lt;li&gt;Корреспонденция счетов &lt;/li&gt;&lt;li&gt;Excel как основа для шаблоном, так и выходной формат&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Минусы: &lt;/p&gt;&lt;ul&gt; &lt;li&gt;После установки RGW Excel в некоторых ситуациях начинает вести себя не совсем привычным способом &lt;/li&gt;&lt;li&gt;Нельзя встроить отчеты в меню Скалы&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Стоит ли покупать RGW? Насколько я знаю, российским клиентам могут предложить этот генератор при продаже лицензии в нагрузку - берите, пусть будет. Если же требуется платить за него отдельно, то решайте сами.  &lt;/p&gt;&lt;p&gt;Думаю, что не будет преступлением, если я выложу здесь инструкцию пользователя RGW. Она поможет оценить, что может этот генератор. &lt;a href="http://www.scalahelp.ru/RGW_UserManual.zip"&gt;Скачать инструкцию&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-8184982801461055880?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/bM-FrqVLe10" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/8184982801461055880/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2007/09/rgw.html#comment-form" title="Комментарии: 2" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/8184982801461055880?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/8184982801461055880?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/bM-FrqVLe10/rgw.html" title="RGW плюсы и минусы использования" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_Igmrj6OQOXY/RvjoLFnnMCI/AAAAAAAAADI/saxefVB9vVE/s72-c/RGW1.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2007/09/rgw.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UARXY7cSp7ImA9WxRaEEg.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-7639653109382171801</id><published>2007-09-19T11:40:00.000+04:00</published><updated>2008-12-12T08:20:44.809+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-12T08:20:44.809+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Разное" /><title>Заголовки полей</title><content type="html">&lt;p style="margin: 0in; font-size: 11pt; font-family: verdana;"&gt;&lt;span style="font-size:100%;"&gt;Довольно частой является практика, когда в стандартных формах не хватает каких-то полей и для хранения нужных значений используют свободные поля, а новое назначение поля закрепляется только в процедурах/инструкциях пользователя.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0in; font-size: 11pt; font-family: verdana;"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin: 0in; font-size: 11pt; font-family: verdana;"&gt;&lt;span style="font-size:100%;"&gt;В таких случаях для удобства пользователей стоит изменить заголовок поля. Предположим, что хотим заменить заголовок "Текст" на форме ввода счетов-фактуры в Книге Закупок. Новый заголовок будет "Основание". Исхожу из того, что основной язык русский. Что имеем на данный момент:&lt;/span&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5111227287644131938" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://3.bp.blogspot.com/_Igmrj6OQOXY/Ru66Iz5P0mI/AAAAAAAAAC4/7c8aVYi3Rnw/s400/Lbl1Before.png" border="0" /&gt;&lt;/p&gt; &lt;p style="margin: 0in; font-size: 11pt; font-family: verdana;"&gt;&lt;span style="font-size:100%;"&gt;Как это сделать:&lt;/span&gt;&lt;/p&gt; &lt;ol style="font-family: verdana;"&gt; &lt;li&gt; &lt;div style="margin: 0in; font-size: 11pt;"&gt;&lt;span style="font-size:100%;"&gt;Определяем имя формы. Для этого открываем нужную форму и смотрим на статусную строку Скалы.&lt;/span&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5111227283349164626" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://2.bp.blogspot.com/_Igmrj6OQOXY/Ru66Ij5P0lI/AAAAAAAAACw/GYhmVO64jkU/s400/LblStatus.png" border="0" /&gt;&lt;span style="font-size:100%;"&gt;Значит имя формы PL0030&lt;/span&gt;&lt;/div&gt;&lt;/li&gt; &lt;li&gt; &lt;div style="margin: 0in; font-size: 11pt;"&gt;&lt;span style="font-size:100%;"&gt;Редактируем LAN-файл. В LAN-файлах хранятся строки, являющиеся заголовками полей, сообщениями об ошибках. Для каждого языка свой файл. Запускаем iScala Administration Console. Идем в раздел Языки - Строки LAN файлов - RUS - PL - PL0030. На последнем пункте щелкаем правой кнопкой и выбираем команду "Редактировать". В правой панели ищем исходную строку. У меня она под номером 101 (iScala 2.2 SR1 в других версиях Scala это может отличаться) и заменяем "Текст" на "Основание". Снова вызываем локальное меню на пункте PL0030 и выбираем команду "Сохранить". Теперь в дереве будет вместо PL0030 написано PL0030(Польз.). Это означает, что был создан пользовательский вариант LAN файла.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt; &lt;li&gt; &lt;div style="margin: 0in; font-size: 11pt;"&gt;&lt;span style="font-size:100%;"&gt;Проверка. Запускам команду ввода счетов-фактур и видим результат:&lt;/span&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5111227287644131954" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://3.bp.blogspot.com/_Igmrj6OQOXY/Ru66Iz5P0nI/AAAAAAAAADA/eLLFqWuGukc/s400/Lbl1After.png" border="0" /&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style="font-family: verdana;"&gt;&lt;span style="font-size:100%;"&gt;Но этим способом можно воспользоваться не на всех формах. Часть форм выполнена описывается SDF файлами, в этом случае в LAN файлах заголовков полей нет, они хранятся непосредственно в в SDF файле. Приведу пример смены заголовка и в такой форме. Предположим мы хотим переименовать заголовок поля "Ссылка" на форме ввода/корректировки поставщика. Предполагается, что Скала установлена на диске C: в каталог по умолчанию. Для этого нужно сделать следующее:&lt;/span&gt;&lt;/p&gt; &lt;ol style="font-family: verdana;"&gt; &lt;li&gt;&lt;span style="font-size:100%;"&gt;Подсматриваем имя формы - PL0010&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="font-size:100%;"&gt;Находим файл C:\Program Files\Scala Business Solutions NV\iScala\WinDS\Resources\FormsSDF\Standard\RUS\PL\pl0010x.sdf и копируем его в каталог C:\Program Files\Scala Business Solutions NV\iScala\WinDS\Resources\FormsSDF\Custom\RUS\PL\&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="font-size:100%;"&gt;Открываем на редактирование файл pl0010x.sdf в ветке Custom. Находим в разделе [Fields] нужный заголовок и изменяем его&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="font-size:100%;"&gt;Проверка. Запускам нашу форму и убеждаемся, что заголовок изменился.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p style="font-family: verdana;"&gt;&lt;span style="font-size:100%;"&gt;Кроме корректировки заголовков полей, SDF файлы позволяют в небольших пределах изменять сами формы. Если, например, найти по заголовку нужное поле и удалить эту и следующую строку, то это поле не будет отображаться на форме. Правда делать такие эксперименты нужно осторожно.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-7639653109382171801?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/qreBViIq8y8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/7639653109382171801/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2007/09/blog-post_19.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/7639653109382171801?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/7639653109382171801?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/qreBViIq8y8/blog-post_19.html" title="Заголовки полей" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_Igmrj6OQOXY/Ru66Iz5P0mI/AAAAAAAAAC4/7c8aVYi3Rnw/s72-c/Lbl1Before.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2007/09/blog-post_19.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ABSHs4cSp7ImA9WB5aFks.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-6697798275980366403</id><published>2007-09-13T09:35:00.001+04:00</published><updated>2007-09-13T09:35:59.539+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-09-13T09:35:59.539+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="БД ERP iScala" /><category scheme="http://www.blogger.com/atom/ns#" term="Модуль GL" /><title>Типы проводок</title><content type="html">&lt;p&gt;В поле GL06012 указывается тип проводки. Это бинарное поле, для удобства его преобразовывают convert(char(1), GL06012). Ниже приводится список кодов (коды приведены как в буквенном, так и в бинарном виде): &lt;ul&gt; &lt;li&gt;/ - 0x2F - Входящее сальдо &lt;li&gt;0 - 0x30 - Проводка ГК (прямой ввод) &lt;li&gt;1 - 0x31 - Сторно в ГК &lt;li&gt;2 - 0x32 - Периодическое распределение / переоценка валютных счетов &lt;li&gt;3 - 0x33 - Счет покупателя (КП) &lt;li&gt;4 - 0x34 - Платеж покупателя (КП) &lt;li&gt;5 - 0x35 - Счет поставщика (КЗ) &lt;li&gt;6 - 0x36 - Платеж поставщика (КЗ) &lt;li&gt;7 - 0x37 - Амортизация ОС (из модуля ОС) &lt;li&gt;8 - 0x38 - Автораспределение (периодические: 51-99) &lt;li&gt;9 - 0x39 - Проводка модуля Управление Проектами &lt;li&gt;A - 0x41 - Проводка модуля Зарплата &lt;li&gt;B - 0x42 - Проводка модуля Управление Запасами &lt;li&gt;C - 0x43 - Проводка модуля Долговые Обязательства &lt;li&gt;D - 0x44 - Проводка модуля Касса (ГК) &lt;li&gt;K - 0x4B - Переоценка ОС &lt;li&gt;L - 0x4C - Книги Выверки (ГК) &lt;li&gt;S - 0x53 - Проводка из другой компании при консолидации &lt;li&gt;T - 0x54 - Временные проводки по чекам в ГК (только в журнале ГК) &lt;li&gt;U - 0x55 - Бюджет 1 &lt;li&gt;V - 0x56 - Бюджет 2 &lt;li&gt;W - 0x57 - Бюджет 3 &lt;li&gt;X - 0x58 - Бюджет 4 &lt;li&gt;Y - 0x59 - Бюджет 5 &lt;li&gt;Z - 0x5A - Бюджет предыдущего года &lt;li&gt;\ - 0x5C - Входящее сальдо по проводкам отчетного уровня &lt;li&gt;a - 0x61 - Проводка по отчетным уровням &lt;li&gt;c - 0x63 - Проводка по отчетным уровням Бюджет 1 &lt;li&gt;d - 0x64 - Проводка по отчетным уровням Бюджет 2 &lt;li&gt;e - 0x65 - Проводка по отчетным уровням Бюджет 3 &lt;li&gt;f - 0x66 - Проводка по отчетным уровням Бюджет 4 &lt;li&gt;g - 0x67 - Проводка по отчетным уровням Бюджет 5 &lt;li&gt;h - 0x68 - Проводка по отчетным уровням Бюджет предыдущего года &lt;li&gt;i - 0x69 - Проводка закрывающего периода &lt;li&gt;j - 0x6A - Проводка по отчетным уровням закрывающего периода &lt;li&gt;| - 0x7C - Перенесенное входящее сальдо по валютным счетам&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Спасибо за список пользователю &lt;a href="http://scala.org.ru/scala/profile.php?mode=viewprofile&amp;amp;u=18"&gt;Jugulator&lt;/a&gt; с &lt;a href="http://scala.org.ru/scala/"&gt;форума "скалолазов"&lt;/a&gt;.&lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-6697798275980366403?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/cel-C_Mu90A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/6697798275980366403/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2007/09/blog-post.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/6697798275980366403?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/6697798275980366403?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/cel-C_Mu90A/blog-post.html" title="Типы проводок" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2007/09/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIGSH8-cSp7ImA9WB5aEEw.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-6339040012112185103</id><published>2007-09-05T22:22:00.001+04:00</published><updated>2007-09-05T22:22:09.159+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-09-05T22:22:09.159+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Разное" /><title>Что такое RSS</title><content type="html">&lt;p&gt;Если вы регулярно просматриваете хотя бы несколько сайтов, то вам просто необходимо знать о RSS-лентах новостей. Что же это такое? Это стандартный способ оформления всего нового, что появилось на сайте. Самое главное слово здесь СТАНДАРТНЫЙ, оно позволило возникнуть новому классу программ - RSS агрегаторам. Такая программа кардинально меняет способ слежения за новинками в сети. Вместо того, чтобы проверять случайным образом, вы просто собираете в своем агрегаторе ссылки на сайты, блоги и т.д., к которым вы неравнодушны. При запуске проверки вы видите&amp;nbsp;список всего, что есть нового в собранных лентах новостей. Это очень экономит время, да и не пропустите ничего важного. &lt;p&gt;Как теперь выглядит общение с интернетом? Приходим на работу, запускаем агрегатор и видим все, что появилось на сайтах, за которыми мы следим. В процессе чтения новостей или захода на новые сайты вдруг натыкаемся на новый многообещающий ресурс - ищем там ссылку на ленту новостей и добавляем в агрегатор. Раз в одну-две недели просматриваем списки и удаляем то, что не оправдало надежд. &lt;p&gt;Осталось выбрать агрегатор. Раньше я пользовался программой RssBandit &lt;a href="http://rssbandit.org/"&gt;http://rssbandit.org/&lt;/a&gt;. Удобный агрегатор с полным набором возможностей. Но в последнее время переехал на Google Reader &lt;a href="http://www.google.com/reader/"&gt;http://www.google.com/reader/&lt;/a&gt;. Это не совсем программа, это скорее сайт-агрегатор, но сделан он так, что этого не замечаешь. Зато получаешь кучу плюсов, например, не важно с какого компьютера ты заходишь, все что нужно, хранится на сайте. В общем -&amp;nbsp;советую. Не буду пытаться описать использование во всех подробностях, вы и сами не глупые люди, разберетесь, только не торопитесь с выводами - на Google Reader я переходил 3 раза прежде чем остался на нем. &lt;p&gt;К чему я это? Ах да - ссылка на RSS-ленту моего сайта &lt;a href="http://feeds.scalahelp.ru/scalahelpru"&gt;http://feeds.scalahelp.ru/scalahelpru&lt;/a&gt;. Именно эту ссылку нужно скормить вашему любимому агрегатору.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-6339040012112185103?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/5_2VyWB9-O0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/6339040012112185103/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2007/09/rss.html#comment-form" title="Комментарии: 2" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/6339040012112185103?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/6339040012112185103?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/5_2VyWB9-O0/rss.html" title="Что такое RSS" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2007/09/rss.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04MRns-fip7ImA9WB5bE0U.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-6044297843527878455</id><published>2007-08-29T11:39:00.001+04:00</published><updated>2007-08-29T14:06:27.556+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-08-29T14:06:27.556+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="БД ERP iScala" /><category scheme="http://www.blogger.com/atom/ns#" term="Модуль GL" /><title>Учетная строка</title><content type="html">&lt;p&gt;Учетная строка включает в себя счет и до девяти учетных измерений. Длина любой из частей не может превышать 12 символов. &lt;p&gt;Я уже затрагивал эту тему в &lt;a href="http://blog.scalahelp.ru/2007/08/blog-post_21.html"&gt;предыдущем посте&lt;/a&gt;, но решил вернуться, ведь разбирать учетную строку на части в запросах приходится часто и довольно быстро надоедает вспоминать ее раскладку.  &lt;p&gt;Можно облегчить себе задачу, если создать в базе набор функций, каждая из которых будет возвращать нужное учетное измерение. В результате вместо substring(GL06001, 13, 6) можно будет писать dbo.Dim1(GL06001). В добавок отчеты, сделанные с использованием таких функций можно будет без проблем переносить на другие инсталляции Scala, где разбивка учетной строки отличается, потребуется только подправить функции.  &lt;p&gt;Можно пойти еще дальше и читать разбивку учетной строки из настроек и сделать функции универсальными. Не советую этого делать, т.к. использоваться они могут довольно часто, а зачем нам лишние запросы? Поправить же функции при необходимости дело пары минут.  &lt;p&gt;Сами функции получаются простыми (создать лучше во всех компанейских базах данных, чтобы при вызове не нужно было указывать имя БД).  &lt;p&gt;Для примера возьмем следующую разбивку учетной строки: Счет - 12, УИ1 - 4, УИ2 - 6, УИ3 - 6, УИ4 - 4, УИ5 - 3, УИ6 - 6, УИ7 - 3, УИ8 - 2, УИ9 - 4. Создаем функции:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;CREATE FUNCTION dbo.Account(@AccountString nvarchar(50))&lt;br /&gt;RETURNS nvarchar(12)&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;  RETURN rtrim(left(@AccountString, 12))&lt;br /&gt;END&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;CREATE FUNCTION dbo.Dim1(@AccountString nvarchar(50))&lt;br /&gt;RETURNS nvarchar(12)&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;  RETURN rtrim(substring(@AccountString, 13, 4))&lt;br /&gt;END&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;CREATE FUNCTION dbo.Dim2(@AccountString nvarchar(50))&lt;br /&gt;RETURNS nvarchar(12)&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;  RETURN rtrim(substring(@AccountString, 17, 6))&lt;br /&gt;END&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;CREATE FUNCTION dbo.Dim3(@AccountString nvarchar(50))&lt;br /&gt;RETURNS nvarchar(12)&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;  RETURN rtrim(substring(@AccountString, 23, 6))&lt;br /&gt;END&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;CREATE FUNCTION dbo.Dim4(@AccountString nvarchar(50))&lt;br /&gt;RETURNS nvarchar(12)&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;  RETURN rtrim(substring(@AccountString, 29, 4))&lt;br /&gt;END&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;CREATE FUNCTION dbo.Dim5(@AccountString nvarchar(50))&lt;br /&gt;RETURNS nvarchar(12)&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;  RETURN rtrim(substring(@AccountString, 33, 3))&lt;br /&gt;END&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;CREATE FUNCTION dbo.Dim6(@AccountString nvarchar(50))&lt;br /&gt;RETURNS nvarchar(12)&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;  RETURN rtrim(substring(@AccountString, 36, 6))&lt;br /&gt;END&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;CREATE FUNCTION dbo.Dim7(@AccountString nvarchar(50))&lt;br /&gt;RETURNS nvarchar(12)&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;  RETURN rtrim(substring(@AccountString, 42, 3))&lt;br /&gt;END&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;CREATE FUNCTION dbo.Dim8(@AccountString nvarchar(50))&lt;br /&gt;RETURNS nvarchar(12)&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;  RETURN rtrim(substring(@AccountString, 45, 2))&lt;br /&gt;END&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;CREATE FUNCTION dbo.Dim9(@AccountString nvarchar(50))&lt;br /&gt;RETURNS nvarchar(12)&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;  RETURN rtrim(substring(@AccountString, 47, 4))&lt;br /&gt;END&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;-- Проверяем, получилось ли:&lt;br /&gt;&lt;br /&gt;select top 100 GL06001 AccStr,&lt;br /&gt;  dbo.Account(GL06001) Acc,&lt;br /&gt;  dbo.Dim1(GL06001) Dim1,&lt;br /&gt;  dbo.Dim2(GL06001) Dim2,&lt;br /&gt;  dbo.Dim3(GL06001) Dim3,&lt;br /&gt;  dbo.Dim4(GL06001) Dim4,&lt;br /&gt;  dbo.Dim5(GL06001) Dim5,&lt;br /&gt;  dbo.Dim6(GL06001) Dim6,&lt;br /&gt;  dbo.Dim7(GL06001) Dim7,&lt;br /&gt;  dbo.Dim8(GL06001) Dim8,&lt;br /&gt;  dbo.Dim9(GL06001) Dim9&lt;br /&gt;from GL06CCYY&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-6044297843527878455?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/GerTfLgikZs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/6044297843527878455/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2007/08/blog-post_29.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/6044297843527878455?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/6044297843527878455?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/GerTfLgikZs/blog-post_29.html" title="Учетная строка" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2007/08/blog-post_29.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcFQ3Y-eSp7ImA9WB5aFks.&quot;"><id>tag:blogger.com,1999:blog-7182350595041843946.post-9163487716562820407</id><published>2007-08-21T13:29:00.001+04:00</published><updated>2007-09-13T09:40:12.851+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-09-13T09:40:12.851+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="БД ERP iScala" /><category scheme="http://www.blogger.com/atom/ns#" term="Модуль GL" /><title>Структура БД: Главная Книга</title><content type="html">&lt;p&gt;&lt;strong&gt;GL/General Ledger/ГК/Главная книга&lt;/strong&gt;. Основной модуль, практически любая операция в конечном итоге находит свое отражение в проводках этого модуля. Вот и начнем плясать от печки. Сразу оговорюсь, что не ставлю своей целью досконально описать структуру БД, скорее это описание основных сущностей, необходимых для построения отчетов.  &lt;p&gt;По большому счету у модуля две задачи - ведение плана счетов (справочник счетов и справочник учетных измерений (УИ)) и механизм формирования проводок.  &lt;p&gt;Сначала стоит определиться с учетной строкой - это строка из 50 символов, включает в себя счет и учетные измерения. Разбивка внутри этой строки делается на этапе внедрения и потом редко меняется. Максимальное число составных частей учетной строки 9 . Подсмотреть текущую разбивку можно здесь: Системные Утилиты - Управление Деловой Информацией - Настройка Компании (System Utilities - Business Data Management - Company Setup) закладка 5.  &lt;h4&gt;GL53 - Справочник счетов&lt;/h4&gt; &lt;p&gt;Годо-Зависимость - ДА&lt;br&gt;Компание-Зависимость - ДА&lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="489" border="1"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" align="middle" width="108"&gt;Поле&lt;/td&gt; &lt;td valign="top" align="middle" width="379"&gt;Описание&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="113"&gt;GL53001&lt;/td&gt; &lt;td valign="top" width="376"&gt;Счет&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="117"&gt;GL53002&lt;/td&gt; &lt;td valign="top" width="373"&gt;Наименование счета&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="120"&gt;GL53003&lt;/td&gt; &lt;td valign="top" width="370"&gt;Тип счета.&lt;br&gt;0 - прибылей и убытков&lt;br&gt;1 - балансовый&lt;br&gt;2 - статистический&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="123"&gt;GL53005&lt;/td&gt; &lt;td valign="top" width="368"&gt;Определяет привязку учетных измерений. Состоит из девяти символов. Каждый символ отвечает за свое УИ.&lt;br&gt;0 - УИ не привязано&lt;br&gt;1 - УИ должно использоваться обязательно&lt;br&gt;2 - УИ может использоваться&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="125"&gt;GL53006&lt;/td&gt; &lt;td valign="top" width="367"&gt;Блокировка счета&lt;br&gt;0 - счет можно использовать&lt;br&gt;1 - счет заблокирован&lt;br&gt;2 - прямой ввод для счета запрещен&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="126"&gt;GL53009&lt;/td&gt; &lt;td valign="top" width="366"&gt;Код книги или спецфункции. Возможные значения можно посмотреть в форме редактирования счета&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;Остальные поля&amp;nbsp; редко используются при построении отчетов.&lt;/p&gt; &lt;h4&gt;GL03 - Справочник учетных измерений&lt;/h4&gt; &lt;p&gt;Годо-Зависимость - ДА&lt;br&gt;Компание-Зависимость - ДА&lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="491" border="1"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" align="middle" width="131"&gt;Поле&lt;/td&gt; &lt;td valign="top" align="middle" width="358"&gt;Описание&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="134"&gt;GL03001&lt;/td&gt; &lt;td valign="top" width="358"&gt;Код учетного измерения. B - 1, C - 2, D - 3, E - 4, F - 5, G - 6, H - 7, I - 8, J - 9&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="137"&gt;GL03002&lt;/td&gt; &lt;td valign="top" width="358"&gt;Код учетного измерения&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="139"&gt;GL03003&lt;/td&gt; &lt;td valign="top" width="358"&gt;Наименование учетного измерения&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="141"&gt;GL03004, GL03005&lt;/td&gt; &lt;td valign="top" width="358"&gt;Описание учетного измерения&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;h4&gt;GL06 - Проводки&lt;/h4&gt; &lt;p&gt;Годо-Зависимость - ДА&lt;br&gt;Компание-Зависимость - ДА&lt;/p&gt; &lt;p&gt;Можно сказать - основная таблица модуля. Именно здесь хранятся все проводки. Каждая проводка состоит из двух и более линий. Знак суммы определяет дебет это или кредит. Кроме случая красного строно - тогда минус это дебет, а плюс кредит. Строки красного сторно помечаются в поле GL06017.&lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="493" border="1"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" align="middle" width="122"&gt;Поле&lt;/td&gt; &lt;td valign="top" align="middle" width="369"&gt;Описание&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="126"&gt;GL06001&lt;/td&gt; &lt;td valign="top" width="369"&gt;Учетная строка&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="129"&gt;GL06002&lt;/td&gt; &lt;td valign="top" width="369"&gt;Номер проводки&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="132"&gt;GL06003&lt;/td&gt; &lt;td valign="top" width="369"&gt;Дата проводки&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="134"&gt;GL06004&lt;/td&gt; &lt;td valign="top" width="369"&gt;Сумма в локальной валюте&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="136"&gt;GL06005&lt;/td&gt; &lt;td valign="top" width="369"&gt;Текст проводки&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="137"&gt;GL06006&lt;/td&gt; &lt;td valign="top" width="369"&gt;Код контрагента&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="138"&gt;GL06007&lt;/td&gt; &lt;td valign="top" width="369"&gt;Содержимое зависит от модуля. Для КЗ и КП - это номер СЧФ&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="138"&gt;GL06009&lt;/td&gt; &lt;td valign="top" width="369"&gt; &lt;p&gt;Флаг периодического автораспределения (когда нужно запустить его повторно)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="139"&gt;GL06012&lt;/td&gt; &lt;td valign="top" width="369"&gt;Тип проводки. По этому полю можно узнать из какого модуля создана проводка. Более подробно смотри в отдельной статье &lt;a href="http://blog.scalahelp.ru/2007/09/blog-post.html"&gt;"Типы проводок"&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="139"&gt;GL06013&lt;/td&gt; &lt;td valign="top" width="369"&gt;Код пользователя&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="139"&gt;GL06014&lt;/td&gt; &lt;td valign="top" width="369"&gt;Дата ввода&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="140"&gt;GL06016&lt;/td&gt; &lt;td valign="top" width="369"&gt;В этом поле хранится уникальный ключ линии. Не советую пользоваться им в качестве ключа связи с другими таблицами, т.к. при некоторых операциях Скала перенумеровывает это поле.&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="140"&gt;GL06017&lt;/td&gt; &lt;td valign="top" width="369"&gt;Красное сторно&lt;br&gt;0 - обычная линия&lt;br&gt;1 - красное сторно&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="140"&gt;GL06018&lt;/td&gt; &lt;td valign="top" width="369"&gt;Сумма в оригинальной валюте&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="140"&gt;GL06019&lt;/td&gt; &lt;td valign="top" width="369"&gt;Код валюты&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="140"&gt;GL06030&lt;/td&gt; &lt;td valign="top" width="369"&gt; &lt;p&gt;Флаг сложного автораспределения (когда нужно запустить его повторно)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="140"&gt;GL06032&lt;/td&gt; &lt;td valign="top" width="369"&gt;счет компании источника (для консолидированных компаний)&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="140"&gt;GL06033&lt;/td&gt; &lt;td valign="top" width="369"&gt;сумма компании источника(для консолидированных компаний)&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="140"&gt;GL06034&lt;/td&gt; &lt;td valign="top" width="369"&gt; &lt;p&gt;код компании источника (для консолидированных компаний)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h4&gt;GL07 - Дневной журнал&lt;/h4&gt; &lt;p&gt;Годо-Зависимость - ДА&lt;br&gt;Компание-Зависимость - ДА&lt;/p&gt; &lt;p&gt;Все проводки сначала попадают в дневной журнал. При проведении операции обновления дневного журнала проводки проверяются, если данных не хватает, то выводится запрос на коррекцию проводки. Только после этого проводка попадает в таблицу GL06. Структура GL07 существенно отличается от GL06, но разобраться там нетрудно. Непосредственно в отчетах таблица дневного журнала используется нечасто.&lt;/p&gt; &lt;h4&gt;Другие таблицы&lt;/h4&gt; &lt;p&gt;Здесь приведу краткое описание некоторых таблиц:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;GL52 - таблица служит для хранения сальдо в разрезе счетов, периодов и учетных измерений (только до четвертого включительно). Таблица нужна для ускоренного извлечения сальдо. Для перерасчета содержимого можно запустить процедуру реконструкции сальдо. Я предпочитаю не пользоваться этой таблицей, а при необходимости считать сальдо по таблице GL06  &lt;li&gt;GLCB, GLCD, GLCX, GLCY - таблицы модуля Касса  &lt;li&gt;GL10, GL1A - параметры модуля Главная Книга  &lt;li&gt;GL41 - Связка консолидированных компаний по счетам&lt;/li&gt;&lt;/ol&gt; &lt;h4&gt;Примеры запросов&lt;/h4&gt; &lt;p&gt;В запросах макросы CC и YY нужно заменить на код компании и финансовый год соответственно. Если есть &lt;/p&gt; &lt;p&gt;Вывод проводки по номеру:&lt;br&gt;&lt;pre&gt;select * from GL06CCYY where GL06002 = '123456'&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Расчет сальдо(кредитовое, дебетовое, свернутое) по всем счетам, начинающимся на 60 (при условии, что длинна счета 12 символов): &lt;pre&gt;&lt;code&gt;select left(GL06001, 12) Account,&lt;br /&gt;sum(case when (GL06004 &amp;gt; 0 and GL06017 = '0')or(GL06004 &amp;lt; 0 and GL06017 = '1') then GL06004 else 0 end) DSaldo,&lt;br /&gt;-sum(case when (GL06004 &amp;lt; 0 and GL06017 = '0')or(GL06004 &amp;gt; 0 and GL06017 = '1') then GL06004 else 0 end) CSaldo,&lt;br /&gt;sum(GL06004) Saldo&lt;br /&gt;from GL06V106&lt;br /&gt;where GL06001 like '60%'&lt;br /&gt;group by left(GL06001, 12)&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Если нужно, то приведу другие примеры - спрашивайте в комментариях.&lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7182350595041843946-9163487716562820407?l=blog.scalahelp.ru' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/scalahelpru/~4/Gr6Tf4EBapY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.scalahelp.ru/feeds/9163487716562820407/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://blog.scalahelp.ru/2007/08/blog-post_21.html#comment-form" title="Комментарии: 13" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/9163487716562820407?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/7182350595041843946/posts/default/9163487716562820407?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/scalahelpru/~3/Gr6Tf4EBapY/blog-post_21.html" title="Структура БД: Главная Книга" /><author><name>Дмитрий Пестов</name><uri>http://www.blogger.com/profile/14580547335637976890</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>13</thr:total><feedburner:origLink>http://blog.scalahelp.ru/2007/08/blog-post_21.html</feedburner:origLink></entry></feed>

