Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > Создание пакета автоматической установки


Автор: Oberon83 20.7.2007, 13:21
Возникла необходимость создания пакета для автоматической установки Extended Stored Procedure.
Поскольку для выполнения этой процедуры необходимы права доступа Externel Access. dll сборки подписана.
Установка сборки стандартная:
Код


--1.    Создание ассиметричного ключа, основанного на подписи сборки RTFReporting.dll:

use master
GO

create asymmetric key AssymKey
from executable file = 'Путь_к_файлу\Reporting.dll'
GO

--2.    Создание логина Login, основанного на созданном ключе AssymKey:

create login Login from asymmetric key AssymKey
GO

--3.    Назначение прав External Access Assembly созданному логину Login:

grant external access assembly to Login
GO

--4.    Разворачивание сборки:

use [База_Данных]
GO

create assembly Reporting
from 'Путь_к_файлу\Reporting.dll'
with permission_set = external_access
GO

--5.    Создание процедуры:

create procedure Report (
@Link int ,
@F_Division int, 
@XMLParam nvarchar(max),
@savePath nvarchar(max),
@error bit output, 
@errorText nvarchar(max) output)
as
external name Reporting.[Report.StoredProcedure].Report
GO


Вроде бы банальная операция, но заказчик ленится это делать (баз много).

Поэтому нужно создать простой пакет установки (что-то типа bat файла) в который будут передаваться необходимые параметры: путь к сборке, имя БД, пользователь и пароль.

Решил делать на основе встроеной утилиты osql.exe, но столкнулся со следующей проблемой:
как выполнить эти срипты последовательно? Т.е. каждый пункт установки - это отдельный скрипт, вызывается который следующим образом: osql.exe -U user - P password -Q "query".
При запуске bat файла, который вызывает 5 скриптов происходит так, что эти скипты обрабатываются в разнабой, то же самое наблюдается, если запустить скрипты следующим образом: osql.exe -U user - P password -Q "query1" -Q "query2" -Q "query3" -Q "query4" ...
В чем может быть проблема и как ее решить (то что скрипты выполняются в разнобой говорит то, что постоянно вылазят ошибки, в разной последовательности, о том что тот или иной скрипт не выполнился, поскольку нет результата предыдущего скрипта)?

Заранее благодарен.

Автор: LexRema 22.8.2007, 18:10
Не совсем понял с первой частью вопроса.... Но с автоматической установкой стыкался. Есть такая фитча у VS- database project. 

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)