powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / local DTS
21 сообщений из 21, страница 1 из 1
local DTS
    #32042373
Gena G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как запустить оный из SP?
...
Рейтинг: 0 / 0
local DTS
    #32042395
Gena G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну хоть кто чего скажет или нет?
...
Рейтинг: 0 / 0
local DTS
    #32042398
Фотография KANDed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To execute a DTS package saved as a COM-structured storage file, use:
dtsrun /Ffilename /Npackage_name /Mpackage_password

To execute a DTS package saved in the SQL Server msdb database, use:
dtsrun /Sserver_name /Uuser_nName /Ppassword /Npackage_name /Mpackage_password

To execute a DTS package saved in Meta Data Services, use:
dtsrun /Sserver_name /Uuser_nrame /Ppassword /Npackage_name /Mpackage_password /Rrepository_name
...
Рейтинг: 0 / 0
local DTS
    #32042400
Gena G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я же говорил про Local DTS не на диске :(
...
Рейтинг: 0 / 0
local DTS
    #32042427
Gena G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну памажите кто-нибудь!

Нашел код, а он дышит через пень-колоду....

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
if exists (select * from sysobjects where id = 
object_id(N'[dbo].[sp_displayoaerrorinfo]') and OBJECTPROPERTY(id, 
N'IsProcedure') =  1 )
drop procedure [dbo].[sp_displayoaerrorinfo]
GO

if exists (select * from sysobjects where id = 
object_id(N'[dbo].[sp_displaypkgerrors]') and OBJECTPROPERTY(id, 
N'IsProcedure') =  1 )
drop procedure [dbo].[sp_displaypkgerrors]
GO

if exists (select * from sysobjects where id = 
object_id(N'[dbo].[sp_executepackage]') and OBJECTPROPERTY(id, N'IsProcedure') 
=  1 )
drop procedure [dbo].[sp_executepackage]
GO


create proc sp_displayoaerrorinfo
   @object as int 
as
Declare @hr int
DECLARE @output varchar( 255 )
DECLARE @source varchar( 255 )
DECLARE @description varchar( 255 )

   PRINT 'OLE Automation Error Information'

   EXEC @hr = sp_OAGetErrorInfo @object, @source OUT, @description OUT
   IF @hr =  0 
   BEGIN
       SELECT @output = '  Source: ' + @source
       PRINT @output
       SELECT @output = '  Description: ' + @description
       PRINT @output
   END

   ELSE
   BEGIN
       PRINT '  sp_OAGetErrorInfo failed.'
       RETURN
   END
GO


create proc sp_displaypkgerrors
   @pkg as int 
as
declare @numsteps int
declare @steps int
declare @step int
declare @stepresult int
declare @pkgresult int
declare @hr int

   select @pkgresult =  0 

   EXEC @hr = sp_OAGetProperty @pkg, 'Steps', @steps OUTPUT
   IF @hr <>  0 
   BEGIN
       print 'Unable to get steps'
       EXEC sp_displayoaerrorinfo @pkg  --, @hr
 
       RETURN
   END

   EXEC @hr = sp_OAGetProperty @steps, 'Count', @numsteps OUTPUT
   IF @hr <>  0 
   BEGIN
       print 'Unable to get number of steps'
       EXEC sp_displayoaerrorinfo @steps  --, @hr
 
       RETURN
   END
   
   while @numsteps >  0  
   Begin       
       EXEC @hr = sp_OAGetProperty @steps, 'Item', @step OUTPUT, @numsteps
       IF @hr <>  0 
       BEGIN
           print 'Unable to get step'
           EXEC sp_displayoaerrorinfo @steps  --, @hr
 
           RETURN
       END
   
       EXEC @hr = sp_OAGetProperty @step, 'ExecutionResult', @stepresult OUTPUT
       IF @hr <>  0 
       BEGIN
           print 'Unable to get ExecutionResult'
           EXEC sp_displayoaerrorinfo @step  --, @hr
 
           RETURN
       END

       select @numsteps = @numsteps -  1 
       select @pkgresult = @pkgresult + @stepresult
   end
   
   if @pkgresult >  0 
       print 'Package had ' + cast(@pkgresult as varchar) + ' failed step(s)'
   else 
       print 'Packge Succeeded'

GO


create proc sp_executepackage
   @packagename varchar( 255 ),   --package name, gets most recent version
 
   @userpwd varchar( 255 ) = '',    --login pwd
 
   @intsecurity bit =  1 ,        --use non-zero to indicate integrated security
 
   @pkgPwd varchar( 255 ) = '',    --package password
 
   @SQLServer varchar( 255 ) = 'MySQLserver',
   @SQLuser varchar( 255 ) = 'domain\login'
as
declare @hr int
declare @object int

    --create a package object 
 
   EXEC @hr = sp_OACreate 'DTS.Package', @object OUTPUT 
   if @hr <>  0 
   Begin
       EXEC sp_displayoaerrorinfo @object  --, @hr
 
       RETURN
   end 

    --load the package (ADD integrated security support)
 
   declare @svr varchar( 15 )
   declare @login varchar( 15 )
 --   select @login = SUSER_NAME()
 
   select @login = @SQLuser
 --   select @svr = HOST_NAME()
 
   select @svr = @SQLServer
   declare @flag int
   select @flag =  0 

   if @intsecurity =  0  
       if @userpwd = Null
           EXEC @hr = sp_OAMethod @object, 'LoadFromSqlServer',NULL, 
@ServerName=@svr, @ServerUserName=@login, @PackageName=@packagename, 
@Flags=@flag, @PackagePassword = @pkgPwd
            -- ServerName As String, [ServerUserName As String], [ServerPassword As String], [Flags As DTSSQLServerStorageFlags = DTSSQLStgFlag_Default], [PackagePassword As String], [PackageGuid As String], [PackageVersionGuid As String], [PackageName As String], [pVarPersistStgOfHost])
 
       else
           EXEC @hr = sp_OAMethod @object, 'LoadFromSqlServer',NULL, 
