Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 xp_cmdshell / OLE на SQL Server 2000 и выполнение 32-битного приложения в 64-битной среде  [new]
UH
Member

Откуда: Kyiv
Сообщений: 149
Добрый день.

Windows Server 2003 R2 x64
Microsoft SQL Server 2000 - 8.00.2050
Microsoft Office Excel 2003 SP2

Нужно решить задачу: заполнять шаблоны на основе Excel-файлов методом подстановки значений, по запросу от пользователей, выполнение задачи вызовом хранимой процедуры.

Проблема с которой столкнулся - использование Excel в 64-битной среде от имени SQL Server.

Вариант с OLE отпал - объект Excel.Application не виден из-под SQL Server в 64-битной ОС. Решение проблемы не нашёл.

Решил применить скрипт на VBScript с использованием Excel.Application.
Скрипт отрабатывает без проблем запуском вручную. Через диспетчер задач видно, что создается процесс:
EXCEL*32

Но при запуске скрипта через xp_cmdshell всё снова печально: через диспетчер задач видно, что создаются процессы
cmd.exe*32
cscript.exe*32
EXCEL
Ошибка выполнения скрипта "Невозможно создание объекта контейнером ActiveX".
Запуск командой master..xp_cmdshell 'CScript.exe "script.vbs" param1 param2'

Есть ли какая-нибудь возможность в описанных условиях запускать скрипт т.о. чтобы использовать 32-битный Excel.Application?
Есть ли вообще любая другая возможность использовать Excel.Application от имени SQL сервер?
13 май 14, 16:11    [16010944]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell / OLE на SQL Server 2000 и выполнение 32-битного приложения в 64-битной среде  [new]
andy st
Member

Откуда:
Сообщений: 838
c:\windows\syswow64\wscript script.vbs
14 май 14, 08:40    [16013523]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell / OLE на SQL Server 2000 и выполнение 32-битного приложения в 64-битной среде  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8805
Что Вы делаете! Сервер SQL не должен ничего запускать и выполнять, он должен только обрабатывать запросы и выдавать результат.
Какая-то порочная практика часто складывается... MS Excel прекрасно умеет подключаться к SQL серверу и создавать запросы...
14 май 14, 11:08    [16014111]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell / OLE на SQL Server 2000 и выполнение 32-битного приложения в 64-битной среде  [new]
UH
Member

Откуда: Kyiv
Сообщений: 149
Владислав Колосов
Что Вы делаете! Сервер SQL не должен ничего запускать и выполнять, он должен только обрабатывать запросы и выдавать результат.
Какая-то порочная практика часто складывается... MS Excel прекрасно умеет подключаться к SQL серверу и создавать запросы...

Разумеется. А сервер с Windows должен только окошки показывать.
14 май 14, 11:19    [16014186]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell / OLE на SQL Server 2000 и выполнение 32-битного приложения в 64-битной среде  [new]
UH
Member

Откуда: Kyiv
Сообщений: 149
andy st
c:\windows\syswow64\wscript script.vbs

Предложенный Вами вариант не решает проблему.

В любом случае благодарю за помощь, вопрос больше не актуален, переносим выполнение задачи на сторону клиента.
14 май 14, 11:20    [16014196]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell / OLE на SQL Server 2000 и выполнение 32-битного приложения в 64-битной среде  [new]
UH
Member

Откуда: Kyiv
Сообщений: 149
Владислав Колосов
Что Вы делаете! Сервер SQL не должен ничего запускать и выполнять, он должен только обрабатывать запросы и выдавать результат.
Какая-то порочная практика часто складывается... MS Excel прекрасно умеет подключаться к SQL серверу и создавать запросы...

Все-таки добавлю ещё несколько слов. Мы применяли уже подобные решения ранее. SQL сервер использовал технологию OLE для формирования еженедельных отчетов в формате Excel с последующей рассылкой по электронной почте. Решение работало несколько лет как часы, проблем совершенно не возникало. Никто не претендовал тогда на статус "Решение года", цель была достигнута малыми затратами, затраты на администрирование также были минимальны.
Вообще, руки бы поотбивать разработчикам за sp_OACreate, xp_cmdshell и т.п. Как-будто ANSI SQL-86 кому-то не хватало...
14 май 14, 11:39    [16014324]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell / OLE на SQL Server 2000 и выполнение 32-битного приложения в 64-битной среде  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8805
Да, такой вариант возможен и очень соблазнителен потребителю, безусловно.
14 май 14, 12:56    [16014896]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell / OLE на SQL Server 2000 и выполнение 32-битного приложения в 64-битной среде  [new]
Empirical
Member

Откуда:
Сообщений: 99
UH
использование Excel в 64-битной среде от имени SQL Server.


Аce драйвер, линкед сервер и вперед. Все читается.
15 май 14, 01:09    [16018672]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить