Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Обработка документов Microsoft Excel  [new]
IIbIXAPb
Member

Откуда:
Сообщений: 103
Доброго времени суток, нужна небольшая помощь или разъяснение.

Когда выполняю программу через ярлык, в котором прописаны параметры для запуска проекта, то все нормально, документ Excel открывается, обрабатывается и успешно закрывается с сохранением:
"C:\Konomus_create_reports.exe -server:172.31.83.23 -base:konomus.db -login:konomus_report -pass:597468 -type_report:transmit -file:C:\1.xlsx*  -log:C:\123.txt* -table:name"


Но когда выполняешь тоже самое через SQL:
DECLARE @param varchar(5000)
DECLARE @cmd varchar(5000)
SET @param = '-server:172.31.83.23 -base:konomus.db -login:konomus_report -pass:597468 -type_report:transmit -file:C:\1.xlsx* -log:C:\123.txt* -table:name'
SET @cmd = 'C:\Konomus_create_reports.exe ' +@param 
EXEC master..xp_cmdshell @cmd


Вылезает такая ошибка:
>>>ERROR>>> Konomus_create_reports error has occurred
Текст самой ошибки:
Приложению Microsoft Excel не удается получить доступ к файлу "C:\1.xlsx". Это может быть вызвано одной из следующих причин.
• Указан несуществующий файл или путь.
• Файл используется другой программой.
• Имя книги, которую вы пытаетесь сохранить, совпадает с именем другой книги, открытой в данный момент.


С чем это может быть связанно. кто может подсказать, зарание спасибо большое.
16 фев 13, 08:39    [13935596]     Ответить | Цитировать Сообщить модератору
 Re: Обработка документов Microsoft Excel  [new]
aleks2
Guest
IIbIXAPb
С чем это может быть связанно. кто может подсказать, зарание спасибо большое.


Приложению Microsoft Excel не удается получить доступ к файлу "C:\1.xlsx". 

Ваш Копетан Очевидность.

ЗЫ. Учетная запись вашего сервера не имеет доступа к указанному файлу.
EXEC master..xp_cmdshell 'WHOAMI.exe'
и ужаснись.
16 фев 13, 09:02    [13935599]     Ответить | Цитировать Сообщить модератору
 Re: Обработка документов Microsoft Excel  [new]
IIbIXAPb
Member

Откуда:
Сообщений: 103
Да дело в том, что выполняя из под винды программу с параметрами, то файл спокойно открывается, а когда ее вызываешь из под SQL через запрос, то он говорит что не может получить доступ к файлу.
18 фев 13, 05:24    [13940488]     Ответить | Цитировать Сообщить модератору
 Re: Обработка документов Microsoft Excel  [new]
aleks2
Guest
IIbIXAPb
Да дело в том, что выполняя из под винды программу с параметрами, то файл спокойно открывается, а когда ее вызываешь из под SQL через запрос, то он говорит что не может получить доступ к файлу.

Шо вы говОрите?!!! Какие чудеса!

Ты уже запустил
EXEC master..xp_cmdshell 'WHOAMI.exe'
?
18 фев 13, 07:45    [13940597]     Ответить | Цитировать Сообщить модератору
 Re: Обработка документов Microsoft Excel  [new]
IIbIXAPb
Member

Откуда:
Сообщений: 103
Да, запустил. И он показал учетную запись администратора.

ZSK\Administrator
18 фев 13, 08:23    [13940659]     Ответить | Цитировать Сообщить модератору
 Re: Обработка документов Microsoft Excel  [new]
aleks2
Guest
Ну и есть ли у ZSK\Administrator права записи в файл?
18 фев 13, 08:35    [13940686]     Ответить | Цитировать Сообщить модератору
 Re: Обработка документов Microsoft Excel  [new]
IIbIXAPb
Member

Откуда:
Сообщений: 103
Так запись в файл не происходит, я его просто пытаюсь открыть
18 фев 13, 09:30    [13940877]     Ответить | Цитировать Сообщить модератору
 Re: Обработка документов Microsoft Excel  [new]
IIbIXAPb
Member

Откуда:
Сообщений: 103
aleks2
Ну и есть ли у ZSK\Administrator права записи в файл?


А где это можно посмотреть? Просто первый раз с таким столкнулся.
18 фев 13, 09:31    [13940881]     Ответить | Цитировать Сообщить модератору
 Re: Обработка документов Microsoft Excel  [new]
Гость333
Member

Откуда:
Сообщений: 3683
IIbIXAPb,

Хранить и обрабатывать файлы в корне диска C: — плохая идея. Операционная система, название которой вы забыли указать, этого не любит. Попробуйте создать какой-нибудь каталог и обрабатывать файлы в нём.
18 фев 13, 10:21    [13941104]     Ответить | Цитировать Сообщить модератору
 Re: Обработка документов Microsoft Excel  [new]
aleks2
Guest
IIbIXAPb
Так запись в файл не происходит, я его просто пытаюсь открыть

Ну, ты пытаешься открыть, а Excel открывает под запись.

IIbIXAPb
А где это можно посмотреть?

Правой пидалью мыши по файлу - Свойства - Безопасность.
Лучше иметь права записи и в папку C:\ тож.
18 фев 13, 10:26    [13941128]     Ответить | Цитировать Сообщить модератору
 Re: Обработка документов Microsoft Excel  [new]
Glory
Member

Откуда:
Сообщений: 104751
IIbIXAPb
Когда выполняю программу через ярлык, в котором прописаны параметры для запуска проекта, то все нормально, документ Excel открывается, обрабатывается и успешно закрывается с сохранением:

А у ваш файл и sql server на одной машине что ли ?
18 фев 13, 10:27    [13941137]     Ответить | Цитировать Сообщить модератору
 Re: Обработка документов Microsoft Excel  [new]
IIbIXAPb
Member

Откуда:
Сообщений: 103
Glory
IIbIXAPb
Когда выполняю программу через ярлык, в котором прописаны параметры для запуска проекта, то все нормально, документ Excel открывается, обрабатывается и успешно закрывается с сохранением:

А у ваш файл и sql server на одной машине что ли ?


Да, но я так понимаю, что в моем ответе есть ошибка? Так не должно быть?

aleks2
IIbIXAPb
Так запись в файл не происходит, я его просто пытаюсь открыть

Ну, ты пытаешься открыть, а Excel открывает под запись.

IIbIXAPb
А где это можно посмотреть?

Правой пидалью мыши по файлу - Свойства - Безопасность.
Лучше иметь права записи и в папку C:\ тож.


Ааа, так у него это и так есть.
18 фев 13, 10:36    [13941176]     Ответить | Цитировать Сообщить модератору
 Re: Обработка документов Microsoft Excel  [new]
Glory
Member

Откуда:
Сообщений: 104751
IIbIXAPb
Да, но я так понимаю, что в моем ответе есть ошибка? Так не должно быть?

и команда
EXEC master..xp_cmdshell 'dir C:\1.xlsx'
тоже с этим согласна ?
18 фев 13, 10:38    [13941185]     Ответить | Цитировать Сообщить модератору
 Re: Обработка документов Microsoft Excel  [new]
IIbIXAPb
Member

Откуда:
Сообщений: 103
 Том в устройстве C не имеет метки.
 Серийный номер тома: 34E4-97D2
NULL
 Содержимое папки C:\
NULL
18.02.2013  12:07             9 009 1.xlsx
               1 файлов          9 009 байт
               0 папок  49 993 744 384 байт свободно
NULL


Вот результат
18 фев 13, 13:04    [13942172]     Ответить | Цитировать Сообщить модератору
 Re: Обработка документов Microsoft Excel  [new]
Glory
Member

Откуда:
Сообщений: 104751
Тогда наверное
"Имя книги, которую вы пытаетесь сохранить, совпадает с именем другой книги, открытой в данный момент."
18 фев 13, 13:09    [13942216]     Ответить | Цитировать Сообщить модератору
 Re: Обработка документов Microsoft Excel  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35367
Блог
Предположу, что у вас файл уже открыт где-то и одновременно вы пытаетесь что-то сделать.
Например, ваша Konomus_create_reports зависла и заблокировала файл (ищите ее в процессах), либо просто запущен эксель с открытым файлом.
18 фев 13, 13:23    [13942353]     Ответить | Цитировать Сообщить модератору
 Re: Обработка документов Microsoft Excel  [new]
IIbIXAPb
Member

Откуда:
Сообщений: 103
Критик
Предположу, что у вас файл уже открыт где-то и одновременно вы пытаетесь что-то сделать.
Например, ваша Konomus_create_reports зависла и заблокировала файл (ищите ее в процессах), либо просто запущен эксель с открытым файлом.


в том то и дело, что до этого она не запущена, она запускается через запрос:

DECLARE @param varchar(5000)
DECLARE @cmd varchar(5000)
SET @param = '-server:172.31.83.23 -base:konomus.db -login:konomus_report -pass:597468 -type_report:transmit -file:C:\1.xlsx* -log:C:\123.txt* -table:name'
SET @cmd = 'C:\Konomus_create_reports.exe ' +@param 
EXEC master..xp_cmdshell @cmd


И просто открывает файл и закрыть (пока что), не сохраняет его. Excel тоже не запущен.
18 фев 13, 13:32    [13942407]     Ответить | Цитировать Сообщить модератору
 Re: Обработка документов Microsoft Excel  [new]
IIbIXAPb
Member

Откуда:
Сообщений: 103
Мда, по ходу этот вариант, никак не победить. А как еще можно реализовать: необходимо создать отчет в Excel через сервер, т.е. есть некий набор данных и их нужно распихать по определенным ячейкам. Зарание спасибо.
20 фев 13, 07:17    [13952605]     Ответить | Цитировать Сообщить модератору
 Re: Обработка документов Microsoft Excel  [new]
IIbIXAPb
Member

Откуда:
Сообщений: 103
После попытки этого кода:
Dim Exc As Object
Exc = CreateObject("Excel.Application")
Exc.Workbooks.Open("C:\1.xls").Activate()
Exc.Cells(1, 1) = "ПРИВЕТ!"
Exc.Rows(7).Insert(Shift:=-4121)
Exc.ActiveWorkbook.Save()
Exc.ActiveWorkbook.Close()
Exc.Quit()
Exc = Nothing


Вылезло это:
Невозможно получить свойство Open класса Workbooks

И так любой метод класса Workbook не хочет работать в программе, вызванной из под SQL. Чуствую решение, где-то рядом, но не уверен где.

Все таже беда, из под первого вариант работает, а вот запуск через SQL не хочет.
20 фев 13, 10:53    [13953283]     Ответить | Цитировать Сообщить модератору
 Re: Обработка документов Microsoft Excel  [new]
IIbIXAPb
Member

Откуда:
Сообщений: 103
И вот, что еще вылезло:

Метод SaveAs из класса Workbook завершен неверно
20 фев 13, 10:55    [13953294]     Ответить | Цитировать Сообщить модератору
 Re: Обработка документов Microsoft Excel  [new]
IIbIXAPb
Member

Откуда:
Сообщений: 103
Решение нашлось, и теперь можно работать спокойно. Всем и каждому отдельное спасибо.
20 фев 13, 13:00    [13954133]     Ответить | Цитировать Сообщить модератору
 Re: Обработка документов Microsoft Excel  [new]
Maslenica
Member

Откуда: Менск
Сообщений: 6
IIbIXAPb,

В заключалось решение?

Столкнулся с похожей проблемой. Выполняю vbs скрипт руками из проводника все работает, выполняю из SQL:

declare @cmd1 nvarchar(255)
set @cmd1='C:\Windows\system32\cscript.exe E:\FromJTI\Distr.vbs //NoLogo //X //D'
Exec master..xp_cmdshell @cmd1

выдает те же ошибки, что и у вас в первом сообщении.

Скрипт банальный, на обновление книги в фоновом режиме:

DIM objxl, objwb
Set objxl = CreateObject("Excel.Application")
objxL.Visible = false
Set objwb = objXl.WorkBooks.Open("E:\FromJTI\Distr.xlsx")
objwb.RefreshAll
objxl.Quit
set objwb = Nothing
Set objxl = Nothing

Использую:
MS SQL 2008R2
Microsoft Excel 2010

Все делается локально на сервере. Работаю под админом, на все папки уже дал полный доступ, как учетке SQL, так и админу. Excel ни кем не открыт во время выполнения скрипта из SQL.
12 мар 13, 11:39    [14039120]     Ответить | Цитировать Сообщить модератору
 Re: Обработка документов Microsoft Excel  [new]
Maslenica
Member

Откуда: Менск
Сообщений: 6
Господа, подскажите, может кто знает, какое все-таки было решение проблемы???
13 мар 13, 00:11    [14042888]     Ответить | Цитировать Сообщить модератору
 Re: Обработка документов Microsoft Excel  [new]
user89
Member

Откуда:
Сообщений: 2083
Maslenica
E:\FromJTI\Distr.vbs
Maslenica
E:\FromJTI\Distr.xlsx
А диск E: не сетевой (или локальная папка замаплена как диск E:) ?
14 мар 13, 09:46    [14045918]     Ответить | Цитировать Сообщить модератору
 Re: Обработка документов Microsoft Excel  [new]
Maslenica
Member

Откуда: Менск
Сообщений: 6
user89
Maslenica
E:\FromJTI\Distr.vbs
Maslenica
E:\FromJTI\Distr.xlsx
А диск E: не сетевой (или локальная папка замаплена как диск E:) ?


Все в одной локальной папке, прямо на серваке, никаких сетевых дисков нет. Что самое интересное, так это то, что пробую этот скрипт поставить не в SQL агенте, а в родном планировщике сервера и задание тупо зависает, если ставлю выполнение без входа в систему пользователем.. просто висит, пока руками не завершишь..

Я уже скопировал из cscript.exe из system32 в папку E:\FromJTI\, дал полные права, как SQL пользователям, так и локальным и все без толку..
14 мар 13, 12:34    [14046872]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить