Отправляет email-рассылки с помощью сервиса Sendsay

MS SQL Server

  Все выпуски  

MS SQL Server - дело тонкое...


Служба Рассылок Subscribe.Ru

#072<<  #073

СОВЕТЫ

Использование процедуры sp_makewebtask

Автор: Забалуев Сергей (zabaluev@pisem.net)

По роду своей деятельности я занимаюсь администрированием SQL Server 6.5. и баз данных под его управлением. Не скажу, что это меня напрягает, но бывают случаи когда необходимо получить данные из таблиц. В конечном итоге полученный результат я через буфер обмена помещаю в MS Word и предоставляю его на суд пользователя. Сам незнаю где и когда мне попалась на вид процедура sp_makewebtask. Могу предположить, что это 56 выпуск расылки "MS SQL Server - дело тонкое...". Так вот, я заинтересовался и подумал, а почему бы не посмотреть что из себя представляет эта процедура. Скажу одно-она мне понравилась. Более того, она показалась мне удобной. Надеюсь, что мой труд не пропадет даром и пригодится ходя бы одному администратору

В наш век полного господства Internet перед организациями которые готовы заявить о себе встает вопрос о возможности поместить данные на сервер Internet и сделать их доступными пользователям в любое время и актуальными в любое время. Встает вопрос динамического обновления страниц Web так часто насколько это нужно. Ядро SQL позволяет автоматически генерировать такие страницы на основании данных находящихся в таблице базы данных.
Кроме этого системные администраторы могут воспользоваться данной возможностью и получать отчеты о работе системы в удобночитаемом формате.
В данной статье я рассмотрю возможность использования процедуры sp_makewebtask для создания Web-заданий и ни, словом не обмолвлюсь об альтернативной возможности создать задание используя мастер SQL Server Web Page Wizard.
В самом простом использовании процедура может быть выполнена при указании всего двух параметров: имя выходного файла и текст запроса.


USE pubs
GO
EXECUTE sp_makewebtask @outputfile = 'C:\WEB\Test_1.HTM',
@query = 'SELECT title, price FROM titles'
GO

При выполнении этого сценария в каталоге C:\WEB сформируется HTML-файл на основе данных из указанного запроса, который можно просмотреть любым Web обозревателем. Кроме этого замечу, что в параметре @query можно указывать несколько запросов разделенных пробелом. Например,@query='SELECT title, price FROM titles SELECT title FROM titles'. Каждый результат будет разграничен с другим при помощи HTML тэга <HR>.
После выполнения данного сценария просмотрев документ мы можем увидеть, что в качестве заголовка страницы устанавливается заголовок: "Query Results". Для указания своего заголовка служит параметр @resultstitle.
Кроме этого другой параметр @HTMLHeader позволяет указать шесть различных уровней (размеров) для заголовка документа. Значения 1,2,3,4,5,6 идентичны HTML тэгам <H1>,<H2>,<H3>,<H4>,<H5>,<H6>. @HTMLHeader с номером 1 является самым крупным (заголовок верхнего уровня), а с номером 6 - самым мелким.


USE pubs
GO
EXECUTE sp_makewebtask @outputfile = 'C:\WEB\Test_1.HTM',
@query = 'SELECT title, price FROM titles',
@resultstitle='Прайс-Лист',
@HTMLHeader=2
GO

В документе можно увидеть строку последнего обновления страницы. Мы можем управлять ее появлением в документе параметром @lastupdated. Указав в качестве параметра - 0 мы запретим показ даты и времени последнего обновления в сгенерированном документе. По умолчанию принимается значение - 1.


USE pubs
GO
EXECUTE sp_makewebtask @outputfile = 'C:\WEB\Test_1.HTM',
@query = 'SELECT title, price FROM titles',
@resultstitle='Заголовок документа',
@HTMLHeader=2,
@lastupdated=0
GO


Примечание.
Хотя я за то, чтобы в сгенерированной Web-странице была строка, которая показывала бы дату последнего обновления.