@ServerName=@svr, @ServerUserName=@login, @PackageName=@packagename, 
@Flags=@flag, @PackagePassword = @pkgPwd, @ServerPassword = @userpwd
   else
   begin
       select @flag =  256 
       EXEC @hr = sp_OAMethod @object, 'LoadFromSqlServer',NULL, 
@ServerName=@svr, @PackageName=@packagename, @Flags=@flag, @PackagePassword = 
@pkgPwd
   end

   IF @hr <>  0 
   BEGIN
       print 'LoadFromSQLServer failed'
       EXEC sp_displayoaerrorinfo @object  --, @hr
 
       RETURN
   END

    --execute it
 
   EXEC @hr = sp_OAMethod @object, 'Execute'
   IF @hr <>  0 
   BEGIN
       print 'Execute failed'
       EXEC sp_displayoaerrorinfo @object  --, @hr
 
       RETURN
   END

    --return the step errors as a recordset
 
   exec sp_displaypkgerrors @object

    -- unitialize the package
 
   EXEC @hr = sp_OAMethod @object, 'UnInitialize'
   IF @hr <>  0 
   BEGIN
       print 'UnInitialize failed'
       EXEC sp_displayoaerrorinfo @object  --, @hr
 
       RETURN
   END

    -- release the package object
 
   EXEC @hr = sp_OADestroy @object
   if @hr <>  0 
   Begin
       EXEC sp_displayoaerrorinfo @object  --, @hr
 
       RETURN
   end 
GO

...
Рейтинг: 0 / 0
local DTS
    #32042463
Фотография snake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте задать JOB для запуска пакета.
(Там в ЕМ есть sheledue package)
И стартуйте его (RTFM sp_start_job) , а не сам пакет...
...
Рейтинг: 0 / 0
local DTS
    #32042544
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я же говорил про Local DTS не на диске :(

Вам же KANDed указал

To execute a DTS package saved in the SQL Server msdb database , use:
dtsrun /Sserver_name /Uuser_nName /Ppassword /Npackage_name /Mpackage_password
...
Рейтинг: 0 / 0
local DTS
    #32042688
Gena G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я наверное тупой :(

В командной строке работает:

dtsrun /E /Smyserver /Nmypackage

В TSQL нет :(

exec master.dbo.xp_cmdshell 'dtsrun /E /Smyserver /Nmypackage'

Error string: Cannot start your application. The workgroup information file is missing or opened exclusively by another user.

Где собака порылась?
...
Рейтинг: 0 / 0
local DTS
    #32042703
Фотография KANDed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Поразмышляй о тех кадрах, от имени которых ты запускаешь dtsrun в разных вариантах.

2. Посмотри это:
OLE DB provider '%ls' reported an error. %ls
Cannot start your application. The workgroup information file is missing or opened exclusively by another user.

Explanation
This error message returned by the Microsoft OLE DB Provider for Jet indicates one of the following:

The Microsoft® Access database is not a secured database and the login and password specified was not Admin with no password.

The Access database is secured and the HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\SystemDB registry key is not pointing to the correct Access workgroup file. Secured Access databases have a corresponding workgroup file, including the full path, which should be indicated by the above registry key.

Action
Verify that there is a login mapping for the current Microsoft SQL Server™ login to Admin with no password.
If the Access database being accessed is secured, make sure that the above registry key points to the full pathname of the Access
...
Рейтинг: 0 / 0
local DTS
    #32042706
Gena G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все выполняется с одной машины. И не из Access а из QA.
...
Рейтинг: 0 / 0
local DTS
    #32042714
Фотография KANDed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну командная то строка не из QA?
А в QA под кем приконнектился?
А владелец пакета? А его права?...
...
Рейтинг: 0 / 0
local DTS
    #32042717
Gena G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используется trusted connection как для MMC так и для QA. Паролей на DTS нет (иначе бы была иная мессага). И пакеты были созданы и командная строка и QA и MMC бегут на одной клиентской машине. Так что с секюрити вроде бы все путем...
...
Рейтинг: 0 / 0
local DTS
    #32042721
Фотография KANDed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Re "trusted connection как для MMC так и для QA"
Не понимаю.
1. Пакет был создан тоже в QA?
2. В командной строке он запускается от имени доменной учетной записи, входящей, видимо, в Login'ы SQL Server'а (скорее всего, по умолчанию, вместе со всеми Doman Administrators)?
3. Вход в QA осуществлен под Win или SQL аутентификацией?
4. Что делает пакет? Куда лезет? Хватает ли прав у владельца и инициатора запуска?
...
Рейтинг: 0 / 0
local DTS
    #32042732
Фотография KANDed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, забыл сказать: Попробуй убрать /Е и пропиши юзера и пасс. Есть похожая проблема .
...
Рейтинг: 0 / 0
local DTS
    #32042735
Gena G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Идея...

Этот пакет тащит данные из *.mdb файла со всякими там секюрити что лежат в отдельном *.mdw файле.

Сам пакет был создан в MMC и параметры для *.mdw (путь, логин и пароль) прописаны в нем. Теперь этот пакет выполняется из MMC и командной строчки на удаленном компьютере и не хочет бежать в QA :(
...
Рейтинг: 0 / 0
local DTS
    #32042747
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получается, что
- DTS package на самом деле запускается
- ошибку вызывает один из Task-ов внутри DTS
- скорее всего это Task обращения к удаленному *.mdb файлу

Причину вижу в том, что MMC запускает DTS package от учетной записи, под которой вы залогинены на консоль
а xp_cmdshell - от имени учетной записи, под которой стартует SQL сервер. Проверьте права этой учетной записи

Почитайте
INF: How to Run a DTS Package as a Scheduled Job

Также можете запустить DTS package с ключом /L log_file_name: , чтобы получить подробный отчет о ходе выполнения пакета
...
Рейтинг: 0 / 0
local DTS
    #32042759
Фотография KANDed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Раз уж пошла такая пьянка, то присмотрись и к аккаунту от которого SQL Server Agent запускается. В будущем пригодится. В голове выстроится стройная СИСТЕМА прав и обязанностей.
...
Рейтинг: 0 / 0
local DTS
    #32043043
Gena G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glory,

Сделал как сказано - фифект тот же :( Да и проблема в чем? Я прописал юзера и пароль что в *.mdw сохранены. TAsk там только один - выкачать данные из акцеса в SQL

KANDed,

да я вроде как понимаю всю эту цепочку. Агент мне пока побоку - не работает это все внутри *.sql скрипта :(
...
Рейтинг: 0 / 0
local DTS
    #32043057
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал как сказано - фифект тот же

Что конкретно сделали ?
Кстати, так и не понятно, под какими учетными записями у вас стартуют сервисы MSSQLSERVER и SQLSERVERAGENT. И есть ли у них права на сетевой ресурс с *.mdb файлом.
...
Рейтинг: 0 / 0
local DTS
    #32043063
Gena G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Учетная запись та же что и логин для удаленного компьютера. Диск расшарен для всеобщего доступа.

SQLSERVERAGENT не запущен вообще
...
Рейтинг: 0 / 0
local DTS
    #32043243
Фотография Александр Гладченко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / local DTS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]