Я пытаюсь интегрировать UPS WorldShip с базой данных SQL Server 2008 R2, но соединение очень противоречиво. UPS утверждает, что это проблема DSN/Windows, и я не смог убедить их в обратном.
Интеграция довольно проста: мой экспедитор нажимает кнопку, которая открывает форму, где он вводит заказ #. После нажатия кнопки ввода информация о доставке будет извлечена из базы данных для этого заказа.
Проблема в том, что WorldShip часто думает, что DSN не существует. Однако я могу открыть инструмент настройки WorldShip и просмотреть все таблицы и поля в базе данных, к которой подключен мой DSN, что означает, что, по крайней мере, мой DSN действительно существует.
Причина, по которой это так трудно устранить, состоит в том, что проблема не согласована, и я не могу надежно повторить какое-либо поведение. То есть, перезагрузка ПК не приводит к разрыву соединения и открытию инструмента интеграции, а просмотр таблиц и полей не приводит к работе кнопки интеграции.
Есть ли какой-то способ для меня, чтобы контролировать это соединение с сервера SQL или получить какие-либо подсказки, почему это не удается?
По просьбе TallTed, вот пример файла трассировки, который я создал. Спустя всего 5 часов файл трассировки занял более 130 МБ, поэтому я никак не мог предоставить его полностью.
WorldShipTD d94-690 EXIT SQLSetStmtAttrW with return code -1 (SQL_ERROR)
SQLHSTMT 0x0C6632A0
SQLINTEGER 1227 <unknown>
SQLPOINTER [Unknown attribute 1227]
SQLINTEGER -5
DIAG [IM006] [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed (0)
WorldShipTD d94-690 ENTER SQLAllocHandle
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x0C662FC0
SQLHANDLE * 0x03EBCE38
WorldShipTD d94-690 EXIT SQLAllocHandle with return code 0 (SQL_SUCCESS)
SQLSMALLINT 3 <SQL_HANDLE_STMT>
SQLHANDLE 0x0C662FC0
SQLHANDLE * 0x03EBCE38 ( 0x0C6632A0)
WorldShipTD d94-690 ENTER SQLSetStmtAttrW
SQLHSTMT 0x0C6632A0
SQLINTEGER 0 <SQL_ATTR_QUERY_TIMEOUT>
SQLPOINTER 30
SQLINTEGER -5
WorldShipTD d94-690 EXIT SQLSetStmtAttrW with return code -1 (SQL_ERROR)
SQLHSTMT 0x0C6632A0
SQLINTEGER 0 <SQL_ATTR_QUERY_TIMEOUT>
SQLPOINTER 30
SQLINTEGER -5
DIAG [HYC00] [Microsoft][ODBC Microsoft Access Driver]Optional feature not implemented (106)
WorldShipTD d94-690 ENTER SQLGetDiagFieldW
SQLSMALLINT 3
SQLHANDLE 0x0C6632A0
SQLSMALLINT 1
SQLSMALLINT 4
SQLPOINTER 0x00520708
SQLSMALLINT 12
SQLSMALLINT * 0x0028E2A8
WorldShipTD d94-690 EXIT SQLGetDiagFieldW with return code 0 (SQL_SUCCESS)
SQLSMALLINT 3
SQLHANDLE 0x0C6632A0
SQLSMALLINT 1
SQLSMALLINT 4
SQLPOINTER 0x00520708
SQLSMALLINT 12
SQLSMALLINT * 0x0028E2A8 (10)
WorldShipTD d94-690 ENTER SQLGetInfoW
HDBC 0x0C662FC0
UWORD 77 <SQL_DRIVER_ODBC_VER>
PTR 0x03EBCEDC
SWORD 100
SWORD * 0x0028E290
WorldShipTD d94-690 EXIT SQLGetInfoW with return code 0 (SQL_SUCCESS)
HDBC 0x0C662FC0
UWORD 77 <SQL_DRIVER_ODBC_VER>
PTR 0x03EBCEDC [ 10] "03.51"
SWORD 100
SWORD * 0x0028E290 (10)
WorldShipTD d94-690 ENTER SQLSetStmtAttrW
SQLHSTMT 0x0C6632A0
SQLINTEGER 1228 <unknown>
SQLPOINTER [Unknown attribute 1228]
SQLINTEGER -5
WorldShipTD d94-690 EXIT SQLSetStmtAttrW with return code -1 (SQL_ERROR)
SQLHSTMT 0x0C6632A0
SQLINTEGER 1228 <unknown>
SQLPOINTER [Unknown attribute 1228]
SQLINTEGER -5
DIAG [HY092] [Microsoft][ODBC Microsoft Access Driver]Invalid attribute/option identifier (86)
WorldShipTD d94-690 ENTER SQLGetDiagFieldW
SQLSMALLINT 3
SQLHANDLE 0x0C6632A0
SQLSMALLINT 1
SQLSMALLINT 4
SQLPOINTER 0x00520708
SQLSMALLINT 12
SQLSMALLINT * 0x0028E2A8
WorldShipTD d94-690 EXIT SQLGetDiagFieldW with return code 0 (SQL_SUCCESS)
SQLSMALLINT 3
SQLHANDLE 0x0C6632A0
SQLSMALLINT 1
SQLSMALLINT 4
SQLPOINTER 0x00520708
SQLSMALLINT 12
SQLSMALLINT * 0x0028E2A8 (10)
WorldShipTD d94-690 ENTER SQLSetStmtAttrW
SQLHSTMT 0x0C6632A0
SQLINTEGER 1227 <unknown>
SQLPOINTER [Unknown attribute 1227]
SQLINTEGER -5
WorldShipTD d94-690 EXIT SQLSetStmtAttrW with return code -1 (SQL_ERROR)
SQLHSTMT 0x0C6632A0
SQLINTEGER 1227 <unknown>
SQLPOINTER [Unknown attribute 1227]
SQLINTEGER -5
DIAG [HY092] [Microsoft][ODBC Microsoft Access Driver]Invalid attribute/option identifier (86)
WorldShipTD d94-690 ENTER SQLGetDiagFieldW
SQLSMALLINT 3
SQLHANDLE 0x0C6632A0
SQLSMALLINT 1
SQLSMALLINT 4
SQLPOINTER 0x00520708
SQLSMALLINT 12
SQLSMALLINT * 0x0028E2A8
WorldShipTD d94-690 EXIT SQLGetDiagFieldW with return code 0 (SQL_SUCCESS)
SQLSMALLINT 3
SQLHANDLE 0x0C6632A0
SQLSMALLINT 1
SQLSMALLINT 4
SQLPOINTER 0x00520708
SQLSMALLINT 12
SQLSMALLINT * 0x0028E2A8 (10)