Следующие параметры служат для сообщения входной информации, позволяющей получить доступ ко всем таблицам и базам, данные которой должны быть использованы для заполнения страниц. Параметром @dbname определяется рабочая база. Параметром @username определяется пользователь от имени, которого выполняется запрос.
Как мы знаем раздел HTML документа <HEAD> определяет его заголовок. Также мы знаем, что хорошо составленный заголовок может быть весьма полезен. Задачей заголовка является представление необходимой информации для программы, интерпретирующий документ. Также текст, расположенный в заголовке используется поисковыми системами Internet, такими как Yahoo или AltaVista. Для указания заголовка служит параметр @webpagetitle. Указанный заголовок при формировании будет помещен между тэгами <HEAD>, </HEAD>.
Одним из важнейших понятий для HTML-документов являются ссылки. Работая в Web-пространстве, мы часто понятия не имеем, где находится та или иная нужная нам страница. Поэтому ссылки здесь являются единственной возможностью перейти от одного документа к другому. Ссылка состоит из двух частей. Первая из них - это то, что мы видим на Web-странице; она называется указатель ссылки (anchor). Вторая часть, дающая инструкцию WEB-обозревателю, называется адресной частью ссылки (URL-адресом). Когда мы щелкаем мышью по указателю ссылки, WEB-обозреватель загружает документ, адрес которого дается URL-адресом.
Microsoft реализовала возможность указания ссылок при помощи двух парных параметров: [@URL,@reftext] и [@table_urls,@url_query]. Применяется та или иная пара, но не обе одновременно. Первая пара применяется для непосредственного "ручного" указания ссылки. Например:


USE pubs
GO
EXECUTE sp_makewebtask @outputfile = 'C:\WEB\Test_1.HTM',
@query = 'SELECT title, price FROM titles',
@webpagetitle='Практическое применение sp_makewebtask',
@resultstitle='Заголовок документа',
@HTMLHeader=2,
@URL = 'http://www.microsoft.com',
@reftext = 'Microsoft Home Page',
GO

На основе вышесказанного, @reftext это то, что отображается на странице - указатель ссылки, а @URL это адресная часть ссылки. Вторая пара параметров применяется для вывода ссылок на основе SQL-запроса, т.е. указатель и адресная часть ссылки берется из таблицы. В конструкции SELECT при указании полей имейте ввиду, что практически найдут применение только первые два поля. Второе указанное поле берется как указатель ссылки, а первое как адресная часть.
Например:

@url_query='SELECT price,title FROM titles'

Параметр @table_urls позволяет разрешить (1) или запретить (0) включать в документ ссылки из @url_query.


Замечание.
Если @table_urls = 1, то определение параметра @url_query ОБЯЗАТЕЛЬНО.

Следующие параметры относятся к установкам интервалов обновления страницы. К ним относятся: @whentype, @targetdate, @targettime, @dayflags, @numunits, @unittype.
Так как источником информации для страницы является база данных, определение частоты требует определенной работы. Слишком низкая частота обновления увеличит нагрузку на сервер при управлении запросами. Влияние на производительность должно быть минимальным.
Параметр @whentype определяет когда запустить задачу создающую HTML-документ. По своей сути, я считаю, что это "стержень" процедуры sp_makewebtask.

Таблица 1.
Значение
@whentype
Описание
1 Создает страницу сразу. Web задание создано и немедленно удалено после выполнения. (По умолчанию)
2 Создать страницу позже. Сохраненная процедура для создания HTML документа создана немедленно, но выполнение задания задержано до даты и времени, указанной @targetdate и @targettime (необязательный параметр). Если @targettime не определен, задание будет выполнено в 12:00 дня определенного в @targetdate (требуется обязательно указать, когда @whentype=2). Задание будет удалено автоматически, после того как указанная дата и время прошло.
3 Создать страницу каждый n день(ни) недели. HTML документ будет создан в день(ни) указанный в @dayflags и во время указанного @targettime (необязательный параметр), начинающийся с даты указанной в @targetdate. Если @targettime опущен, то значение по умолчанию - 12:00 дня @targetdate(требуется обязательно указать, когда whentype-3). Задания Web, созданные с whentype - 3, не будут удалены автоматически и продолжают выполняться в указанный день (ни) недели, пока пользователь не удаляет их с помощью sp_dropwebtask.
4 Создать страницу каждые n минуты, часы, дни, или недели. HTML документ создается каждый n период времени, начинающийся с даты и времени, указанной в @targetdate и @targettime. Если @targettime не определен, задание Web будет выполнена в 12:00 дня @targetdate. Задание выполняется автоматически каждые n минуты, часов, дней, или недель как определено @numunits и @unittype, и продолжает выполняться, пока пользователь не удаляет их с помощью sp_dropwebtask.
5 Создать страницу по запросу. Процедура будет создана без автоматического планирования задания. Пользователь создает HTML документ, выполняя sp_runwebtask и удаляет это только с помощью sp_dropwebtask
6 Создать страницу сразу и позже. HTML документ будет создан сразу и обновлен, тогда когда см. whentype = 2.
7 Создать страницу сразу и каждый n день (ни) недели. HTML документ создается сразу и обновлен, тогда когда см. whentype = 3 (определять @targetdate в этом случае не требуется)
8 Создать страницу сразу и периодически после создания. HTML документ будет создан сразу и обновлен, тогда когда см. @whentype = 4, (определять @targetdate в этом случае не требуется)
9 Создать страницу сразу и далее по запросу. HTML документ создается немедленно и будет обновлен, тогда когда см. @whentype = 5. Задача должна быть удалена вручную.
10 Создать страницу сразу и тогда когда данные будут изменены. Создает страницу сразу и позже всякий раз, когда данные в таблице будут изменены. При @whentype = 10 требуется указывать @datachg.

