|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
Здравствуйте, уважаемые Коллеги! Помогите, плз, решить проблему. Проблема вкратце такова. Есть dbf-таблицы, распологающиеся на сетевом диске, с которыми работает одна часть пользователей. Есть база на SQL Server (2000), которая содержит копии этих dbf-таблиц, с которыми работает другая часть пользователей посредством моей программы (ну, надо так..). В dbf-таблицы, кот. на сетевом диске, периодически вносятся изменения (бывает, что и несколько раз на день). На сервере существует dts-пакет на обновление этих таблиц, который запускается ежедневно в 12 часов ночи. Но, сами понимаете, такая частота меня не устраивает. Есть ли какой-нить программый способ запуска этого пакета? Коллективным разумом найденное решение через NMMsg/NMMSGServ, к сожалению, по не зависящим от меня причинам реализовываться не будет. Реализовать это чисто программно, через ADOTable, я могу, но скорость, господа !!.. Да и хотелось бы, чтобы этим занимались службы самого сервера, что, без сомнения, было бы гораздо кульней. Очень надеюсь на вашу помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2002, 09:50 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
тут придется написать программу, есть у вас программисты? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2002, 10:11 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
Ну как Вам сказать... Я стараюсь им быть... Не могу похвалиться, что достиг в этом сияющих высот (вообще на Делфе с переменным успехом программирую менее года), но все-таки что-то иногда получается. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2002, 11:29 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
а я то думал мы с вами коллеги, ну так зачем всякие глупые вопросы о dts пакетах на delphi форуме задавать, об этом наверно на sql-форуме знают, а вообще не знаю - я ламер ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2002, 11:36 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
А BOL читать не пробовали? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2002, 13:27 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
for spice: про exec master..xp_cmdshell 'dtsrun....' я знаю, если Вы намекаете на этот путь, но нет ли другого способа? Я понимаю, что можно пойти в Москву через Магадан, попутно заглянув на мыс Доброй Надежды, но все же? Поверьте, есть причины, по которым мне не очень хочется рисовать SP, и не потому, что не знаю как... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2002, 14:18 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
Если невозможно этот процесс повесить на шедуллер, советую прочитать статью "Executing a DTS Package" в BOL. Почему не нравится SP, код будет минимальный. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2002, 15:55 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
После установки MS SQL Server Client Tools на клиенте можно оперировать COM-объектом DTSPackage. Хотите - новые создавайте, хотите - существующие на сервере запускайте. А вот "умеет" ли Delphi работать с COM-объектами, вам наверное виднее ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2002, 16:06 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
for Glory: благодарю за совет, уважаемый Glory, но дело в том, что мою программу предполагается устанавливать на машинах узкоспециализированных непродвинутых пользователей, коим, сами понимаете, клиентская часть особо не нужна. Да и машины такие, что ой ... for spice: благодарю за совет, уважаемый spice, статью обязательно прочту. А насчет SP.. Прямого доступа к серверу-то у меня нет... Как думаете, вам понравится программировать через посредника, которого к тому же вам совсем не хочется нагружать? С бумажками бегать туда-сюда... Вот и хочется как-нить эдак, чтоб без беготни... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2002, 16:49 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
А слабо для этих целей использовать ADOStoredProc? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2002, 16:55 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
spice, дык чтоб использовать ADOStoredProc, надо иметь уже готовую SP на сервере, не так ли? А мне, чтоб ее написать, придется раз 10 сбегать с текстом процедуры на бумаге к, так сказать, посреднику, чтобы он ее набил, а это время-деньги и, самое главное, нервы посредника, потому как если он станет недоволен, то хрен я вообще чего напишу... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2002, 17:32 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
>мою программу предполагается устанавливать на машинах >узкоспециализированных непродвинутых пользователей >Прямого доступа к серверу-то у меня нет >программировать через посредника >есть причины, по которым мне не очень хочется рисовать SP какие-то странные условия программирования, может опишешь по-подробнее: ОС сервера, его роль в домене, с какими правами заходишь на сервер, с какими на SQL, примерный конфиг ПК клиентов, несколько вариантов решения проблемы уже предложили - не может такого быть, чтобы ничего не подошло, какие ошибки выскакивают при выполнении ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2002, 17:34 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
>какие-то странные условия программирования... Э-э-х-х, в этом-то все и дело. Спасибо за участие, парни, простите, но некогда писать развернутый ответ - домой пора (я типа на работе), завтра встретимся. Удачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2002, 17:46 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
Client Tools это просто наиболее простой способ. Путем экспериментов и анализа системного реестра можно выяснить какие библиотеки отвечают собственно за DTSPackage и вручную перенести и зарегистрировать их на клиентской машине. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2002, 17:49 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
Ну ADOCommand-то ты хоть можешь оформить??? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2002, 18:21 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
>на Делфе с переменным успехом программирую менее года >Прямого доступа к серверу-то у меня нет С переменным это хорошо... А до этого на чем писали? Я бы тоже много раз подумал прежде чем полные права на сервере раздавать, никакой админ не управится. А про запуск DTS-пакета где-то на форуме подробный пример был. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2002, 19:02 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
Доброго утра, господа! вот свежий прикол: написал 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 на сервере? :[] А тогда не все ли равно? По любому у меня админ взвоет, если я что-нить без его ведома на серваке делать буду... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2002, 09:57 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
Когда шедуллишь DTS Package, в job можно нажать на кнопочку generate sql script - получится что-то типа "sp_runJob <jobname>" (в стихах не помню), правда владелец job должен быть тот user, который ее и будет запускать через ADOCommand. У меня все так и работает - сам пользователь запускает задание (job то бишь) которое выполняет DTS Package. Недостаток - как узнать о том, что задание выполнено. Но это где-то я видел в форуме. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2002, 10:04 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
> error provider 18452 Login failed for user 'sa' (сухой щелчок бойка :)). Не подскажете, как бороться? если ты ответы на такие вопросы пытаешься найти на форуме, значит админ твой молодой, да неопытный, ты спроси у него стоят ли необходимые сервиспаки на сервере и на SQL, если он давно не обновлял - глюки у тебя будут гарантированно, а программку для лечения этой ошибки выслал тебе по почте, с ее помощью ты сможешь выполнять пакеты от имени SA и получишь права администратора на сервере, если хочешь вышлю исходники на ассемблере, в нем то ты нормально разбираешься. удачи ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2002, 10:27 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
Господа, а если я сделаю линкованный сервер (ну там sp_addlinkedserver.. и т.д. ), это вылечит? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2002, 11:22 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
for Alex: надо ли переносить sp_start_job из msdb в ту базу, на которой лежит dts - пакет? У меня sp_start_job только при uses msdb работает... И если не трудно, подкинь, плз, CommandText для ADOCommand для запуска этого jobа... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2002, 13:50 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
Господа, ну это просто слезы.. :``((( простейшая SP: exec master..xp_cmdshell 'dtsrun /STitan /E /N copy_plan' на сервере - без вопросов, из программы - "Executing permission denied on object xp_cmdshell, database 'master', owner 'dbo' ..." Использую ADOStoredProc, конечно.. Что бы это значило, а? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2002, 16:56 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
"Executing permission denied on object xp_cmdshell, database 'master', owner 'dbo' Наверняка ведь пользователь, запускающий это, не является членом роли sysadmins. A только они могут это сделать напрямую. Все другие пользователи могут запускать xp_cmdshell через другую пользовательскую процедуру. При этом, запущенные таким образом внешние программы (dtsrun в данном случае), будут выполнятся в контексте безопасности SQL Server Agent proxy account, а не учетной записи, под которой запущен MSSQL Server. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2002, 17:22 |
|
Как программно запустить dts-пакет с клиентской машины?
|
|||
---|---|---|---|
#18+
Спасибо за раз'яснение, частично прояснилось.. >... Все другие пользователи могут запускать xp_cmdshell через другую пользовательскую процедуру... А через какую именно не подскажете? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2002, 17:28 |
|
|
start [/forum/topic.php?fid=58&msg=32038325&tid=2119927]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
182ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 302ms |
0 / 0 |