Spec-Zone .ru
спецификации, руководства, описания, API
|
Следующий раздел детализирует некоторые распространенные ошибки и их предложенную фиксацию или альтернативное решение. Если Вы все еще испытываете проблемы, используйте список рассылки Соединителя/ODBC; см. Раздел 22.1.8.1, "общественная поддержка Соединителя/ODBC".
Много проблем могут быть разрешены, обновляя Ваши драйверы Соединителя/ODBC до последнего доступного выпуска. На Windows удостоверьтесь, что у Вас есть последние версии Microsoft Data Access Components установленный (MDAC).
Я установил Соединитель/ODBC на Windows XP x64 Выпуск или Windows Server 2003 R2 x64. Установка завершалась
успешно, но драйвер Соединителя/ODBC не появляется в ODBC Data Source Administrator
.
Это не ошибка, но связывается со способом, которым выпуски Windows x64 работают с драйвером ODBC. На выпусках
Windows x64 драйвер Соединителя/ODBC устанавливается в %SystemRoot%\SysWOW64
папка. Однако, значение по умолчанию ODBC Data Source Administrator
это доступно
через Administrative Tools
или Control Panel
в
Windows x64 Выпуски располагается в %SystemRoot%\system32
папка, и только ищет эту
папку драйверы ODBC.
На выпусках Windows x64 используйте административное средство ODBC, расположенное в %SystemRoot%\SysWOW64\odbcad32.exe
,
это правильно определит местоположение установленных драйверов Соединителя/ODBC и позволит Вам создать
Соединитель/ODBC DSN.
Об этой проблеме первоначально сообщили как Ошибка #20301.
Соединяясь или используя ODBC Data Source
Administrator
Я добираюсь, ошибка 10061 (Не может соединиться с сервером),
Эта ошибка может быть повышена многими другими вопросами, включая проблемы сервера, сетевые проблемы, и
брандмауэр и проблемы блокирования порта. Для получения дополнительной информации см. Раздел
C.5.2.2,"Can't connect to [local] MySQL server
".
О следующей ошибке сообщают при использовании транзакций: Transactions are not
enabled
Эта ошибка указывает, что Вы пытаетесь использовать транзакции с таблицей MySQL,
которая не поддерживает транзакции. Транзакции поддерживаются в пределах MySQL при использовании InnoDB
механизм базы данных, который является механизмом хранения значения по
умолчанию в MySQL 5.5 и выше. В версиях MySQL перед MySQL 5.1 можно также использовать BDB
механизм.
Проверьте следующий перед продолжением:
Проверьте, что Ваш сервер MySQL поддерживает транзакционный механизм базы данных.
Использовать SHOW ENGINES
получить список доступных типов механизма.
Проверьте, что таблицы Вы обновляете использование транзакционный механизм базы данных.
Гарантируйте, что Вы не включили disable transactions
опция в Вашем DSN.
Доступ сообщает о записях как #DELETED#
вставляя или обновляя записи в связанных
таблицах.
Если вставленные или обновленные записи показывают как #DELETED#
в Доступе, тогда:
Если Вы используете Access 2000, получаете и устанавливаете новейшее (версия 2.6
или выше) MDAC Microsoft (Microsoft Data Access Components
) от
Кроме того, получите и примените Microsoft Jet 4.0 Пакета обновления 5 (SP5), который может быть
найден в #DELETED#
в
Доступе.
Для всех версий Доступа включите Соединителю/ODBC Return
matching rows
опция. Для Доступа 2.0, также включите Simulate ODBC
1.0
опция.
Включайте a TIMESTAMP
во всех таблицах, которые Вы
хотите быть в состоянии обновить.
Включайте первичный ключ в таблицу. В противном случае
новые или обновленные строки могут обнаружиться как #DELETED#
.
Используйте только DOUBLE
поля плавающие. Доступ перестал работать, сравниваясь с плаваниями
одинарной точности. Признак обычно - то, что новые или обновленные строки могут обнаружиться как #DELETED#
или это невозможно найти или обновить строки.
Если Вы используете Соединитель/ODBC, чтобы соединиться с таблицей, у которой есть
a BIGINT
столбец, результаты выводятся на экран как #DELETED
. Работа вокруг решения:
Имейте еще один фиктивный столбец с TIMESTAMP
как тип данных.
Выберите Change BIGINT columns to INT
опция в диалоговом окне соединения в ODBC Администратор DSN.
Удалите табличную ссылку из Доступа и воссоздайте это.
Старые записи все еще выводят на экран как #DELETED#
, но недавно
добавил/обновил, что записи выводятся на экран должным образом.
Как я обрабатываю Конфликты Записи или ошибки Расположения Строки?
Если Вы видите следующие ошибки, выберите Return Matching Rows
опция в диалоговом
окне конфигурации DSN, или определяют OPTION=2
, как параметр соединения:
Write Conflict. Another user has changed your data.Row cannot be located for updating. Some values may have been changedsince it was last read.
Экспорт данных от Доступа 97 к отчетам a MySQL Syntax Error
.
Эта ошибка является определенной, чтобы Получить доступ 97 и версии Соединителя/ODBC ранее чем 3.51.02. Обновление к последней версии драйвера Соединителя/ODBC, которая разрешит эту проблему.
Экспорт данных от DTS Microsoft до отчетов a MySQL Syntax Error
.
Эта ошибка происходит только с таблицами MySQL, используя TEXT
или VARCHAR
типы данных. Можно фиксировать эту ошибку, обновляя Ваш драйвер Соединителя/ODBC до версии 3.51.02 или выше.
Используя ODBC.NET с Соединителем/ODBC, выбирая пустую строку (0 длин), это начинает давать SQL_NO_DATA
исключение.
Можно получить патч, который рассматривает эту проблему от
Используя SELECT COUNT(*) FROM
в
пределах Visual Basic и ASP возвращает ошибку. tbl_name
Эта ошибка происходит потому что COUNT(*)
выражение возвращает a BIGINT
, и ADO не может понять число это большое. Выберите Change BIGINT columns to INT
опция (значение опции 16384).
Используя AppendChunk()
или GetChunk()
Методы ADO,
Multiple-step operation generated errors. Check each status value
ошибка
возвращается.
GetChunk()
и AppendChunk()
методы от ADO не работают
как ожидалось, когда позиция курсора определяется как adUseServer
. С другой стороны
можно преодолеть эту ошибку при использовании adUseClient
.
Простой пример может быть найден от
Возвраты доступа Another user had modified the record that you have modified
редактируя записи на Связанной таблице.
В большинстве случаев это может быть решено, делая одну из следующих вещей:
Добавьте первичный ключ для таблицы, если Вы не существуете.
Добавьте столбец метки времени, если Вы не существуете.
Только используйте плавающие поля двойной точности. Некоторые программы могут перестать работать, когда они сравнивают плавания одинарной точности.
Если эти стратегии не помогают, запустите, делая файл журнала от менеджера по ODBC (журнал, который Вы получаете, запрашивая журналы от ODBCADMIN), и журнал Соединителя/ODBC, чтобы помочь Вам выяснить, почему вещи идут не так, как надо. Для инструкций см. Раздел 22.1.4.8, "Получение Файла трассировки ODBC".
Соединяя приложение непосредственно с библиотекой Соединителя/ODBC под Unix или Linux, катастрофическими отказами приложения.
Соединитель/ODBC под Unix или Linux не является совместимым с прямым соединением приложения. Чтобы соединиться с
источником ODBC, используйте менеджера по драйверу, такой как iODBC
или unixODBC
.
Приложения в комплекте Microsoft Office не могут обновить таблицы, которые имеют DATE
или TIMESTAMP
столбцы.
Это - известная проблема с Соединителем/ODBC. Гарантируйте, что у поля есть значение по умолчанию (а не NULL
) и что значение по умолчанию является ненулевым (то есть, что-то другое чем
0000-00-00 00:00:00
).
Соединяя Соединитель/ODBC 5.x к серверу MySQL 4.x, ошибке 1044 Access denied for user
'xxx'@'%' to database 'information_schema'
возвращается.
Соединитель/ODBC 5.x разрабатывается, чтобы работать с MySQL 5.0 или позже, используя в своих интересах INFORMATION_SCHEMA
база данных, чтобы определить информацию об определении данных.
Поддержка MySQL 4.1 планируется заключительный выпуск.
Вызывая SQLTables
, ошибка S1T00
возвращается, но я не
могу найти это в списке кодов ошибки для Соединителя/ODBC.
S1T00
ошибка указывает, что общий тайм-аут произошел в пределах системы ODBC и не
является ошибкой MySQL. Обычно это указывает, что соединение, которое Вы используете, является устарелым, сервер
слишком занят, чтобы принять Ваш запрос или что сервер ушел.
Соединяясь с таблицами в Access 2000 и генерируя ссылки к таблицам программно, а не через табличный интерфейс разработчика, можно получить ошибки о таблицах, не существующих.
Есть известная проблема с определенной версией msjet40.dll
это показывает эту
проблему. Версия, на которую влияют, 4.0.9025.0. Возвращение к более старой версии позволит Вам создать ссылки.
Если Вы недавно обновили свою версию, проверьте Ваш WINDOWS
каталог для более
старой версии файла и копии это к каталогу драйверов.
Когда я пытаюсь использовать обработанные в пакетном режиме операторы, выполнение пакетных сбоев операторов.
Пакетная поддержка оператора была добавлена в 3.51.18. Поддержка пакетных операторов не включается по умолчанию.
Включите опции FLAG_MULTI_STATEMENTS
, оцените 67108864, или выберите Позволение многократного флага операторов в
пределах конфигурации GUI.
Соединяясь с сервером MySQL, используя ADODB и Excel, иногда приложение не в состоянии связаться с сервером и
ошибкой Got an error reading communication packets
появляется в журнале ошибок.
Эта ошибка может быть связана с Регистратором Клавиатуры 1.1 от PanteraSoft.com, который, как известно, вмешивается в сетевые коммуникации между MySQL, Connector/ODBC и MySQL.
При использовании некоторых приложений, чтобы получить доступ к серверу MySQL, используя Соединитель/ODBC и внешние объединения, об ошибке сообщают относительно Escape-последовательности Внешнего объединения.
Это - известная проблема с MySQL, Connector/ODBC, который правильно не анализирует "Escape-последовательность
Внешнего объединения" согласно спецификациям в SQL_OJ_CAPABILITIES
даже при том, что никакой парсинг не имеет место в драйвере, чтобы обработать escape-последовательность внешнего
объединения.
Я могу правильно сохранить расширенные символы в базе данных (Hebrew/CJK) использование Соединителя/ODBC 5.1, но когда я получаю данные, текст не форматируется правильно, и я получаю искаженные символы.
При использовании ASP и символов UTF8, добавьте следующий к своим файлам ASP, чтобы гарантировать, что возвращенные данные правильно кодируются:
Response.CodePage = 65001Response.CharSet = "utf-8"
У меня есть двойной MySQL запись Connector/ODBC в пределах моего Установленного списка Программ, но я не могу удалить одного из них.
Эта проблема может произойти, когда Вы обновляете существующую установку Соединителя/ODBC вместо удаления и затем установки обновленной версии.
Чтобы решить проблему, используйте любые рабочие деинсталляторы, чтобы удалить существующие установки; тогда, вероятно, придется отредактировать содержание реестра. Удостоверьтесь, что у Вас есть резервное копирование Вашей информации о реестре прежде, чем делать попытку любого редактирования содержания реестра.
Представляя запросы с использованием привязки параметров UPDATE
, мои значения полей являются усеченными к 255 символам.
Гарантируйте что FLAG_BIG_PACKETS
опция устанавливается для Вашего соединения. Это
удаляет 255 символьных ограничений на связанные параметры.
Действительно ли возможно отключить данные в выполнении, используя флаг?
Если Вы не хотите использовать данные в выполнении, удалите соответствующие вызовы. Например:
SQLLEN ylen = SQL_LEN_DATA_AT_EXEC(10);SQLBindCol(hstmt,2,SQL_C_BINARY, buf, 10, &ylen);
Стал бы:
SQLBindCol(hstmt,2,SQL_C_BINARY, buf, 10, NULL);
Отметьте это в звонке SQLBindCol()
, &ylen был заменен НУЛЕМ.
Для дополнительной информации сошлитесь на SQLBindCol()
.
Когда Вы вызываете SQLColumns()
для столбца таблицы, который является AUTO_INCREMENT
, NULLABLE
столбец набора результатов
всегда SQL_NULLABLE (1)
.
Это - то, потому что MySQL сообщает DEFAULT
значение для такого столбца как NULL
. Это означает, если Вы вставляете a NULL
значение в
столбец, Вы получите следующее целочисленное значение для таблицы auto_increment
счетчик.