Таблица 2.
@whentype Обязательный параметр Не Обязательный параметр
2 @targetdate @targettime
3 @dayflags, @targetdate @targettime
4 @numunits, @unittype, @targetdate @targettime
6 @targetdate  
7 @dayflags @targetdate
8 @numunits, @unittype @targetdate
10 @datachg  

Параметром @targetdate мы определяем дату когда страница должна быть создана, если параметр не указан, то берется текущая дата. Параметр @targettime определяет время когда должно быть создана страница (по умолчанию 12 часов дня). Формат - HHMMSS. @dayflags определяет день недели, чтобы обновить(модифицировать) HTML документ. Параметр может принимать одно из значений :

Таблица 3.
Значение День недели
1 @targetdate
2 @dayflags, @targetdate
4 @numunits, @unittype, @targetdate
8 @targetdate
16 @dayflags
32 @numunits, @unittype
64 @datachg

Кроме этого можно также указывать несколько дней в неделе, в которые необходимо обновить страницу. Для этого необходимо в качестве параметра для @targetdate указать сумму значений всех дней, в которые необходимо обновить страницу. Например, если необходимо обновить страницу в понедельник (2) и четверг (16), то укажем - 18, так как 2+16=18.
@numunits определяет как часто обновлять HTML-документ. Numunits используется только, когда @whentype 4 (периодический) или 8 (сразу и периодически после). Например, если whentype = 4, numunits = 6, и unittype = 1 (часы), указанный HTML документ модифицировать каждые шесть часов. Numunits по умолчанию принимает значение = 1. @unittype определяет, как часто HTML-документ должен быть модифицирован. Используется только, когда @whentype = 4 (периодический), или @whentype = 8 (сразу и позже). Параметр может принимать одно из значений из таблицы 4:

Таблица 4.
Значение Описание
1 (по умолчанию) Час
2 День
3 Неделя
4 Минута

На этом я закончил описание параметров которые могут нам пригодиться при указании частоты перестроения страницы. Рассмотрим следующие параметры не менее полезные. В параметре @procname можно явно указать имя процедуры или Web-задания. Если параметр не определен, то значение будет сгенерированно на основании Web_YYMMDDHHMMSS+<spid>. Если Вы определяете имя самостоятельно, то помните, что оно должно быть уникальным в пределах текущей базы данных. Параметр @maketask определяет, должна ли быть создана задача, чтобы выполнить сгенерированную хранимую процедуру, которая генерирует HTML документ. Параметр может принимать одно из значений из таблицы 5:

Таблица 5.
Значение Описание
0 Генерирует незашифрованную хранимую процедуру, но не создает задачу.
1 Генерирует зашифрованную хранимую процедуру и генерирует задачу.
2(по умолчанию) Генерирует незашифрованную хранимую процедуру и генерирует задачу.

Следующие параметры я отношу к "визуально-оформительским". К ним относятся: @bold, @italic, @fixedfont, @colheaders, @rowcnt. Рассмотрим подробнее. Параметры @bold и @italic позволяют нам указать тип шрифта при выводе результирующего запроса. Он применяется ко всему документу и может принимать два значения: 0/1. По умолчанию = 0.


Замечание. Заголовки столбцов в любом случае = bold.

Параметр @fixedfont позволяет определить вид шрифта на странице. Используется текущий (1) или пропорциональный шрифт (0). По умолчанию = 1.
При помощи параметра @colheaders предоставляется возможность управлять видимостью заголовков столбцов. Может принимать два значения: 0/1. По умолчанию = 1, что указывает на отображение заголовка столбцов.
@rowcnt параметр для определения максимального количества строк, которые мы хотим видеть в сгенерированном HTML-документе. По умолчанию он равен 0, что говорит о том, что в документ помещать все строки из запроса.
@tabborder позволяет определить заключение результата Web-задания в таблицу. Может принимать значение 0/1 (по умолчанию 1).

Следующий параметр @singlerow даже и не знаю кому может понадобиться и для чего. При помощи его мы можем вывести каждую строку результата в отдельном HTML-документе. Если, например, запрос возвратил 10 строк, то будет сгенерировано 10 HTML-документов. Имя файла HTML-документа формируется прибавлением номера строки запроса к указанному нами имени выходного файла в параметре @outputfile. Кроме этого, в конце каждого HTML-документа появляются ссылки навигации, которые позволяют перемещаться по строкам результирующего запроса которые размещены в разных файлах.
@blobfmt позволяет управлять внедрением в генерированный HTML-документ данных полей типа ntext или image (NULL, значение по умолчанию) или сохранением их в другом HTML-документ и связать их с главным HTML-документ по URL. Для размещения данных в другом файле используете формат для @blobfmt:


"%n% FILE=output_filename TPLT=template_filename URL=url_link_name..."

Где n, является номером столбца в списке результата, соответствующему текстовому полю, и n+1 - текст гиперсвязи URL к отдельным данным полей типа ntext или image в HTML файл.


Замечание. Не допускайте наличия пробела перед или после знака (=) и не помещайте имена файлов в кавычки (').

Имена выходных файлов формируются подобным образом как при singlerow=1. Определение @output_filename требуется, но @template_filename и @url_link_name можно опустить. FILE содержит полный путь к расположению выходного файла.
Тот же самый синтаксис в @blobfmt (%n % ФАЙЛ = ...) может быть повторен многократно для полей ntext или image. Если параметр @singlerow определен, то следующий параметр @nrowsperpage не может использоваться. Этот параметр очень похож на @singlerow. Единственное его отличие в том, что в @nrowsperpage мы указываем, сколько строк мы хотим вывести в каждом файле, когда как @singlerow определяет вывод по одной строке в файл. Значение по умолчанию = 0, что указывает на то, что необходимо все строки вывести в одном файле.
Если мы явно определили @whentype = 10, то обязательно необходимо определить параметр @datachg. Формат значения:


{TABLE=name[COLUMN=name]}[,...]

Имя таблицы является обязательным, а список полей - необязательным. При @whentype = 10 будут созданы в указанной таблице триггеры (INSERT, DELETE, UPDATE) на выполнение Web-задания. Если при этом триггеры уже присутствуют, то в конец кода триггера будет добавлен вызов процедуры sp_runwebtask. При условии, что при создании триггера не был применен WITH ENCRYPTION. В противном случае выполнение sp_makewebtask будет невозможным.
Разработка новых спецификаций языка разметки гипертекста (HTML) занимает немалый срок, и за это время компании, производящие WEB-обозреватели, успевают выпустить несколько версий своих продуктов. Поэтому в раздел заголовка HTML-документа может быть добавлен еще один тэг <META>, позволяющий авторам документа определять информацию, не имеющую отношения к HTML. Одним из параметров тэга <META> мы можем управлять с помощью параметра @charset процедуры sp_makewebtask. Мы можем явно указать кодировку текста. Кроме этого мы может через параметр @codepage указать кодовую страницу.


Замечание. Для получении информации о списке кодовых страниц и наборов символов, поддержанных sp_makewebtask можно воспользоваться процедурой sp_enumcodepages Часть результата работы этой процедуры Вы видите ниже.

Все вышеописанные параметры, конечно позволяют получить результат запроса в виде НТML - документа. Но они скорее всего пригодны для "внутреннего" пользования. Там где в первую очередь смотрят не на внешний вид страницы, а на достоверность, оперативность данных. Попробуйте поэкспериментировать с процедурой и ответьте на вопрос : А сможет ли привлечь Ваше внимание эта страница в Internet? Думаю, что нет. В сгенерированной страницы мы не увидим ни логотипа компании, ни рекламных баннеров (а они иногда нужны), ни фона и еще много чего, что позволяет нам язык разметки гипертекста (HTML). Все это было бы так печально на самом деле если бы не последний параметр, который я приберег на последок, @templatefile. Параметр может содержать путь и имя к файлу шаблона, который содержит характеристики форматирования HTML документа. (HTML -файл с тэгами форматирования).
Рассмотрим подробнее. Например, необходимо чтобы в результирующем HTML-документе присутствовал фоновый рисунок. Как быть? Создадим текстовой файл в котором напишем следующий код и назовем его Shablon.tpl (имя и расширение произвольное).

[Shablon.tpl]


</HTML%>
</HEAD%>
</TITLE%>sp_makewebtask <//TITLE%>
<//HEAD%>
</BODY BACKGROUND=Back08.bmp%>
<//BODY%><//HTML%>

Теперь выполним следующий запрос:


USE pubs
GO
EXECUTE sp_makewebtask @outputfile = 'C:\WEB\Test_1.HTM',
@query = 'SELECT title, price FROM titles',
@templatefile=' C:\WEB\Shablon.tpl'
GO

Который вернет ошибку :

Server: Msg 16826, Level 11, State 1, Line -1074284106 SQL Web Assistant: Could not find the specified marker for data insertion in the template file.

Данное сообщение ожидаемо, так как в файле шаблона форматирования обязательно наличие метки </%insert_data_here%%> которая определяет позицию в HTML-документе, в которую будет добавлены результаты запроса. Добавим маркер в HTML-файл и снова выполним запрос. Сформируется HTML-документ в котором в качестве фона будет фоновый рисунок. Привлекательность страницы резко возросла, неправда ли?
Хочу заметить, что при определении параметра @templatefile следующие параметры теряют свою силу, просто игнорируются.

Таблица 6.
bold lastupdated table_urls
colheaders reftext URL
fixedfont resultstitle url_query
HTMLHeader singlerow webpagetitle
italic tabborder

Это не страшно, так как синтаксис языка HTML дает нам много возможностей по созданию оригинального, привлекательного шаблона для нашего запроса который мы хотим видеть как Web-страницу.
Добавим в Web-страницу кроме фона еще логотип компании, результат выведем в таблице, которую выравним по центру и визуально оформим. Файл шаблона примет, следующий вид:

[Shablon.tpl]


<HTML%>
<HEAD%>
<TITLE%>sp_makewebtask</TITLE%>
</HEAD%>
-- Фоновый рисунок
<BODY BACKGROUND=Back08.bmp%>
-- Логотип
<IMG SRC=Logo.gif ALIGN=LEFT%>
-- Выравним по центру
<CENTER%>
-- Таблица
<TABLE BORDER=2 BGCOLOR=Beige%>
<TR BGCOLOR=Azure%> <TH%>Title</TH%> <TH%><B%>Price</B%></TH%> </TR%>
<TR%> <TD%> <FONT COLOR=BLUE%> <%insert_data_here%%> </FONT%></TD%>
    <TD ALIGN=RIGHT%><FONT COLOR=RED%> <%insert_data_here%%></FONT%></TD%></TR%>
</TABLE%>
</CENTER%>
</BODY></HTML>

Результат будет неудовлетворять одним. Будет создана таблица содержащая 2 столбца, а результат SELECTа будет помещен в первый столбец ('Title'). Почему и что делать? В этом нам помогут последние два маркера. Это : <%begindetail%> и <%enddetail%>. Они предназначены для более точного размещения данных. Ими необходимо ограничить HTML тэги <TR>, </TR>, <TD>, и </TD>.
Каждая строка в <TABLE> начинается тэгом <TR> (Table Row) и завершается тэгом </TR>. Если строка состоит из двух ячеек, а в нашем случае нам нужны именно две ячейки, то определенную строку мы разобьём на 2 части при помощи тэгов <TD> (Table Data) и </TD>. Для определения заголовка ячеек таблицы используется тэг </TH> (Table Header) и </TH>. Смотрим, что у нас получилось.


<TABLE>
-- определим строку
<TR>
-- первая ячейка
<TD>
-- здесь будут данные поля 'title' нашего SELECT
<%insert_data_here%>
</TD>
-- вторая ячейка
<TD>
-- здесь будут данные поля 'price' нашего SELECT
<%insert_data_here%>
</TD>
</TR>
</TABLE>

Это были подготовительные действия, и теперь мы дадим команду вставлять данные каждого поля в свою ячейку. Для этого добавим маркеры <%begindetail%> и <%enddetail%> так как я говорил выше. То есть мы ограничим ими тэг </TR> и </TR>. Теперь данные размещены там где мы и предполагали их увидеть. Повторю, Вы имеете полную свободу действий в форматировании Web-страницы использую все доступные возможности языка разметки гипертекста.


<TABLE>
<%begindetail%>
-- определим строку
<TR>
-- первая ячейка
<TD>
-- здесь будут данные поля 'title' нашего SELECT
<%insert_data_here%>
<TD>
-- вторая ячейка
</TD>
-- здесь будут данные поля 'price' нашего SELECT
<%insert_data_here%>
<TD>
<TR>
<%enddetail%>
<TABLE>

Не документированный параметр: ForceConvergenceLevel для Merge Agent
По материалам статьи Микрософт: INF: -ForceConvergenceLevel Merge Agent Parameter is not Documented (Q305039)

Информация в этой статье относится ко всем изданиям Microsoft SQL Server 2000

Параметр -ForceConvergenceLevel для Merge Replication Agent не документирован в SQL Server 2000 Books Online. Эта статья объясняет его функцию и особенности использования параметра -ForceConvergenceLevel. Ниже представлен синтаксис, который используется для параметра -ForceConvergenceLevel:


-ForceConvergenceLevel 0 | 1 | ( 2 (Publisher | Subscriber | Both) )

Параметр -ForceConvergenceLevel полезен в ситуациях, когда изменения не сходятся в течение сеанса Merge (проблема известна, как не сходимость репликации). Параметр ForceConvergenceLevel поможет разрешению проблем в следующих ситуациях:

- Когда были пропущены некоторые порождения (generation) в исходной, точной копии.
- Когда значения Lineage в системной таблице MSmerge_contents стали логически неправильными.

Когда Вы передаёте параметр -ForceConvergenceLevel для Merge Agent со значением, равным единице (1), Merge Agent (в течение закрытия актуальных, открытых порождений, и открытия новых порождений) делает изменения значений порождения, сохраняемых в системных таблицах MSmerge_contents и MSmerge_tombstone так, чтобы любые пропущенные порождения были учтены. Это гарантирует, что любые изменения, представленные этими порождениями имеют право на согласование в течение следующего, Merge сеанса. Однако, существует одно ограничение, которое определяет, что порождение уже не может существовать в точной копии адресата. То есть уже не может быть строки в системной таблице MSmerge_genhistory для этого порождения в адресате.
Когда Вы передаете параметр -ForceConvergenceLevel для Merge Agent со значением, равным двойке (2), Merge Agent исполняет по описанному предварительно сценарию всё порождение и также выполняет хранимую процедуру на точной копии, указанной для исправления ("fix up") любых неправильных значений lineage в системной таблице MSmerge_contents. Столбец lineage в системной таблице MSmerge_contents - это varbinary столбец, который хранит информацию об уровне строки versioning. Столбец lineage используется при отслеживании изменений в Merge и при обнаружении конфликтов, связанных со столбцом colv1 в системной таблице MSmerge_contents. Неправильные значения в столбце lineage или colv1 могут привести к не правильным изменениям.
Важно понять, что этот параметр Merge Agent гарантированно не исправит проблемы не сходимости. Возможны случаи, когда изменения были пропущены, но из-за других проблем. Обратите внимание, что речь идёт о тех проблемах, которые известны на сегодняшний день. В дополнение, можно отметить, что когда Вы используете в промышленной среде Merge Agent с параметром -ForceConvergenceLevel, это может повлиять на эффективность.

Для дополнительной информации об известных проблемах, которые - не возможно обойти с помощью параметра -ForceConvergenceLevel, изучите следующие статьи Microsoft Knowledge Base:
Q304703 FIX: Pull Subscribers Experience Non-Convergence After Running sp_mergecleanupmetadata Against a Published Database
Q304551 FIX: Merge Publishing with Vertical Filters Results in Nonconvergence
Q304222 FIX: Merge Replication Non-Convergence Occurs with Local Subscribers when Published Table has 32 or More Columns

ССЫЛКИ НА СТАТЬИ

Прагматический подход к разработке приложений Web баз данных
Автор: Александр Чекалов.
В настоящее время проблема распределенных вычислений решается либо в рамках Web технологий, либо DCOM/CORBA моделей. Сравнение этих решений по стоимости дает предпочтение Web технологиям...[подробнее]
Электронное качество данных: скрытая перспектива очистки данных
Автор: Ronald Forino.
Термин "очистка данных" может иметь множество значений, но в целом он означает обеспечение поддержки очистки данных, так или иначе связанных с потребителем...[подробнее]
Методология построения корпоративных информационных систем на основе технологии EJB
Автор: Евгений Игумнов.
Чаще всего системы строятся следующим образом. Есть клиентское приложение, которое соединяется с сервером БД и посредством SQL запросов манипулирует данными, отображаемыми в клиентском GUI интерфейсе. Клиентская часть таких систем обычно очень сложная и на сервер баз данных возлагается, в основном задача, хранения и поддержки целостности данных. Иногда базы данных поддерживают хранимые процедуры, что позволяет снизить сетевой трафик между сервером и клиентом...[подробнее]
Основы IDEF3
Автор: Геннадий Верников.
IDEF3 является стандартом документирования технологических процессов, происходящих на предприятии, и предоставляет инструментарий для наглядного исследования и моделирования их сценариев. Сценарием (Scenario) мы называем описание последовательности изменений свойств объекта, в рамках рассматриваемого процесса (например, описание последовательности этапов обработки детали в цеху и изменение её свойств после прохождения каждого этапа). Исполнение каждого сценария сопровождается соответствующим документооборотом, который состоит из двух основных потоков: документов, определяющих структуру и последовательность процесса (технологических указаний, описаний стандартов и т.д.), и документов, отображающих ход его выполнения (результатов тестов и экспертиз, отчетов о браке, и т.д.). Для эффективного управления любым процессом, необходимо иметь детальное представление об его сценарии и структуре сопутствующего документооборота...[подробнее]
CASE-технологии. Современные методы и средства проектирования информационных систем
Автор: А.М. Вендров.
Целью данного обзора является введение в особенности современных методов и средств проектирования информационных систем, основанных на использовании CASE-технологии. Читатель должен получить возможность принятия обоснованного, а не волевого решения относительно использования этих технологий. Приводимые в обзоре рекомендации могут способствовать успешному внедрению CASE-средств и уменьшить риск неправильных инвестиций...[подробнее]
МЕТОДОЛОГИЯ СТРУКТУРНОГО АНАЛИЗА И ПРОЕКТИРОВАНИЯ SADT
Автор: Дэвид А. Марка и Клемент МакГоуэн.
SADT - одна из самых известных и широко используемых систем проектирования. SADT - аббревиатура слов Structured Analysis and Design Technique (Технология структурного анализа и проектирования) - это графические обозначения и подход к описанию систем. В программе интегрированной компьютеризации производства (ICAM) Министерства обороны США была признана полезность SADT, что привело к стандартизации и публикации ее части, называемой IDEFO. Такая стандартизация вкупе с растущей автоматизированной поддержкой и этой книгой означает, что SADT теперь более доступна и проста в использовании. В коммерческом мире SADT используется для определения требований. В этом качестве она конкурирует с методами, ориентированными на потоки данных, - структурного проектирования Е.Иордана, структурного анализа Т.ДеМарко, структурного системного анализа С. Гейна и Т. Сарсона, а также с методами структуризации данных - методами М.Джексона, Лж.Д. Варнира и К. Орра. В отличие от этих методов структурного анализа, истоки которых нужно искать в проектировании программного обеспечения, SADT создана для описания системы и ее среды до определения требований к программному обеспечению или к чему-либо другому. Иными словами, поставив своей целью описание системы в общем, создатели SADT изобрели графический языки набор процедур анализа для понимания системы прежде, чем можно представить себе ее воплощение. Таким образом, SADT, как правило, применяется на ранних этапах процесса создания системы, который часто называют "жизненным циклом системы", и иногда за этим следует применение упомянутых выше методов...[подробнее]

Новые технические статьи Microsoft

BUG: SP1 Regression: Bulk Load of a Table with a Text Column Causes AV on the Server (Q308807)
BUG: Enabling TCP/IP Through the Server Network Utility May Not Enable the Server to Listen on TCP/IP (Q308766)
INF: COLLATE for Computed Columns is Deterministic for UNICODE Starting with SQL Server Service Pack 2 (Q308870)
BUG: Incorrect Results with Uncorrelated Subquery If You Use an Aggregate Function and NULL Values in the WHERE Clause (Q310472)
PRB: Non-Convergence When SQL Server Processes Child and Parent Generations in Separate Generation Batches (Q308266)
Support WebCast: Introducing New Features in Microsoft SQL Server 2000 Transactional Replication
PRB: Query Designer Reports Syntax Error But Still Succeeds (Q166883)
INFO: Readmedt.htm: Microsoft Visual Database Tools Readme (Q166885)
HOWTO: Use Visual InterDev's Database Tools on a Server Over the Internet (Q175246)
PRB: Database Diagram Doesn't Restore Relationships After Cancel (Q175257)
PRB: Incomplete Parameter Delimiters Causes Confusing Error (Q175265)
PRB: SQL Errors When Using Alias Name with Extended Characters (Q175317)
INF: SQL Troubleshooters Available on the Web (Q193088)
BUG: A Foreign Key Table with Data in Tempdb Creates Error 1105 (Q229726)
INF: Clustered SQL Server Do's, Don'ts and Basic Warnings (Q254321)
INF: How to Shrink the SQL Server 7.0 Transaction Log (Q256650)
FIX: Coalesce with Subquery May Generate an Access Violation (Q298803)
BUG: Specifying More Than One Operator E-mail Address May Terminate SQL Server Agent with Dr. Watson (Q302892)
FIX: sp_configure 'network packet size' Not Functional in SQL Server 7.0 SP3 and SQL Server 2000 (Q308016)
PRB: Performance Issues with Concurrent Replication Agents and/or High Replication Monitor Refresh Setting (Q308727)
PRB: ODBC Error When Updating an Edited Record (Q166882)
PRB: Query Designer Does Not Add Parenthesis to Criteria (Q166884)
BUG: Merge Replication Snapshot Agent Fails with Error "Line 1: Incorrect syntax near 'as'." (Q308819)
BUG: Visual Basic 6.0 T-SQL Debugger Fails Against SQL Server 2000 Named Instance (Q310647)
INFO: Known Issues with the Visual Basic T-SQL Debugger and SQL Server 2000 (Q310650)
INFO: Microsoft Data Access Components (MDAC) Release History (Q231943)
INF: Sqldiag.exe Can be Included in an MSDE Custom Setup (Q243811)
PRB: Unattended Install of SQL Server 7.0 or MSDE 1.0 Stops Responding (Q247221)
FIX: Sqlmaint.exe is Not Included in MSDE 1.0 Installation (Q246815)
BUG: Cannot Edit or Delete Database Maintenance Plan on MSDE Installation (Q247879)
INF: Microsoft Data Engine Security Recommendations for ISVs (Q248683)
INFO: Where to Find Information About MSDE for Visual Studio (Q251270)
Unable to Serve ASP or HTML Pages (Q257267)
BUG: Sqlmaint Does Not Delete Expired Backup Files on Windows 95, 98 or ME Computers (Q278667)
FIX: Buffer Overflow Exploit Possible with Extended Stored Procedures (Q280380)
Microsoft Network Security Hotfix Checker (Hfnetchk.exe) Tool Is Available (Q303215)
Frequently Asked Questions about the Microsoft Network Security Hotfix Checker (Hfnetchk.exe) Tool (Q305385)

ФОРУМ SQL.RU: САМЫЕ ПОПУЛЯРНЫЕ ТОПИКИ НЕДЕЛИ

По моему это неразрешимый вопрос :(((
Как лучше выбрать блокировку, правильно управлять транзакциями
SQL7Sp3 Select * Into From Order By (почему может не срабатывать сортировка)
Передача параметров в процедуру
НЕУЖЕЛИ никто из читающих эту конференцию DBA не настраивал standby server ?!!!
Непонятки какие-то.
как SQL-скриптом изменить порядок следования полей в таблице?

ФОРУМ SQL.RU: ВОПРОСЫ ОСТАЛИСЬ БЕЗ ОТВЕТА

Код Ошибки Microsoft SQL-DMO (ODBC SQLState: 07009): [Microsoft][ODBC SQL Server
Непонятки при репликации транзакциями
Немного OFF.В октябре вышел MDAC 2.7 RTM .Что такое RTM ? (-)
Триггера
Ошибка при вставке русских букв через ОDBC
Отладка сохраненок. Ошибка.
Ошибка $2519
Чтобы значило Cumulative client processing time

#072<<  #073

Вопросы, предложения, коментарии, замечания, критику и т.п. присылайте Александру на адрес: mssqlhelp@pisem.net

sql.ru

Описание рассылки
 Поиск на SQL.RU
Искать: 
Результатов на странице: Формат:
Тип запроса: Раздел:
МИНИФОРМА
ПОДПИСКИ




http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное