This is topic Связь с MS Excel через ODBC in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/31/t/001581.html

Posted by 8toni8 (Участник № / Member № 7522) on :
 
Пытался воспроизвести программу из этого урока:
https://www.youtube.com/watch?v=LKPuqDOnQAc&t=582s

Вроде все правильно, два раза проверил, но почему то не работает. Просто значения в таблицу не добавляются.

Пожалуйста, подскажите, в чем может быть проблема?

Исходники: https://yadi.sk/d/zqeYIfku3Srntk

ОС: Windows 10
Microsoft Office 2016
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Запустите в "Администраторе источнике данных ODBC" трассировщик и в его файле ищите сообщения об SQL-транзакциях и их ошибках.
 
Posted by 8toni8 (Участник № / Member № 7522) on :
 
Сделал, вот лог: https://yadi.sk/i/pjkbf2ot3StLeN

Увидел там ошибку длины буфера, правда не понимаю с чем это связано...

Вторая ошибка:
Ошибка синтаксиса в инструкции INSERT INTO.

Проверил, вроде все как в примере.

Пишем:

INSERT INTO [Лист1$]
{
TimeMark,
Ch1,
Ch2,
Ch3
}
VALUES
{
'#MarkTIme#',
'#Ch1#',
'#Ch2#',
'#Ch3#'
}

Читаем:
SELECT
TimeMark #MarkTIme#,
Ch1 #Ch1#,
Ch2 #Ch2#,
Ch3 #Ch3#
FROM
[Лист1$]

Подозреваю, что в Office 2016 [Лист1$] не так должен быть прописан...

Кстати, еще вопрос, в видео-примере при подключении файла к ODBC, среди доступных форматов был .xlsx, а в современной версии в драйвере Microsoft Excel Driver его нет, подскажите с чем это связано? Данную возможность просто убрали с бесплатной версии?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Какая версия Microsoft Excel используется?

ODBC-драйвер должен строго соответствовать формату файла таблицы Microsoft Excel. При необходимости скачайте адекватный драйвер.

В режиме отладки SQL-запроса в редакторе шаблонов запись в БД в принципе не осуществляется.

В примере предложено запускать узел для отладки под профайлером ПРИ ВЫГРУЖЕННОЙ ИНСТРУМЕНТАЛЬНОЙ СРЕДЕ.
 
Posted by 8toni8 (Участник № / Member № 7522) on :
 
1. Версия Excel 2016 MSO (16.0.4591.1000), 64-разрядная

2. Ну у меня соответствует, и файл и выбранный драйвер имеют формат .xls А что еще и драйвера можно подкачивать? А не подскажите, где про это можно почитать?

3. То есть правильно ли я понимаю, что после того как я запускаю трассировку, запись в БД не осуществляется?

4. Я атк и делаю, сначала запускаю профайлер, после чего интегрированную среду разработки закрываю и дальше уже работаю с профайлером.

Я так понимаю в этом причина?
 -

[ 01.03.2018, 16:31: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Скорее всего это она и есть. Вам необходимо установить необходимые компоненты для office от Microsoft. К примеру, описание у них на сайте:

https://support.microsoft.com/en-us/help/2721825/unable-to-create-dsn-for-microsoft-office-system-driver-on-64-bit-vers
 
Posted by DAN72 (Участник № / Member № 7523) on :
 
Аналогичная ситуация на W7_32 + MS Office 2010_32 + TM6 (базовая версия)
пытался воспроизвести программу из этого урока:
https://www.youtube.com/watch?v=LKPuqDOnQAc&t=582s

Несколько раз переписал пример из видео, так и не заработало. Скачал пример с сайта AdAstra, - работает. В чем причина так и не понял. Приложение не обязательно выгружать и менять в Excel разделитель "," на ".", как оказалось.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1 и 2. Почему для "Версия Excel 2016 MSO (16.0.4591.1000), 64-разрядная" используется ODBC-драйвер для 32-рарядной Excel?

3. Трассировщик должен быть запущен до того, как будет запущено приложение, обращающееся к БД.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Протестировали у себя на Excel 2013 и 2016 в ОС Windows 8.1 и 10 корпоративные, все 64 битные. Установили по ссылке выше с официального сайта Microsoft приложение AccessDatabaseEngine.exe.
После чего запустили проект из видео, ссылка на который есть выше. В шаблоне связи с СУБД в Администраторе ODBC создали пользовательский DSN, выбрали драйвер "Microsoft Excel Driver (xlx, xlsx, xlsm, xlsb)", назвали "ExCh", задали файл "ExChange.xlsx". В пользовательских DNS строка выглядит как:

ExCh | 32/64-разрядная версия | Microsoft Excel Driver (xlx, xlsx, xlsm, xlsb)

После чего сохранили, скомпилировали и запустили проект. Проект работает штатно, происходит успешное подключение к таблице и считывание данных.
 
Posted by 8toni8 (Участник № / Member № 7522) on :
 
Все ровно выдает ту же самую ошибку и ведет себя точно так же...
Скачал драйвер по ссылке, заменил: 32/64-разрядная версия | Microsoft Excel Driver (xlx, xlsx, xlsm, xlsb)
Вот мои файлы: https://yadi.sk/d/F8WUnHJZ3T2pxT

Может где-то ошибся, хотя уже много раз перепроверил и несколько раз просмотрел видео...
 
Posted by aksvlad (Участник № / Member № 8067) on :
 
Обратите внимание, в видеоуроке в запросе используются скобки {}, а в примере ().
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Действительно, в графической части видео-урока синтаксис запроса на запись нарушен.
Приносим извинения за доставленные неудобства.

В приложенном проекте запрос сформирован без ошибок.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2