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

Откуда:
Сообщений: 31
Добрый день, помогите пожалуйста вот с чем..необходимо перенести данные из таблицы екселевской в таблицу, знаю что можно через утилитку импорт/экспорт данных, но хотелось бы это скриптом или процедурой сделать. Спустя пару дней поисков смог родить только вот это:

CREATE table [#tblImport] (
    [Field1] [NVARCHAR] (15),
    [Field2] [NVARCHAR] (100),
    [Field3] [DateTime],
    [Field4] [money],
    [Field5] [int])

INSERT INTO [#tblImport]
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\Users\Artem\Documents\005.xls;Extended Properties=EXCEL 5.0')...[Лист3$]


но выдается ошибка:
Невозможно использовать поставщик OLE DB "Microsoft.Jet.OLEDB.4.0" для распределенных запросов, поскольку поставщик настроен на работу в потоке контейнера с одним потоком.
знаю что из-за х64, на х32 все норм работает, но вот на работе нет возможности поставить х32.

Я только-только во всем этом разбираюсь, так что буду рад всему-от литературы доступной в электронке до готового кода, но с пояснениями)
3 июл 13, 18:13    [14518463]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт/импорт из Excel в сервер 2012  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3019
Sky1992, для 64х надо использовать Microsoft.ACE.OLEDB.12.0 драйвер
3 июл 13, 18:24    [14518516]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт/импорт из Excel в сервер 2012  [new]
Sky1992
Member

Откуда:
Сообщений: 31
HandKot
Sky1992, для 64х надо использовать Microsoft.ACE.OLEDB.12.0 драйвер


это я тоже читал и пробовал, но вот текст ошибки тот же
4 июл 13, 09:07    [14520224]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт/импорт из Excel в сервер 2012  [new]
Sky1992
Member

Откуда:
Сообщений: 31
не, вру..ошибочка вот такая:
Сообщение 7403, уровень 16, состояние 1, строка 1
Поставщик OLE DB "Microsoft.ACE.OLEDB.12.0" не зарегистрирован.


т.е. нужно ставить Microsoft Access Database Engine 2010 Redistributable?
4 июл 13, 09:34    [14520342]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт/импорт из Excel в сервер 2012  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3019
Sky1992, ага
4 июл 13, 10:25    [14520593]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт/импорт из Excel в сервер 2012  [new]
Sky1992
Member

Откуда:
Сообщений: 31
HandKot, Добрый день. Спустя столько времени снова за помощью) поставил драйвер Microsoft.ACE.OLEDB.12.0, вот отсюда: http://www.microsoft.com/en-us/download/confirmation.aspx?id=13255
В итоге вот такой код:

INSERT INTO [#tblImport]
SELECT * FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0',
'Data Source=C:\Users\Artem\Desktop\005.xls;Extended Properties=EXCEL 5.0')...[Лист3$]


даёт вот такую ошибку:

Сообщение 7302, уровень 16, состояние 1, строка 1
Не удалось создать экземпляр поставщика OLE DB "MSDASC" для связанного сервера "(null)".


Как с этим бороться?
9 июл 13, 12:15    [14540296]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт/импорт из Excel в сервер 2012  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Sky1992,

Allow Inprocess в свойствах провайдера установлен?
9 июл 13, 13:22    [14540875]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт/импорт из Excel в сервер 2012  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
Sky1992,
вы поручаете выполнить SELECT серверу, поэтому он будет искать C:\Users\... на своём локальном диске C - может, проблема в этом?
9 июл 13, 13:26    [14540910]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт/импорт из Excel в сервер 2012  [new]
Sky1992
Member

Откуда:
Сообщений: 31
pkarklin, объясните плиз что это такое и как делается)

Cygapb-007, я на сервере все делаю, так что в этом точно нет проблемы
9 июл 13, 17:03    [14542657]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт/импорт из Excel в сервер 2012  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3019
Sky1992
Cygapb-007, я на сервере все делаю, так что в этом точно нет проблемы


это лучше проверить
xp_cmdshell 'dir C:\Users\Artem\Documents\005.xls'
10 июл 13, 08:03    [14544610]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт/импорт из Excel в сервер 2012  [new]
Sky1992
Member

Откуда:
Сообщений: 31
HandKot
Sky1992
Cygapb-007, я на сервере все делаю, так что в этом точно нет проблемы


это лучше проверить
xp_cmdshell 'dir C:\Users\Artem\Documents\005.xls'


В общем после выполнения получил следующий output:

Отказано в доступе.
NULL

Попробовал перекинуть файлик на сервер, получил следующее:
exec xp_cmdshell 'dir \\10.1.32.14\share\DOC\!_Артем\005.xls'


Том в устройстве \\10.1.32.14\share имеет метку share
Серийный номер тома: 3AFA-3C3D
NULL
Содержимое папки \\10.1.32.14\share\DOC\!_Артем
NULL
03.07.2013 15:51 65 536 005.xls
1 файлов 65 536 байт
0 папок 420 859 904 байт свободно
NULL
11 июл 13, 09:45    [14550462]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт/импорт из Excel в сервер 2012  [new]
йцукенгш
Guest
Sky1992, во втором случае доступ уже есть. его и используйте
11 июл 13, 10:31    [14550734]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт/импорт из Excel в сервер 2012  [new]
Sky1992
Member

Откуда:
Сообщений: 31
йцукенгш,

Результат выполнения запроса:

SELECT * FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0', 
                             'Data Source=\\10.1.32.14\share\DOC\!_Артем\005.xls;
                              Extended Properties=EXCEL 5.0')...[Лист3$]


тот же что и раньше:

Сообщение 7302, уровень 16, состояние 1, строка 1
Не удалось создать экземпляр поставщика OLE DB "MSDASC" для связанного сервера "(null)".
11 июл 13, 10:36    [14550763]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт/импорт из Excel в сервер 2012  [new]
Sky1992
Member

Откуда:
Сообщений: 31
Небольшое дополнение:на сервере стоит 2003 офис(провайдер Jet.4), так же стоит патч, чтобы *xlsx-файлы открывать, драйвер ACE.OLEDB.12.0 ставил сам, из-за этого может не работать?
А то полазал по форуму и нашел, что исправлялось иногда сносом 2003 офиса и сетапом 2007
12 июл 13, 10:38    [14556034]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт/импорт из Excel в сервер 2012  [new]
Sky1992
Member

Откуда:
Сообщений: 31
Поднимаю вверх, т.к. хочу до конца понять и закончить скрипт этот, а то через месяц снова загружать вручную 25-30 таблиц не особо хочется=(
22 июл 13, 09:27    [14597122]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт/импорт из Excel в сервер 2012  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3019
Sky1992
Поднимаю вверх, т.к. хочу до конца понять и закончить скрипт этот, а то через месяц снова загружать вручную 25-30 таблиц не особо хочется=(

возможно драйвер некорректно встал
22 июл 13, 10:26    [14597422]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт/импорт из Excel в сервер 2012  [new]
Sky1992
Member

Откуда:
Сообщений: 31
HandKot
возможно драйвер некорректно встал

ну не 4 раза же...
22 июл 13, 11:39    [14597921]     Ответить | Цитировать Сообщить модератору
 Re: Экспорт/импорт из Excel в сервер 2012  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3019
Sky1992
HandKot
возможно драйвер некорректно встал

ну не 4 раза же...


для проверки, попробуйте создать линкед сервер к файлу.

и
pkarklin
Allow Inprocess в свойствах провайдера установлен?

может и тут проблема
22 июл 13, 11:54    [14598084]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить