#0
by kodblack
Добрый день! Подскажите - как быть. Мне нужно из таблицы excel в автоматическом режиме производить выгрузку данных в БД SQL. На VBS - но выдает ошибку. Код Visual Basic Dim cn As ADODB.Connection Dim strSQL As String Dim lngRecsAff As Long Set cn = New ADODB.Connection cn.Open "Provider=SQLOLEDB;Data Source=<compsqlexpress>;" & _ "Initial Catalog=<test>;User ID=<sa>;Password=<pass>" 'Import by using OPENDATASOURCE. strSQL = "SELECT * INTO XLImport6 FROM " & _ "OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', " & _ "'Data Source=D:111.xls;" & _ "Extended Properties=Excel 8.0')...[Customers$]" Debug.Print strSQL cn.Execute strSQL, lngRecsAff, adExecuteNoRecords Debug.Print "Records affected: " & lngRecsAff 'Import by using OPENROWSET and object name. strSQL = "SELECT * INTO XLImport7 FROM " & _ "OPENROWSET('Microsoft.Jet.OLEDB.4.0', " & _ "'Excel 8.0;Database=D:111.xls', " & _ "[Customers$])" Debug.Print strSQL cn.Execute strSQL, lngRecsAff, adExecuteNoRecords Debug.Print "Records affected: " & lngRecsAff 'Import by using OPENROWSET and SELECT query. strSQL = "SELECT * INTO XLImport8 FROM " & _ "OPENROWSET('Microsoft.Jet.OLEDB.4.0', " & _ "'Excel 8.0;Database=D:111.xls', " & _ "'SELECT * FROM [Customers$]')" Debug.Print strSQL cn.Execute strSQL, lngRecsAff, adExecuteNoRecords Debug.Print "Records affected: " & lngRecsAff cn.Close Set cn = Nothing Таблица excel типа NO ASD Latitude Longitude DF FG Kod_OK Pyncty_ 1 123 64.527386 40.561819 1545,55 55455,56 75.22 456546,56
#3
by rsv
Мутно как то все . Настройте для начала в скуле линкованный сервер на источник данных Exel. Через него будете читать через OpenQuery например. Постестите все в MS Manag Studio, а опосля уже ADO.
#6
by dk
при коннекте к Excel нужно указывать что названия колонок берется из 1-й строки попробуй HDR=Yes указать
#7
by kodblack
Сценарий d:123.vbs Строка 1 Символ 12 Ошибка Предполагается наличие окончания инструкции Код: 800А0401
#9
by kodblack
Вы о чем? Может кто нибудь предложить нормальный способ импорта из excel в sql. Разве не у кого нет наработак. Буду очень признателен.
#10
by rsv
Правой кнопкой мыши на БД в Скуле . Все задачи . Импорт Данных . Откроется мастер импорта данных .
#11
by kodblack
- это не ответ. мне нужен автоматический режим. т.е Excel - будет обновляться время от времени, и надо что бы автоматически данные обновлялись в БД sql.
#13
by rsv
MS Скуль . Объекты сервера . Связанные серверы. Правой кнопокой мыши . Создать свзанный сервер. т.е.
#17
by rsv
попробуйте вот так программно создать по аналогии : sp_addlinkedserver N'MyxlsServer', N'Jet 4.0', N'Microsoft.Jet.OLEDB.4.0', N'\10.0.0.252VShare_UserExcelTemplatesJourAssembly.xls', NULL, N'Excel 5.0'
#18
by kodblack
создан link server но драйвер OLE DB Provider for SQL server и путь до файла с xls - не прописан
#21
by Jaap Vduul
Вот тут есть подробная инструкция с картинками для SSIS 2012: Это если инициировать загрузку со стороны сервера. Можно конечно делать это, запуская скрипт из шедулера windows. Но ваш код в таком случае не годится, ибо он написан, не на VBS, а на VBA и движок vbscript его не понимает . Вообще в этом случае я бы порекомендовал использовать PowerShell - в нём можно заюзать класс Data.SqlClient.SqlBulkCopy для быстрой заливки больших объёмов данных. Пример:
#27
by N1kMZ
А на что ссылку? Создаётся job на SQL, в нём в качестве шага созданный ранее SSIS пакет. Ну а так документацию читать надо, в пост не влезет всё :)
#28
by Господин ПЖ
>т.е что бы добавить SSIS нужен VS нужен нормальный скуль... или SSIS сейчас везде доступен по лицензии?
#34
by kodblack
Добавил путем запроса. А вот дальше не понял что делать. EXEC sp_addlinkedserver = 'ExcelServer1', @srvproduct = 'Excel', @provider = 'Microsoft.Jet.OLEDB.4.0', @datasrc = 'd:111.xls', @provstr = 'Excel 8.0;IMEX=1;HDR=YES;'
#36
by kodblack
почему в связи сервера нет для выбора Microsoft.Jet.OLEDB.4.0 я установил AccessDatabaseEngine_x64
#37
by Jaap Vduul
Для Jet.OLEDB нет x64 провайдера, надо использовать строку подключения для ACE.OLEDB:
#38
by kodblack
Связь сделал. Но теперь сори за туп...ой вопрос - а как вогнать данные с таблицы в БД?
#42
by kodblack
тогда вопрос при настройке связи SQL Statement простой запрос написал но выдает ошибку IF EXISTS (SELECT 1 FROM information_schema.tables where table_name like '1111') DROP TABLE 1111 -- create a table to hold purchase ledger items CREATE TABLE 1111( PRIMARY KEY IDENTITY(1,1), Naimenovanie nchar, Latitude float, Longitude float, Factiheskyi nchar, inn nchar, Kod_OKVED nchar, Pyncty nchar ) [Задача "Выполнение SQL"] Ошибка: Сбой выполнения запроса "IF EXISTS (SELECT 1 FROM information_schema.tables..." со следующей ошибкой: "Неправильный синтаксис около конструкции "1111".". Возможные причины сбоя: проблемы с этим запросом, свойство "ResultSet" установлено неправильно, параметры установлены неправильно или соединение было установлено неправильно.
#44
by kodblack
IF EXISTS (SELECT 1 FROM information_schema.tables where table_name like 'qwerty') DROP TABLE qwerty -- create a table to hold purchase ledger items CREATE TABLE qwerty( PRIMARY KEY IDENTITY(1,1), Naimenovanie nchar, Latitude float, Longitude float, Factiheskyi nchar, inn nchar, Kod_OKVED nchar, Pyncty nchar ) [Задача "Выполнение SQL"] Ошибка: Сбой выполнения запроса "IF EXISTS (SELECT 1 FROM information_schema.tables..." со следующей ошибкой: "Неправильный синтаксис около ключевого слова "IDENTITY".". Возможные причины сбоя: проблемы с этим запросом, свойство "ResultSet" установлено неправильно, параметры установлены неправильно или соединение было установлено неправильно.
#46
by Jaap Vduul
Надо было не удалять, а указать наименование первичного ключа, типа: Id PRIMARY KEY IDENTITY(1,1) Хотя, если первичный ключ не нужен, то и так сойдёт.
#47
by kodblack
он должен быть указан в таблице или sql сама задаст этой строкой? если сама то конечно надо.
Тэги: Математика и алгоритмы
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Excel и 1С - вопрос про Excel?
- Excel -> 1C ("Excel.Application")
- Программно скопировать область из Excel книги 1 в Excel книгу 2
- Можно ли отредактировать файл Excel из 1С без установленного Excel?
- Excel - ошибка при закрытия Excel
- Как пересохранить из нового Excel в старый Excel ?
- 1c 8.3 , Excel и Microsoft ADODB.Есть ли возможность загрузить картинки из Excel
- Выгрузка в Excel по шаблону Active Document различия Excel 2010 Excel 2016
- Выгрузка в Excel по шаблону Active Document различия Excel 2010 Excel 2016 ч2
В этой группе 1С
- Итоги по иерархии
- УниверсальныйОбменДаннымиXML 8.3 Многострочные строки
- Рекламные расходы в БП3.0
- Что это за каталоги
- Управляемые блокировки в УПП.
- Разные форматы представления числа на клиенте и сервере
- OpenVPN коннект есть пинга нет
- Как быстро выгрузить ТЧ в УФ?
- Колонка в ТЧ документ недоступна для редактирования
- УПП 1.3 начисление страховых взносов неправильно расчитывает
- Как в отчете/запросе колонку считать только по итогам (по группе)
- Не попадают в книгу продаж счета-фактуры "Без НДС" УПП
- Заполнение РСВ-1 при смене статуса иностранными работниками
- отбор по номенклатурной группе
- Работа со Штрих-М-ФР-К в 1с82 через AddIn.DrvFR
- не закрывается 44 счет БП 2.0
- Как отключить регистрацию изменений узла?
- Как увеличить себестоимость товара при партионном учете?
- Бухгалтерия 3.0 настройка пользователя для НДС
- Передача даты в битрикс