powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как программно запустить dts-пакет с клиентской машины?
25 сообщений из 31, страница 1 из 2
Как программно запустить dts-пакет с клиентской машины?
    #32038160
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, уважаемые Коллеги! Помогите, плз, решить проблему.
Проблема вкратце такова. Есть dbf-таблицы, распологающиеся на сетевом диске, с которыми работает одна часть пользователей. Есть база на SQL Server (2000), которая содержит копии этих dbf-таблиц, с которыми работает другая часть пользователей посредством моей программы (ну, надо так..). В dbf-таблицы, кот. на сетевом диске, периодически вносятся изменения (бывает, что и несколько раз на день). На сервере существует dts-пакет на обновление этих таблиц, который запускается ежедневно в 12 часов ночи. Но, сами понимаете, такая частота меня не устраивает. Есть ли какой-нить программый способ запуска этого пакета? Коллективным разумом найденное решение через NMMsg/NMMSGServ, к сожалению, по не зависящим от меня причинам реализовываться не будет. Реализовать это чисто программно, через ADOTable, я могу, но скорость, господа !!.. Да и хотелось бы, чтобы этим занимались службы самого сервера, что, без сомнения, было бы гораздо кульней.
Очень надеюсь на вашу помощь.
...
Рейтинг: 0 / 0
Как программно запустить dts-пакет с клиентской машины?
    #32038166
cool_lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тут придется написать программу, есть у вас программисты?
...
Рейтинг: 0 / 0
Как программно запустить dts-пакет с клиентской машины?
    #32038182
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну как Вам сказать... Я стараюсь им быть... Не могу похвалиться, что достиг в этом сияющих высот (вообще на Делфе с переменным успехом программирую менее года), но все-таки что-то иногда получается.
...
Рейтинг: 0 / 0
Как программно запустить dts-пакет с клиентской машины?
    #32038186
cool_lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а я то думал мы с вами коллеги, ну так зачем всякие глупые вопросы о dts пакетах на delphi форуме задавать, об этом наверно на sql-форуме знают, а вообще не знаю - я ламер
...
Рейтинг: 0 / 0
Как программно запустить dts-пакет с клиентской машины?
    #32038231
spice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А BOL читать не пробовали?
...
Рейтинг: 0 / 0
Как программно запустить dts-пакет с клиентской машины?
    #32038250
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
for spice:
про exec master..xp_cmdshell 'dtsrun....' я знаю, если Вы намекаете на этот путь, но нет ли другого способа? Я понимаю, что можно пойти в Москву через Магадан, попутно заглянув на мыс Доброй Надежды, но все же? Поверьте, есть причины, по которым мне не очень хочется рисовать SP, и не потому, что не знаю как...
...
Рейтинг: 0 / 0
Как программно запустить dts-пакет с клиентской машины?
    #32038282
spice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если невозможно этот процесс повесить на шедуллер, советую прочитать статью "Executing a DTS Package" в BOL. Почему не нравится SP, код будет минимальный.
...
Рейтинг: 0 / 0
Как программно запустить dts-пакет с клиентской машины?
    #32038286
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После установки MS SQL Server Client Tools на клиенте можно оперировать COM-объектом DTSPackage.

Хотите - новые создавайте, хотите - существующие на сервере запускайте.

А вот "умеет" ли Delphi работать с COM-объектами, вам наверное виднее
...
Рейтинг: 0 / 0
Как программно запустить dts-пакет с клиентской машины?
    #32038298
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
for Glory:
благодарю за совет, уважаемый Glory, но дело в том, что мою программу предполагается устанавливать на машинах узкоспециализированных непродвинутых пользователей, коим, сами понимаете, клиентская часть особо не нужна. Да и машины такие, что ой ...

for spice:
благодарю за совет, уважаемый spice, статью обязательно прочту. А насчет SP.. Прямого доступа к серверу-то у меня нет... Как думаете, вам понравится программировать через посредника, которого к тому же вам совсем не хочется нагружать? С бумажками бегать туда-сюда... Вот и хочется как-нить эдак, чтоб без беготни...
...
Рейтинг: 0 / 0
Как программно запустить dts-пакет с клиентской машины?
    #32038303
spice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А слабо для этих целей использовать ADOStoredProc?
...
Рейтинг: 0 / 0
Как программно запустить dts-пакет с клиентской машины?
    #32038318
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spice, дык чтоб использовать ADOStoredProc, надо иметь уже готовую SP на сервере, не так ли? А мне, чтоб ее написать, придется раз 10 сбегать с текстом процедуры на бумаге к, так сказать, посреднику, чтобы он ее набил, а это время-деньги и, самое главное, нервы посредника, потому как если он станет недоволен, то хрен я вообще чего напишу...
...
Рейтинг: 0 / 0
Как программно запустить dts-пакет с клиентской машины?
    #32038319
cool_lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>мою программу предполагается устанавливать на машинах >узкоспециализированных непродвинутых пользователей

>Прямого доступа к серверу-то у меня нет

>программировать через посредника

>есть причины, по которым мне не очень хочется рисовать SP

какие-то странные условия программирования, может опишешь по-подробнее: ОС сервера, его роль в домене, с какими правами заходишь на сервер, с какими на SQL, примерный конфиг ПК клиентов,
несколько вариантов решения проблемы уже предложили - не может такого быть, чтобы ничего не подошло, какие ошибки выскакивают при выполнении
...
Рейтинг: 0 / 0
Как программно запустить dts-пакет с клиентской машины?
    #32038325
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>какие-то странные условия программирования...

Э-э-х-х, в этом-то все и дело. Спасибо за участие, парни, простите, но некогда писать развернутый ответ - домой пора (я типа на работе), завтра встретимся. Удачи.
...
Рейтинг: 0 / 0
Как программно запустить dts-пакет с клиентской машины?
    #32038327
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Client Tools это просто наиболее простой способ.

Путем экспериментов и анализа системного реестра можно выяснить какие библиотеки отвечают собственно за DTSPackage и вручную перенести и зарегистрировать их на клиентской машине.
...
Рейтинг: 0 / 0
Как программно запустить dts-пакет с клиентской машины?
    #32038340
spice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну ADOCommand-то ты хоть можешь оформить???
...
Рейтинг: 0 / 0
Как программно запустить dts-пакет с клиентской машины?
    #32038355
Фотография nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>на Делфе с переменным успехом программирую менее года
>Прямого доступа к серверу-то у меня нет
С переменным это хорошо... А до этого на чем писали?
Я бы тоже много раз подумал прежде чем полные права на сервере раздавать, никакой админ не управится.
А про запуск DTS-пакета где-то на форуме подробный пример был.
...
Рейтинг: 0 / 0
Как программно запустить dts-пакет с клиентской машины?
    #32038407
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго утра, господа!
вот свежий прикол:
написал SP
exec master..xp_cmdshell 'dtsrun /Sserver /Uuser /Ppassword
/Npackage' (естественно, с реальными параметрами), все честь по чести, в ответ:
error provider 18452 Login failed for user 'sa' (сухой щелчок бойка :)). Не подскажете, как бороться?

for Nike: до этого писал в основном на различных ассемблерах (по образованию я инженер-системотехник, так что сам понимаешь...)

for Glory: может быть, это и простой способ, но у меня цейтнот - если до пятницы не управлюсь, раздастся одиночный выстрел.. :)

for spice: если я правильно понял - это принудительно создавать SP на сервере? :[] А тогда не все ли равно? По любому у меня админ взвоет, если я что-нить без его ведома на серваке делать буду...
...
Рейтинг: 0 / 0
Как программно запустить dts-пакет с клиентской машины?
    #32038408
Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда шедуллишь DTS Package, в job можно нажать на кнопочку generate sql script - получится что-то типа "sp_runJob <jobname>" (в стихах не помню), правда владелец job должен быть тот user, который ее и будет запускать через ADOCommand. У меня все так и работает - сам пользователь запускает задание (job то бишь) которое выполняет DTS Package. Недостаток - как узнать о том, что задание выполнено. Но это где-то я видел в форуме.
...
Рейтинг: 0 / 0
Как программно запустить dts-пакет с клиентской машины?
    #32038413
cool_lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> error provider 18452 Login failed for user 'sa' (сухой щелчок бойка :)). Не подскажете, как бороться?

если ты ответы на такие вопросы пытаешься найти на форуме, значит админ твой молодой, да неопытный, ты спроси у него стоят ли необходимые сервиспаки на сервере и на SQL, если он давно не обновлял - глюки у тебя будут гарантированно, а программку для лечения этой ошибки выслал тебе по почте, с ее помощью ты сможешь выполнять пакеты от имени SA и получишь права администратора на сервере, если хочешь вышлю исходники на ассемблере, в нем то ты нормально разбираешься. удачи
...
Рейтинг: 0 / 0
Как программно запустить dts-пакет с клиентской машины?
    #32038426
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, а если я сделаю линкованный сервер (ну там sp_addlinkedserver.. и т.д. ), это вылечит?
...
Рейтинг: 0 / 0
Как программно запустить dts-пакет с клиентской машины?
    #32038485
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
for Alex:
надо ли переносить sp_start_job из msdb в ту базу, на которой лежит dts - пакет? У меня sp_start_job только при uses msdb работает... И если не трудно, подкинь, плз, CommandText для ADOCommand для запуска этого jobа...
...
Рейтинг: 0 / 0
Как программно запустить dts-пакет с клиентской машины?
    #32038555
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, ну это просто слезы.. :``(((
простейшая SP:
exec master..xp_cmdshell 'dtsrun /STitan /E /N copy_plan' на сервере - без вопросов, из программы - "Executing permission denied on object xp_cmdshell, database 'master', owner 'dbo' ..." Использую ADOStoredProc, конечно.. Что бы это значило, а?
...
Рейтинг: 0 / 0
Как программно запустить dts-пакет с клиентской машины?
    #32038567
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Executing permission denied on object xp_cmdshell, database 'master', owner 'dbo'

Наверняка ведь пользователь, запускающий это, не является членом роли sysadmins. A только они могут это сделать напрямую. Все другие пользователи могут запускать xp_cmdshell через другую пользовательскую процедуру. При этом, запущенные таким образом внешние программы (dtsrun в данном случае), будут выполнятся в контексте безопасности SQL Server Agent proxy account, а не учетной записи, под которой запущен MSSQL Server.
...
Рейтинг: 0 / 0
Как программно запустить dts-пакет с клиентской машины?
    #32038570
Фотография manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за раз'яснение, частично прояснилось..

>... Все другие пользователи могут запускать xp_cmdshell через другую пользовательскую процедуру...
А через какую именно не подскажете?
...
Рейтинг: 0 / 0
Как программно запустить dts-пакет с клиентской машины?
    #32038576
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Через любую, которая будет содержать явный вызов xp_cmdshell и на которую вы дадите пользователю право на запуск
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как программно запустить dts-пакет с клиентской машины?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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