Этот документ освещает технические вопросы и содержит сведения об известных ошибках и ограничениях для компонентов доступа к данным MDAC версии 2.5 (Microsoft®).
Типичная установка MDAC для распространения содержит основные компоненты (ADO, OLE DB и ODBC) и дополнительные поставщики OLE DB и драйверы ODBC для различных хранилищ данных. В данном документе представлены сведения о комплекте MDAC SDK, который включает документацию, примеры, инструменты, заголовки и библиотеки для разработчика. См. раздел Технические вопросы по MDAC.
Список файлов MDAC доступен в сообщении о выпуске MDAC
Полный список файлов MDAC содержится в сообщении о выпуске данного продукта – см. веб-страницу http://www.microsoft.com/data/download.htm.
Порядок установки комплекта MDAC 2.5 SDK с помощью Platform SDK
Комплект Platform SDK устанавливается целиком или в виде отдельных компонентов, которые можно загрузить с веб-узла электронной библиотеки MSDN Online: http://msdn.microsoft.com/developer/sdk/platform.asp. Этот процесс осуществляется с помощью мастера установки. Поскольку компоненты доступа к данным совместно используются другими приложениями, то перед установкой комплекта Platform SDK необходимо закрыть все остальные приложения.
Мастер установки Platform SDK позволяет выбрать типичную или пользовательскую установку. Типичная установка предусматривает загрузку всего содержимого SDK, тогда как при пользовательской установке допускается выбор отдельных компонентов: документации, среды построения, отладчиков, инструментов, примеров и исходных программ, распространяемых компонентов и других материалов. Для компонентов доступа к данным может быть установлена любая часть комплекта MDAC SDK: интерфейсы API, документация, примеры и т. д. В случае установки комплекта MDAC SDK рекомендуется также выбрать режим обновления среды построения в процессе установки, чтобы обеспечить синхронизацию компонентов.
Для файлов справки формата HTML в системе Windows NT 4.0 необходимо обновить файл HHCTRL.ocx.
Если используется пакет обновления Microsoft® NT 4.0 Service Pack 3, то для правильного отображения файлов справки в формате HTML компонентами MDAC 2.5 требуется обновленная версия файла Hhctrl.ocx. Установите обновление файлов HTML, доступное на веб-узле MSDN Online Web Workshop: http://msdn.microsoft.com/workshop/author/htmlhelp/localize.asp. Выберите язык, соответствующий вашей операционной системе.
Зависимость MDAC от других компонентов
Новые функциональные возможности базовых служб OLE DB (Oledb32.dll), а значит, и стека MDAC, определяются двумя другими файлами .dll, поставляемыми в составе различных версий обозревателя Internet Explorer.
Ошибки SQL Server
Если MDAC 2.5 устанавливается на компьютере, где уже работают приложения, осуществляющие доступ к серверу SQL Server 6.5 посредством поставщика OLE DB для SQL Server (Microsoft) или драйвера ODBC (Microsoft) для Microsoft SQL Server, и если сохраненные процедуры доступа к каталогу, установленные на этом сервере Microsoft SQL Server 6.5, являются устаревшими, указанный поставщик или драйвер создает следующие предупреждающие сообщения.
Если приложение игнорирует это сообщение, могут возникнуть неполадки (например, потеря сведений о схеме).
Чтобы устранить эту проблему, выполните следующие действия.
- Или -
В этом разделе представлены последние сведения и дополнения к документации Microsoft ADO.
Технические вопросы по ADO/RDS
Известные ошибки и ограничения ADO/RDS
Обозреватель Microsoft Internet Explorer версии 5.0 и формат XML
Обозреватель Microsoft® Internet Explorer 5.0 требуется для того, чтобы открыть объект Recordset в файле XML.
Изменения в семействе полей ADO 2.5 по сравнению с версией Windows 2000 Beta 2
Для повышения быстродействия ADO добавление и удаление элементов семейств Fields объекта Record, а также изменения значений существующих полей выполняются в кэше до тех пор, пока не будет вызван метод Update. При вызове метода Update выполняется весь пакет изменений.
Каждое поле имеет свойство Status. В случае возникновения ошибки в ходе обновления, свойство Status позволяет определить, какие поля были успешно добавлены, удалены или изменены. Поля, имеющие состояние ожидания, не сохраняются, если объект Record закрыт или находится за пределами области определения перед вызовом метода Update.
В семейство Fields были добавлены два метода: Resync и CancelUpdate. У метода Append появился дополнительный параметр, позволяющий указать значение добавляемого поля. Метод Resync служит для извлечения текущих значений полей с сервера и принимает единственный параметр ResyncEnum (значением по умолчанию является adResyncAllValues). Метод Resync не действует на удаленные поля. Удаленные поля видны в локальном кэше, где они остаются до тех пор, пока не будут успешно удалены посредством вызова Update. Свойство Fields.Count также не изменяется при удалении поля, пока не будет вызван метод Update и данное поле не будет успешно удалено.
Объект Field объекта Record имеет три новых свойства: Status, OriginalValue и UnderlyingValue. Свойство Status объекта Field указывает текущее состояние поля, то есть состояние adFieldPendingUpdate для поля, которому присвоено новое значение, но метод Update еще не вызывался. Свойства OriginalValue и UnderlyingValue аналогичны соответствующим свойствам объекта Field, принадлежащего объекту Recordset.
Изменения в привязке адресов URL ADO 2.5 по сравнению с версией Windows 2000 Beta 2
Для упрощения привязки адресов URL в строке подключения разрешается использовать выражение «URL=». Например:
rec.Open "Каталог", "URL=http://Компьютер/Папка/", adModeReadWrite
Больше не используются следующие константы: adOpenURLBind, adCmdURLBind и adOpenStreamFromURL.
Изменения в установке: переменная DataFactory RDS принимает значение «Safe Mode» во время установки
Настройка службы RDS (Remote Data Service) для MDAC 2.5 изменена. Теперь параметр DataFactory RDS автоматически принимает значение «safe» (безопасный режим) как при обновлении, так и при новой установке Windows 2000. (MDAC 2.5 поставляется вместе с Windows 2000.) Ранее при установке MDAC сохранялось значение параметра DataFactory текущей установки RDS.
Данное изменение затрагивает только систему Windows 2000. Если MDAC 2.5 устанавливается на компьютере под управлением системы Windows NT 4.0 или Windows 95/98, порядок установки не изменяется. В этих системах существующее значение параметра DataFactory сохраняется при переходе к использованию MDAC 2.5.
Примечание. Установка MDAC версии 2.5 или более поздней приводит к изменению значения DataFactory на «safe» (безопасный режим) только один раз – при первой установке. Таким образом, если на компьютере под управлением системы Windows NT 4.0 или Windows 98/95 осуществляется новая установка MDAC 2.5 или более поздней версии (то есть отсутствуют ранее установленные версии MDAC) и параметр DataFactory в дальнейшем настраивается на неограниченное («unrestricted») использование, то при обновлении системы на этом компьютере с переходом на систему Windows 2000 ведется именно указанная конфигурация. По той же причине не изменяется конфигурация «безопасный режим», когда обновление осуществляется путем перехода от одной версии Release Candidate 3 или более поздней версии Windows 2000 к другой версии или к более поздней версии MDAC.
Обработчик курсоров клиентов и интерфейсы OLE DB 2.5
Обработчик курсоров клиентов не реализует интерфейсы OLE DB 2.5. В результате, если открыть объект Recordset с помощью поставщика OLE DB версии 2.5 и указать для параметра CursorLocation значение adUseClient, определенные свойства принимают неправильные значения. Например, свойство RecordCount всегда возвращает значение -1.
Расширенные свойства службы формирования данных и поставщика удаленных данных
При использовании службы формирования данных для OLE DB и поставщика удаленных данных OLE DB значение свойства «Extended Properties» (расширенные свойства) доступно даже в том случае, если свойство «Persist Sensitive Authinfo» (сохранять важные данные о проверке подлинности) имеет значение «False». Пользователи должны знать, что свойство «Extended Properties» не является защищенным, поэтому не следует использовать расширенные свойства для хранения важных сведений. Если служба формирования данных используется посредством компонентов службы (как это имеет место для ADO), существует два способа установки расширенных свойств.
Примечание. Свойство PWD поставщика OLE DB для ODBC (Microsoft) зависит от поставщика и не поддерживается службой формирования данных и поставщиком удаленных данных. Это означает, что компоненты службы поместят свойство PWD в свойство «Extended Properties», где оно окажется незащищенным. Пользователям рекомендуется использовать в строке подключения выражение «PASSWORD=» вместо выражения «PWD=».
Открытие записи по адресу URL
Если адрес URL используется для открытия объекта Record, то вместо обратной косой черты следует использовать обычную косую черту. Вот пример правильной программы:
Dim r As New Record
r.Open "Каталог", "url=http://Компьютер/Папка"
Следующая программа вызовет ошибку:
Dim r As New Record
r.Open "Каталог", "url=http:\\Компьютер\Папка"
Операции блокировки
Если в качестве параметра указать adAsyncFetchNonBlocking, метод Open не будет работать асинхронно – вместо этого будет происходить блокировка до завершения операции.
В настоящее время объект Stream неправильно обрабатывает некоторые наборы знаков
Размер некоторых знаков внутри предложения отличается от их размера вне предложения. Это вызывает трудности, когда объект Stream пытается определить длину строки. Данная проблема имеет место для наборов знаков ISO-2022-JP, ISO-2022-KR, HZ-GB-2312 и UTF-7.
Изменение в сообщении об ошибке при открытии подключений к несуществующим файлам .udl
Попытка открыть подключение с помощью пути к несуществующему файлу .udl вызывает ошибку «File not found» (файл не найден). В этом заключается отличие от предыдущих версий ADO, в которых появлялась ошибка «Provider not found» (поставщик не найден).
Создание пустого файла в результате открытия и закрытия записи
Если для создания файла используется метод Open объекта Record поставщика OLE DB для публикации в Интернете, будет создан файл из двух байтов. То есть, если сразу же закрыть объект Record, размер файла будет равен двум байтам.
Ошибки поставщика OLE DB для ODBC
При работе с поставщиком OLE DB для ODBC доступ к данным в столбце значений BLOB объекта Recordset должен осуществляться один метод. Это значит, что для доступа к значению поля должен использоваться один метод – нельзя сначала извлечь часть данных с помощью метода GetChunk, а затем получить остальные данные с помощью свойства Value. Например, в следующем примере выполнение второй строки программы приведет к ошибке:
v = rs("СтолбецBLOB").GetChunk(10)
Debug.Print rs("СтолбецBLOB").Value
Если чтение столбца BLOB начинается с помощью метода GetChunk, этот же метод должен использоваться и далее. Поочередное использование метода GetChunk и свойства Value приведет к ошибке -2147217887.
В этом разделе представлены последние сведения и дополнения к документации по расширениям Microsoft ADO для DDL и безопасности (ADOX).
Известные ошибки и ограничения ADOX
Обязательные и необязательные свойства таблиц, индексов и столбцов
Используемый поставщик данных необязательно поддерживает все свойства объектов Table, Index и Column. Установка значения свойства, которое не поддерживается поставщиком, приводит к ошибке. Для новых объектов Table, Index или Column ошибка возникает при добавлении данного объекта к семейству. Для существующих объектов ошибка возникает при установке значения свойства объекта.
При создании объектов Table, Index или Column наличие у необязательного свойства соответствующего значения по умолчанию не является гарантией поддержки этого свойства поставщиком. Дополнительные сведения о свойствах, поддерживаемых данным поставщиком, содержатся в документации поставщика.
Использование ADOX вместе с поставщиками OLE DB (Microsoft)
В зависимости от используемого поставщика данных OLE DB, некоторые возможности ADOX могут не поддерживаться. ADOX полностью поддерживается поставщиком OLE DB для Microsoft Jet. Ниже перечислены возможности, которые не поддерживаются поставщиком OLE DB для SQL Server (Microsoft), поставщиком OLE DB для ODBC и поставщиком Microsoft OLE DB для Oracle (Microsoft). Любые другие поставщики OLE DB (Microsoft) не поддерживают ADOX.
В настоящее время ошибки и ограничения отсутствуют.
В этом разделе представлены последние сведения и дополнения к документации Microsoft ADO MD.
В настоящее время технических проблем не существует.
В настоящее время ошибки и ограничения отсутствуют.
В этом разделе представлены последние сведения и дополнения к документации по JRO (Microsoft Jet and Replication Objects).
Известные ошибки и ограничения JRO
В настоящее время технических проблем не существует.
Если база данных была преобразована в реплицируемую базу данных в программной ее части и ни разу не открывалась в программе Microsoft Access, то свойства этой базы данных всегда будут локальными (формы, отчеты, макросы, модули). Кроме того, такие базы данных невозможно изменить так, чтобы обеспечить репликацию проектов. Это обусловлено тем, что системная таблица, управляющая этой возможностью (mSysAccessObjects), не создается, если база данных ни разу не открывалась в программе до того, как была преобразована в реплицируемую базу данных. После преобразования базы данных в реплицируемую пользователь теряет возможность изменить реплицируемость проекта.
В этом разделе представлены последние сведения и дополнения к документации интерфейса Microsoft Data Link API.
Технические вопросы по Microsoft Data Link
Известные ошибки и ограничения Microsoft Data Link
В настоящее время технических проблем не существует.
Разрешается использовать только один экземпляр PromptDataSource
Одновременно может быть открыт только один экземпляр диалогового окна Свойства связи с данными. Вызов метода IDBPromptInitialize::PromptDataSource для создания второго объекта без освобождения первого приводит к непредсказуемым результатам.
Создание удаленного или внешнего поставщика не поддерживается
Интерфейс Data Link API, выпущенный в составе версии 2.5, не поддерживает создание удаленного или внешнего поставщика. В результате вызова метода IDataInitialize::CreateDBInstanceEx и аналогичных ему методов для любых поставщиков, не являющихся внутренними, приводит к сбою.
Флаг монопольного доступа к общему ресурсу преобразуется в запрет чтения или запрет записи
Флаг монопольного доступа к общему ресурсу DB_MODE_SHARE_EXCLUSIVE является результатом объединения флагов запрета чтения DB_MODE_SHARE_DENY_READ и запрета записи DB_MODE_SHARE_DENY_WRITE логическим оператором ИЛИ. Если флаг монопольного доступа к общему ресурсу DB_MODE_SHARE_EXCLUSIVE устанавливается при вводе, то в интерфейсе пользователя связи с данными флаги «Share Deny Read» и «Share Deny Write» отображаются как установленные, а флаг «Share Exclusive» снят.
В этом разделе представлены последние сведения и дополнения к документации OLE DB (Microsoft).
Известные ошибки и ограничения OLE DB
Поддержка 64-разрядных типов данных в файле Oledb.h игнорируется
В файле заголовков Oledb.h следует игнорировать условные директивы препроцессора, обеспечивающие поддержку 64-разрядных типов данных. Эти директивы проверяют значение _WIN64 и поддерживают возможности, которые появятся в будущих выпусках.
В настоящее время ошибки и ограничения отсутствуют.
В этом разделе представлены последние сведения и дополнения к документации компонентов службы OLE DB.
Технические вопросы компонентов службы OLE DB
Известные ошибки и ограничения компонентов службы OLE DB
Совместное использование группировки сеансов и свойства SSPROP_ENABLEFASTLOAD не допускается
Поставщик OLE DB для SQL Server позволяет с помощью свойства этого поставщика SSPROP_ENABLEFASTLOAD получить особую форму объекта Session OLE DB, которая поддерживает интерфейс IRowsetFastLoad. Однако использование этого свойства исключает возможность группировать сеансы. Если включена группировка сеансов, возвращаемый потребителю объект Session можно извлечь из группы. Поскольку существующий сеанса мог быть создан без использования свойства SSPROP_ENABLEFASTLOAD, поддержка интерфейса IRowsetFastLoad в этом сеансе может отсутствовать.
В настоящее время ошибки и ограничения отсутствуют.
Замечания к данному выпуску OLE DB для OLAP содержат последние сведения или иные данные, дополняющие документацию OLE DB для OLAP (Microsoft).
Технические вопросы OLE DB для OLAP
Известные ошибки и ограничения OLE DB для OLAP
В настоящее время технических проблем не существует.
В настоящее время ошибки и ограничения отсутствуют.
В этом разделе представлены последние сведения и дополнения к документации поставщика OLE DB для ODBC.
Технические вопросы по поставщику OLE DB для ODBC
Известные ошибки и ограничения поставщика OLE DB для ODBC
В настоящее время технических проблем не существует.
Параметр dwFlags при вызове IAccessor::CreateAccessor
Данный поставщик игнорирует параметр dwFlags при вызове IAccessor::CreateAccessor, при этом значения флага DBBINDFLAGS_HTML и любых других флагов в этом поле не проверяются и не учитываются. Тем не менее, потребитель должен установить значение dwFlags равным 0.
При включении компонентов службы параметры сервера сбрасываются
Реализация компонентов службы OLE DB с группировкой ресурсов не обеспечивает сброс параметров сервера при возврате источника данных и сеанса в группу. Например, если в некотором сеансе на сервер SQL Server отправляется команда SET QUOTED_IDENTIFIER OFF и этот сеанс возвращается в группу, данный параметр сервера не сбрасывается. Таким образом, может случиться так, что потребитель выберет активное подключение из группы, у которого некоторые параметры сервера будут отличаться от предполагаемых. Если для этих параметров сервера, например QUOTED_IDENTIFIER, установлены значения, отличающиеся от используемых по умолчанию, то при возвращении объектов в группу состояние активных подключений не сбрасывается. Следовательно, потребитель должен сбросить эти параметры по своему усмотрению или отключить компоненты службы OLE DB, чтобы восстановить контроль СУБД над этими параметрами сервера.
Новые подключения в распределенной транзакции требуют группировки подключений
Создание новых подключений в распределенной транзакции невозможно без использования группировки подключений ODBC. Интерфейс ODBC выполняет регистрацию данного подключения в транзакции.
При удалении или возврате подключения в группу атрибуты подключения не сбрасываются
Поставщик OLE DB для ODBC не сбрасывает все атрибуты подключения, когда подключение удаляется или возвращается в группу. Разработчики имеют возможность проверить или сбросить атрибуты подключения после того, как подключение получено из группы. Список атрибутов подключения содержится в Справочнике программиста ODBC в разделе SQLSetConnectAttr. Кроме того, пользователям Microsoft SQL Server следует ознакомиться с электронной документацией SQL Server, содержащей список атрибутов подключения для сервера SQL Server.
Пакетные обновления и запросы нескольких результатов возвращают только один результирующий набор
Если выдается пакет из двух инструкций обновления и запрашиваются несколько результатов у поставщика OLE DB для ODBC, то возвращается только один результирующий набор. В случае выполнения пакетной инструкции с помощью SQLPrepare и SQLExecute происходит ошибка. Если пакетное обновление выполняется с помощью SQLExecDirect, возвращаются два набора результатов, как и должно быть. Следует отметить, что поставщик OLE DB для ODBC использует вызовы Prepare/Execute и возвращает только один результирующий набор. Устранить эту проблему можно путем применения поставщика OLE DB для SQL Server, который использует SQLExecDirect и работает правильно.
Пакетные обновления приводят к потере сведений о конфликтах при наличии нескольких конфликтующих строк
Если при выполнении пакетных обновлений на сервере SQL Server с помощью поставщика OLE DB для ODBC возникает две или более конфликтующих строки, сведения о таких конфликтах теряются. Первая конфликтующая строка пакета помечается как конфликтующая. Для нее ведется состояние изменения. Однако все последующие конфликтующие строки не помечаются как таковые. Для них режим изменения возвращается к значению adEditNone, причем эти изменения на сервере не отражаются. Для устранения этой проблемы следует пользоваться поставщиком OLE DB для SQL Server (SQLOLEDB).
В этом разделе представлены последние сведения и дополнения к документации поставщика OLE DB для Oracle.
Технические вопросы по поставщику OLE DB для Oracle
Известные ошибки и ограничения поставщика OLE DB для Oracle
Чтобы поставщик OLE DB для Oracle8 мог работать с программным обеспечением клиента Oracle, запись реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\* должна быть изменена на использование Oci.dll вместо используемой по умолчанию Ociw32.dll.
Далее приводятся правильные значения MTxOCI для программного обеспечения Oracle8 и Oracle8i:
Параметр | Oracle8i | Oracle8 |
OracleXaLib | Oraclient8.dll | Xa80.dll |
OracleSqlLib | Orasql8.dll | Sqllib80.dll |
OracleOciLib | Oci.dll | Oci.dll |
Для систем Windows 2000
Примечание. Если этот раздел не был автоматически добавлен программой установки, добавьте в реестр параметр OracleOciLib.
Для систем Windows NT 4.0 и Windows 95/98
Примечание. Этот раздел должен быть добавлен вручную с помощью команды RegEdit. За инструкциями об установке последнего автоматического исправления, содержащего значение параметра реестра OracleOciLib, обратитесь в службу технической поддержки.
Параметр dwFlags при вызове IAccessor::CreateAccessor
Данный поставщик игнорирует параметр dwFlags при вызове IAccessor::CreateAccessor, при этом значения флага DBBINDFLAGS_HTML и любых других флагов в этом поле не проверяются и не учитываются. Тем не менее, потребитель должен установить значение dwFlags равным 0.
Ошибки при использовании серверов Oracle 7.x
При использовании поставщика OLE DB для Oracle с сервером Oracle 7.x выполнение внешнего объединения может привести к ошибке. При внешнем объединении все столбцы в принципе могут содержать пустые значения. Однако наличие пустого значения в результирующем столбце может быть воспринято сервером Oracle 7.x как ошибка. В этом случае последует сообщение о том, что столбец внешнего объединения не допускает пустых значений. Для устранения этой проблемы следует пользоваться серверами Oracle 8.x.
Выполнение инструкций Select для баз данных Oracle 8.x невозможно без транзакций
Для доступа к базам данных Oracle 8.x с помощью инструкции «select...for update» необходимо предварительно начать транзакцию. В противном случае последует сообщение о нарушении порядка получения данных – ошибка «Fetch out of sequence (ORA-01002)».
Сервер Oracle преобразует пустые строки в нулевые значения
При обновлении базы данных Oracle с помощью драйвера ODBC для Oracle или поставщика OLE DB для Oracle следует учитывать, что пустые строки будут заменены значениями NULL. Если используется метод Update ADO, может последовать сообщение об ошибке, которая состоит в том, что не удается найти указанную строку с целью ее обновления, так как некоторые значения могли быть изменены после того, как эта строка была прочитана в последний раз (ошибка 80040e38). Причиной является то, что сервер Oracle преобразует пустую строку в значение NULL, тогда как объект Recordset ADO хранит эту пустую строку.
В этом разделе представлены последние сведения и дополнения к документации поставщика OLE DB для SQL Server.
Технические вопросы по поставщику OLE DB для SQL Server
Известные ошибки и ограничения поставщика OLE DB для SQL Server
В настоящее время технических проблем не существует.
При включении компонентов службы параметры сервера сбрасываются
Реализация компонентов службы OLE DB с группировкой ресурсов не обеспечивает сброс параметров сервера при возврате источника данных и сеанса в группу. Например, если в некотором сеансе на сервер SQL Server отправляется команда SET QUOTED_IDENTIFIER OFF и этот сеанс возвращается в группу, данный параметр сервера не сбрасывается. Таким образом, может случиться так, что потребитель выберет активное подключение из группы, у которого некоторые параметры сервера будут отличаться от предполагаемых. Если для этих параметров сервера, например QUOTED_IDENTIFIER, установлены значения, отличающиеся от используемых по умолчанию, то при возвращении объектов в группу состояние активных подключений не сбрасывается. Следовательно, потребитель должен сбросить эти параметры по своему усмотрению или отключить компоненты службы OLE DB, чтобы восстановить контроль СУБД над этими параметрами сервера.
В этом разделе представлены последние сведения и дополнения к документации поставщика OLE DB для Microsoft Jet.
Технические вопросы по поставщику OLE DB для Microsoft Jet
Известные ошибки и ограничения поставщика OLE DB для Microsoft Jet
Ядро баз данных Microsoft® Jet 4.0 допускает включение всех интерфейсов для формата Unicode. Теперь данные представляются не в формате ANSI, а в международно признанном формате Unicode.
Установка поставщика Jet 4.0 не позволяет использовать поставщик Jet 3.51
При установке поставщика OLE DB для Microsoft Jet 4.0 заменяются некоторые файлы, что не позволяет использовать поставщик OLE DB для Microsoft Jet 3.51. Доступ к более старым файлам .mdb может сопровождаться снижением производительности. преобразуйте эти файлы в новый формат Microsoft Jet 4.0 с помощью программы Access 2000.
В этом разделе представлены последние сведения и дополнения к документации службы формирования данных для OLE DB.
Технические вопросы по службе формирования данных для OLE DB
Известные ошибки и ограничения службы формирования данных для OLE DB
В настоящее время технических проблем не существует.
В документации отсутствуют типы данных, поддерживаемые службой формирования данных
Ниже представлен список типов данных OLE DB, которые могут использоваться службой формирования данных для OLE DB в предложении New. Эквивалентные типы данных ADO описаны в документации DataTypeEnum ADO.
DBTYPE_BOOL | DBTYPE_I2 |
DBTYPE_BSTR | DBTYPE_I4 |
DBTYPE_BYTES | DBTYPE_I8 |
DBTYPE_CY | DBTYPE_NUMERIC |
DBTYPE_DATE | DBTYPE_R4 |
DBTYPE_DBDATE | DBTYPE_R8 |
DBTYPE_DBTIME | DBTYPE_STR |
DBTYPE_DBTIMESTAMP | DBTYPE_UI1 |
DBTYPE_DECIMAL | DBTYPE_UI2 |
DBTYPE_ERROR | DBTYPE_UI4 |
DBTYPE_FILETIME | DBTYPE_UI8 |
DBTYPE_GUID | DBTYPE_VARNUMERIC |
DBTYPE_I1 | DBTYPE_WSTR |
В этом разделе представлены последние сведения и дополнения к документации ODBC.
Известные ошибки и ограничения ODBC
Рекомендуется пользоваться 32-разрядными клиентами и драйверами ODBC
Если драйвер не предоставляет CONFIGDSN (эквивалент CONFIGDSNW для формата ANSI), то 16-разрядные клиенты ODBC не имеют возможности добавлять, настраивать и удалять драйверы UNICODE ODBC. Для устранения этой проблемы следует пользоваться 32-разрядными интерфейсами API, поддерживающими формат UNICODE. Такие изготовители, как Майкрософт, MERANT, Simba Technologies и другие, поставляют 32-разрядные драйверы для всех основных баз данных.
Транзакции Microsoft Transaction Server
Сведения об участии или регистрации транзакции Microsoft Transaction Server содержатся в документации Microsoft Transaction Server. Представлены подробные сведения для разработчиков драйверов и приложений.
Автоматическая регистрация транзакций требует группировки подключений
Интерфейс ODBC не обеспечивает автоматическую регистрацию транзакций, если не включена группировка подключений.
В заблокированных системах создание источников данных ODBC невозможно
В заблокированных системах, таких как Zero Administration Windows, Windows 2000 или Windows Terminal Server пользователь не имеет привилегий для записи в дереве реестра HKLM. Поэтому приложения, использующие драйвер ODBC для Microsoft Jet для создания источников данных ODBC, в том числе подключений без источников данных, работать не будут. Для устранения этой проблемы источники данных следует создавать с помощью учетной записи администратора Windows.
Повторяющиеся записи драйверов
Некоторые предыдущие версии MDAC содержали как английские, так и переведенные записи для поставщиков ODBC. Любой пользователь, создавший приложение, использующее переведенных поставщиков ODBC, не мог успешно перенести свое приложение на версию MDAC 2.5 на другом языке, - то есть приложение, написанное с помощью переведенного поставщика, не могло работать в системе с другим языком, поскольку в ней, вероятно, отсутствовала переведенная запись ODBC. Таким образом, чтобы обеспечить совместимость приложений в системах на разных языках, пользователи вынуждены при написании приложений, использующих технологию ODBC, применять английского поставщика ODBC.
В этом разделе представлены последние сведения и дополнения к документации драйвера ODBC для Oracle.
Технические вопросы по драйверу ODBC для Oracle
Известные ошибки и ограничения драйвера ODBC для Oracle
Чтобы драйвер ODBC для Oracle мог работать с программным обеспечением Oracle8, необходимо внести в реестр изменения, отражающие использование Oci.dll вместо используемой по умолчанию Ociw32.dll.
Для систем Windows 2000
Примечание. Этот раздел добавляется автоматически при установке.
Для систем Windows NT 4 и Windows 95/98
Примечание. Этот раздел должен быть добавлен вручную с помощью команды RegEdit. За инструкциями об установке последнего автоматического исправления, содержащего значение параметра реестра OracleOciLib, обратитесь в службу технической поддержки.
Драйвер возвращает сообщения об ошибках или усечении данных
Драйвер может возвращать сообщения об ошибках или усечении данных, если в мастере установки не было включена возможность предполагать определение столбца. По умолчанию для драйвера версии 2.5 используется значение «0».
Нарушение доступа при обновлении статической таблицы
Драйвер ODBC для Oracle может обнаружить нарушение доступа при удалении строки из предложения результирующего набора. Причиной является ошибка, разрешающая обновлять статическую таблицу.
Не поддерживаются типы данных ODBC 3.0 и более поздних версий
В результате запроса типов данных ODBC 3.0 и более поздних версий посредством SQLGetTypeInfo драйвер ODBC для Oracle возвращает ошибку «[Microsoft][Драйвер ODBC для Oracle]Тип данных SQL выходит за пределы допустимого диапазона». Драйвер ODBC для Oracle поддерживает только типы ODBC 2.5.
Обработчик курсоров клиентов не может обновлять базы данных через поставщика OLE DB для ODBC с помощью драйвера ODBC для Oracle
Если поставщик OLE DB для ODBC (MSDASQL) используется вместе с драйвером ODBC для Oracle, то возвращаемый интерфейсом IColumnsRowset набор строк метаданных столбцов содержит недостаточно данных для того, чтобы обработчик курсоров клиентов мог выполнить обновления (метод UpdateBatch ADO). Для устранения этой проблемы следует пользоваться поставщиком OLE DB для Oracle (MSDAORA).
В этом разделе представлены последние сведения и дополнения к документации администратора источников данных ODBC.
Технические вопросы по администратору источников данных ODBC
Известные ошибки и ограничения администратора источников данных ODBC
В настоящее время технических проблем не существует.
Кнопка «Пуск Visual Studio»
Если анализатор Visual Studio не установлен, то в результате нажатия кнопки Пуск Visual Studio на панели инструментов Трассировка администратора источников данных ODBC создается следующее сообщение об ошибке: «Сбой регистрации ODBC как источника событий для анализатора Visual Studio».
Справка
Если щелкнуть правой кнопкой мыши постоянную надпись в любом диалоговом окне, доступном из администратора источников данных ODBC, контекстная справка не отображается. Чтобы получить справку о таких элементах управления, необходимо щелкнуть кнопку с вопросительным знаком в правом верхнем углу диалогового окна, а затем щелкнуть нужный элемент управления. Контекстная справка включена для всех кнопок, переключателей и флажков.
В этом разделе представлены последние сведения и дополнения к документации драйверов ODBC для настольных баз данных.
Технические вопросы по драйверам ODBC для настольных баз данных
Известные ошибки и ограничения драйверов ODBC для настольных баз данных
Ключевое слово CREATE_DB означает базы данных Jet 4.0
Теперь драйвер ODBC для Jet интерпретирует ключевое слово CREATE_DB как базы данных Jet 4.0, а не базы данных Jet 3.x. Приложения, которые раньше использовали это ключевое слово для создания баз данных Jet 3.x, включая Microsoft Project 98, теперь будут создавать базы данных Jet 4.0. Базы данных Jet 4.0 доступны для чтения с помощью MDAC 2.1 или более поздней версии и Microsoft Access 2000 или более поздней версии. Добавленное ключевое слово CREATE_DBV4 позволяет указать в приложениях, что создаются базы данных Jet 4.0.
Параметры
В силу изменений в ядре Jet 4.0, содержащиеся в подзапросах параметры вставляются перед параметрами верхнего уровня инструкции. Спецификация ODBC определяет, что привязка параметров осуществляется в порядке их появления в инструкции SQL, куда их следует вставить. Затем при выполнении инструкции они вставляются именно в этом порядке. Так было в Jet 3.51, однако в Jet 4.0 этот порядок изменился.
В настоящее время ошибки и ограничения отсутствуют.
Общие вопросы: Установка файла Instcat.sql на сервере
Поставщик OLE DB для SQL Server
MDAC включает компоненты подключения клиентов сервера Microsoft SQL Server. Эти компоненты позволяют клиентам ADO, OLE DB и ODBC осуществлять доступ к данным на сервере SQL Server.
MDAC включает следующие компоненты SQL Server:
В следующих разделах этого файла последних сведений описано использование конкретных компонентов SQL Server в данной версии MDAC применительно к различным версиям SQL Server.
В этом разделе рассматриваются общие вопросы, касающиеся поставщика OLE DB для SQL Server и драйвера ODBC для SQL Server.
Поставщик OLE DB для SQL Server и драйвер ODBC для SQL Server используют набор системных сохраненных процедур, которые называются сохраненными процедурами доступа к каталогу и предназначены для извлечения данных из системного каталога SQL Server. Каждая версия поставщика OLE DB для SQL Server и драйвера ODBC разработана для работы с определенной версией сохраненных процедур доступа к каталогу.
Файл Instcat.sql, включенный в версию 07.01.0690 поставщика OLE DB для SQL Server и версию 3.70.0690 драйвера ODBC для SQL Server, включает небольшие изменения для сохраненных процедур доступа к каталогу, предназначенные для обновления этих процедур до уровня версий, используемых поставщиком OLE DB для SQL Server версии 07.01.0690 и драйвером ODBC для SQL Server версии 3.70.0690. Файл Instcat.sql, поставляемый вместе с поставщиком OLE DB для SQL Server версии 07.01.0690 и драйвером ODBC для SQL Server версии 3.70.0690, не отличается от файла Instcat.sql, поставляемого с сервером SQL Server 7.0. На узлах с серверами SQL Server 7.0 выполнять файл Instcat.sql не требуется.
Системный администратор сервера SQL Server должен с помощью сценария Instcat.sql обновить сохраненные процедуры доступа к каталогу, чтобы обеспечить правильную работу указанного драйвера. Обновление сохраненных процедур доступа к каталогу не влияет на работу клиентов SQL Server более ранних версий. Это должно быть сделано для всех версий SQL Server, начиная с версии 4.21a и заканчивая версией 6.5. Это обновление не требуется при наличии сервера SQL Server 7.0.
Для обновления сохраненных процедур доступа к каталогу на сервере SQL Server версии 4.21a, 6.0 или 6.5 системный администратор должен выполнить файл сценария Instcat.sql с помощью служебной программы isql (см. следующие инструкции).
Перед внесением каких-либо изменений в главную базу данных системный администратор должен создать для нее резервную копию. Программа isql может быть выполнена только на компьютере, установленном как рабочая станция клиента SQL Server.
В командной строке выполните сценарий Instcat.sql с помощью программы isql. Например:
C:>ISQL /Usa /PПароль_СА /SИмя_сервера
/iМестоположение\Instcat.Sql
где:
Пароль_СА
Пароль системного администратора.
Имя_сервера
Имя сервера, на котором находится SQL Server.
Местоположение
Полный путь к файлу Instcat.Sql.
Сценарий Instcat.sql создает несколько сообщений. Большинство из их показывает количество строк, обработанных в результате выполнения инструкций Transact-SQL данного сценария. Большую часть этих сообщений можно игнорировать, но результаты следует просмотреть, чтобы найти возможные сообщения об ошибках выполнения. При выполнении файла Instcat.sql на сервере SQL Server версии 6.0 сообщение о том, что объект sp_MS_upd_sysobj_category не существует, можно игнорировать. Последнее из сообщений должно свидетельствовать об успешном завершении сценария Instcat.sql. Недостаток места в главной базе данных для размещения сохраненных процедур доступа к каталогу или для записи изменений существующих процедур приводит к сбою сценария Instcat.sql.
Возврат к компонентам доступа к данным для клиентов SQL Server
Поставщик OLE DB для SQL Server версии 07.01.0690 может использоваться для доступа к серверам SQL Server версий 7.0 и 6.5.
Поскольку поставщик OLE DB для SQL Server версии 07.01.0690 поставляется вместе с сервером SQL Server 7.0, пользователям сервера SQL Server 7.0 следует обращаться к документации SQL Server 7.0 на этот драйвер, а не к данному файлу последних сведений. Электронная документация SQL Server Books Online для сервера SQL Server 7.0 доступна в библиотеке MSDN и на компакт-дисках Microsoft Technet.
Пользователи сервера SQL Server версии 6.5 могут просмотреть документацию MDAC SDK для поставщика OLE DB для SQL Server 7.0.
Возврат к компонентам доступа к данным для клиентов SQL Server
В этом разделе описано использование версии 3.70.0690 драйвера ODBC для SQL Server с сервером SQL Server 6.5 или более ранней версии.
Поскольку драйвер ODBC для SQL Server версии 3.70.0690 поставляется вместе с сервером SQL Server 7.0, пользователям сервера SQL Server 7.0 следует обращаться к документации SQL Server 7.0 на этот драйвер, а не к данному файлу последних сведений. Электронная документация SQL Server Books Online для сервера SQL Server 7.0 доступна в библиотеке MSDN и на компакт-дисках Microsoft Technet.
Драйвер ODBC для SQL Server версии 3.70.0690 является драйвером ODBC для среды Win32 версии 3.51. Его можно использовать для приложений, созданных с помощью интерфейсов API ODBC 2.X и ODBC 3.X. Этот драйвер работает с серверами SQL Server версии 4.21a или более поздних версий. Драйвер выполняется в системах Windows 95, Windows 98 и Windows NT версии 4.0.
Программа сетевого клиента SQL Server 7.0 для среды Win32 (cliconfg.exe) также устанавливается вместе с драйвером ODBC для SQL Server версии 3.70.0690. Эта программа сетевого клиента SQL Server может использоваться вместе с серверами SQL Server версии 4.21a или более поздних версий.
Драйвер ODBC для SQL Server версии 3.70.0690 ничем не отличается от драйвера, поставляемого вместе с сервером SQL Server 7.0. Пользователи SQL Server 7.0 могут получить сведения о драйвере ODBC для SQL Server версии 3.70.0690 в документации сервера SQL Server 7.0. Электронная документация SQL Server Books Online для сервера SQL Server 7.0 доступна в электронной библиотеке MSDN, а также на компакт-дисках Technet.
Если драйвер ODBC для SQL Server версии 3.70.0690 используется вместе с сервером SQL Server (версии 4.21a, 6.0 или 6.5), этот драйвер работает так же, как и драйверы более ранних версий. Пользуйтесь сведениями о данном драйвере, поставляемыми с указанной версией сервера SQL Server. Сюда относятся:
Файл Sqlsodbc.hlp, поставляемый вместе с версией 3.70.0690 драйвера ODBC для SQL Server содержит только контекстную справку мастера настройки источников данных для SQL Server. Файл Drvssrvr.hlp, который поставлялся с более ранними версиями драйвера ODBC для SQL Server, содержит сведения о более ранних версиях этого драйвера. Сведения, содержащиеся в более ранних версиях файла Drvssrvr.hlp, дублируются в руководстве по программированию интерфейса ODBC для Microsoft SQL Server, которое поставляется вместе с сервером SQL Server 6.5.
Драйвер ODBC для SQL Server имеет несколько параметров, которые используются при вызове некоторых функций ODBC. Определения этих параметров драйвера и соответствующих ему программных структур на языках C и C++ содержатся во включаемом файле Odbcss.h.
Драйвер ODBC для SQL Server версии 3.70.0690 работает с файлом Odbcss.h, который входит в состав следующих продуктов:
Комплект MDAC SDK является частью профессионального выпуска электронной библиотеки Microsoft Developer Network. Кроме того, этот SDK можно загрузить с веб-узла корпорации Майкрософт http://www.microsoft.com/data. Данный SDK также доступен в опубликованном издательством Microsoft Press справочнике «Microsoft ODBC 3.0 Software Development Kit and Programmer's Reference».
Поскольку драйвер ODBC версии 3.70.0690 поставляется вместе с сервером SQL Server 7.0, пользователям сервера SQL Server 7.0 следует обращаться к документации по интерфейсу ODBC сервера SQL Server 7.0. Перечисленные в этом разделе проблемы совместимости возникают только в случае использования данного драйвера вместе с более ранними версиями сервера SQL Server (4.21a, 6.0 и 6.5).
В драйвере ODBC для SQL Server версии 3.70.0690 используется новый мастер добавления и настройки источников данных, если эти операции осуществляются с помощью служебной программы администратора ODBC или приложение вызывает функцию SQLConfigDataSource и обращается к драйверу, чтобы вывести приглашение пользователю на ввод данных. Чтобы ознакомиться с документацией этого мастера, нажмите кнопку справки.
В драйвере ODBC для SQL Server версии 2.65, которая поставляется вместе с сервером SQL Server 6.5, параметр SQL_COPT_SS_PERF_QUERY_INTERVAL задается в секундах, а не в миллисекундах, как это указано в документации (см. базу знаний Knowledge Base, статья Q157753). В драйвере ODBC для SQL Server версии 3.70.0690 параметр SQL_COPT_SS_PERF_QUERY_INTERVAL изменен и задается в миллисекундах, как указано в документации.
Перечисленные ниже изменения касаются только тех приложений, в которых используется интерфейс API ODBC 3.X. Эти изменения не касаются приложений, использующих интерфейс API ODBC 2.X. Данные изменения не должны повлиять на обработку результирующих наборов в большинстве приложений ODBC.
В более ранних версиях драйвера ODBC для SQL Server, инструкции PRINT или RAISERROR, расположенные в пакете или сохраненной процедуре рядом друг с другом, возвращают свои сообщения также вместе, в одном результирующем наборе. В драйвере ODBC для SQL Server версии 3.70.0690 сообщения для каждой инструкции SQL возвращаются в виде отдельных результирующих наборов. Если требуется, чтобы каждое сообщение располагалось над сообщением для следующей инструкции SQL, необходимо между каждыми двумя сообщениями вызывать функцию SQLMoreResults. Сообщения отдельной инструкции SQL, например инструкции DBCC, возвращаются все вместе в одном результирующем наборе, поэтому нет необходимости вызывать функцию SQLMoreResults между каждыми двумя сообщениями.
В более ранних версиях драйвера ODBC для SQL Server ошибка выполнения или RAISERROR с важностью 11 или выше, возникшая в первой инструкции пакета или сохраненной процедуры, приводит к тому, что функции SQLExecute, SQLExecDirect и SQLParamData возвращают значение SQL_ERROR. В драйвере ODBC для SQL Server версии 3.70.0690 функции SQLExecute, SQLExecDirect и SQLParamData возвращают значение SQL_ERROR только в том случае, если после первой инструкции никакие другие инструкции не выполняются. Если же после первой инструкции выполняются какие-либо другие инструкции (даже простая инструкция RETURN, не возвращающая значений), то функции SQLExecute и SQLExecDirect возвращают значение SQL_SUCCESS_WITH_INFO. После обработки сообщений SQL_SUCCESS_WITH_INFO с помощью функции SQLGetDiagRec следует вызвать функцию SQLMoreResults, чтобы перейти к следующему результирующему набору.
Если в более ранних версиях драйвера возникает ошибка в первой инструкции пакета или сохраненной процедуры, дескриптор этой инструкции можно использовать в другой инструкции SQL после того, как функция SQLExecute или SQLExecDirect возвращает значение SQL_ERROR. Если версия 3.7 драйвера возвращает значение SQL_SUCCESS_WITH_INFO, указанная инструкция не освобождается для обработки другой инструкции SQL до тех пор, пока функция SQLMoreResults не вернет значение SQL_NO_DATA или будут закрыты все результирующие наборы, полученные после RAISERROR. Если после сообщения об ошибке нет ни одного результирующего набора, вызов SQLCloseCursor невозможен. Чтобы освободить дескриптор инструкции для обработки другой инструкции SQL, необходимо вызвать функцию SQLFreeStmt(SQL_CLOSE) или SQLMoreResults:
CREATE PROCEDURE TestPrc @Parm1 as
IF (@Parm1 IS NULL)
BEGIN
RAISERROR ('Parm1 не может быть NULL', 11, 1)
RETURN
END
SELECT * FROM sysusers WHERE suid = @Parm1
GO
Выполните следующую инструкцию:
SQLExecDirect(hstmt, "{ call TestPrc (NULL) }", SQL_NTS);
Если используется более старая версия драйвера ODBC для SQL Server или в приложении используется интерфейс API ODBC 2.X, то функция SQLExecDirect возвращает значение SQL_ERROR. После того, как функция SQLGetDiagRec вернет значение SQL_NO_DATA или функция SQLError вернет значение SQL_NO_DATA_FOUND, дескриптор инструкции освобождается для выполнения следующей инструкции SQL.
Если драйвер ODBC для SQL Server версии 3.70.0690 вызывается из приложения, использующего интерфейс API ODBC 3.X, то функция SQLExecDirect возвращает значение SQL_SUCCESS_WITH_INFO. После того, как функция SQLGetDiagRec вернула значение SQL_NO_DATA, дескриптор инструкции не может использоваться для обработки другой инструкции SQL до тех пор, пока фунция SQLMoreResults не вернет значение SQL_NO_DATA или не будет вызвана инструкция SQLFreeStmt(SQL_CLOSE).
В более ранних версиях драйвера ODBC для SQL Server функции SQLExecute, SQLExecDirect и SQLParamData возвращают значение SQL_SUCCESS в том случае, если исполняемая в приложении инструкция UPDATE или DELETE не влияет ни на одну строку. В этом случае версия 3.7 драйвера по-прежнему возвращает значение SQL_SUCCESS в приложение, созданное с использованием интерфейса API ODBC 2.X. Однако в приложение, созданное с использованием интерфейса API ODBC 3.X, возвращается значение SQL_NO_DATA. Если в приложение с интерфейсом ODBC 2.X возвращается значение SQL_SUCCESS или в приложение с интерфейсом ODBC 3.X возвращается значение SQL_NO_DATA, а затем эти приложения вызывают функцию SQLRowCount, то эта функция возвращает счетчик, равный нулю.
В интерфейсе ODBC 3.X более точно определен порядок возврата результатов, по сравнению с интерфейсом ODBC 2.X. Более ранние версии драйвера ODBC для SQL Server возвращают значения выходных параметров и коды возврата, когда функция интерфейса ODBC 2.X SQLFetch или SQLExtendedFetch возвращает значение SQL_NO_DATA для последнего результирующего набора, который был возвращен сохраненной процедурой. Драйвер ODBC для SQL Server версии 3.70.0690 работает точно также, если он вызывается из приложения с интерфейсом ODBC 2.X. Если драйвер ODBC для SQL Server версии 3.70.0690 вызывается из приложения с интерфейсом ODBC 3.X, то выходные параметры и коды возврата не возвращаются до тех пор, пока функция SQLMoreResults не вернет значение SQL_NO_DATA.
Возврат к компонентам доступа к данным для клиентов SQL Server
Поставщик OLE DB для SQL Server и драйвер ODBC для SQL Server используют сетевые библиотеки клиентов SQL Server для связи с этим сервером.
MDAC устанавливает все более новые сетевые библиотеки в процессе установки, чтобы поставщик OLE DB для SQL Server и драйвер ODBC для SQL Server были согласованы с соответствующими сетевыми библиотеками.
Версия программы сетевого клиента SQL Server, которую устанавливает MDAC, используется драйвером ODBC для SQL Server версии 3.70.0690 при создании источников данных.
Возврат к компонентам доступа к данным для клиентов SQL Server
Далее описано использование драйвера ODBC для Microsoft Visual FoxPro версии 6.0a.
Для установки драйвера ODBC для Visual FoxPro необходимо:
Внимание! Драйвер ODBC для Visual FoxPro является исключительно 32-разрядным драйвером. Операционные системы Windows 3.1 Windows для рабочих групп не поддерживаются.
В составе операционной системы Windows 2000 устанавливается только англоязычная версия драйвера ODBC для VFP. Предыдущие версии этого драйвера, локализованные для Германии, Франции и Испании, будут заменены англоязычной версией.
Начальное значение SET REPROCESS изменено и теперь равно 5, чтобы ограничить попыток блокировки записи программой Visual FoxPro. После исчерпания попыток блокировки в программе Visual FoxPro возникает ошибка.
Теперь значения DELETED и NULL в программе Visual FoxPro могут быть установлены в диалоговом окне настройки драйвера посредством строки подключения. Используйте следующий синтаксис:
Для установки драйвера ODBC для Visual FoxPro выполните программу SETUP.EXE.
Примечание. В результате установки драйвера ODBC для Visual FoxPro обновляются компоненты ODBC, если это необходимо для соответствия стандарту ODBC 3.51. Дополнительные сведения об усовершенствованиях и возможностях , предусмотренных стандартом ODBC 3.51, содержатся в файле ODREADME.TXT, который находится в каталоге MSDASDK.
По завершении установки определите источник данных:
Драйвер ODBC для Visual FoxPro поставляется вместе с двумя файлами справки, которые располагаются в каталоге SYSTEM системы Windows 95/Windows 98 или в каталоге SYSTEM32 системы Windows NT/Windows 2000:
Дополнительные сведения о драйвере ODBC для Visual FoxPro содержатся в комплекте Microsoft Data Access Components (MDAC) SDK, который доступен на веб-узле msdn.microsoft.com. (Откройте страницу MSDN Library Online, а затем – страницу «Platform SDK» и найдите страницу MDAC SDK, содержащую раздел «ODBC Drivers».) Раздел «Visual FoxPro ODBC Driver» MDAC SDK содержит следующие сведения:
Драйвер ODBC для Visual FoxPro именует столбцы с помощью выражений. Например, выполните следующую инструкцию:
SELECT MIN (customer_id) FROM customers
Тогда драйвер ODBC для Visual FoxPro возвращает в результирующем наборе min_customerid в качестве имени столбца. Чтобы задать имя результирующего поля, воспользуйтесь предложением AS, например:
SELECT MIN(customer_id) AS minimum_custid FROM customers
Возврат к драйверу ODBC для Visual FoxPro
В следующем разделе описаны возможности, которые поддерживаются драйвером ODBC для Visual FoxPro.
Поддерживаемые версии таблиц FoxBase+® и FoxPro. Драйвер ODBC для Visual FoxPro предсотавляет доступ к таблицам Microsoft® FoxBase+®, FoxPro 1.x, FoxPro 2.x и Visual FoxPro. Кроме того, драйвер ODBC для Visual FoxPro предоставляет доступ к таблицам, находящимся в контейнере базы данных Visual FoxPro (файл .DBC).
Примечание. Драйвер ODBC для Visual FoxPro допускает транзакции только для таблиц, находящихся в базе данных Visual FoxPro (файл .DBC), но не для свободных таблиц.
Соответствие стандарту ODBC 3.51
Драйвер ODBC для Visual FoxPro соответствует стандарту Level 1 для интерфейса API ODBC, а также удовлетворяет требованиям некоторых интерфейсов API стандарта Level 2. Все поддерживаемые интерфейсы в настоящее время уже реализованы. Сообщайте нам о всех проблемах, связанных с интерфейсами API. В файле справки MDAC SDK перечислены поддерживаемые функции и допустимые входные параметры. Кроме того, в языке Visual FoxPro SQL реализованы дополнительные возможности языка SQL, доступные с помощью данного драйвера. Расширенная грамматика языка описана в справочнике «Visual FoxPro Language Reference».
Драйвер ODBC для Visual FoxPro поддерживает правила, триггеры и используемые по умолчанию значения Visual FoxPro, если только в них используются функции, поддерживаемые данным драйвером. Подробные сведения о поддержке элементов языка Visual FoxPro содержатся в файле справки MDAC SDK.
Драйвер ODBC для Visual FoxPro может обрабатывать запросы в фоновом режиме. Тем не менее, не следует пользоваться группировкой подключений с помощью драйвера ODBC для VFP. Отключите эту возможность, если драйвер вызывается из многопотокового приложения. Для этого задайте в строке подключения параметр BackGroundFetch=No или снимите флажок Fetch data in background в диалоговом окне настройки. Для получения дополнительных сведений см. раздел справки «ODBC Visual FoxPro Setup Dialog Box» в файле справки DRVVFP.CHM или в файле справки MDAC SDK.
Удаленные представления и параметризованные представления
Каждый раз при вызове функции SQLTables( ) из соответствующего списка исключаются удаленные и параметризованные представления. Локальные представления, основанные на параметризованных представлениях, не исключаются, однако в случае их использования возникают ошибки. Если функция вызывается SQLTables( ) с указанием уникального имени таблицы, тем не менее, выполняется поиск представлений (если они существуют), что позволяет проверить наличие конфликтующих имен.
Поддерживаемые версии таблиц dBASE® IV
Драйвер ODBC для Visual FoxPro обеспечивает доступ к таблицам dBASE 4 и более ранних версий. Файлы dBASE поддерживаются следующим образом:
Внимание!. Если с файлами dBASE ® версии 4.x или 5.x связаны файлы индексов (.MDX, .NDX), драйвер ODBC для Visual FoxPro неправильно выполняет обновление файла, что вызывает повреждение индексов. Такие файлы можно только читать.
Драйвер поддерживает кодировку DBCS.
Теперь допускается установка порядка сортировки для упорядочения индексов. Список поддерживаемых порядков сортировки содержится в описании команды SET COLLATE в разделе «Visual FoxPro Language Reference» MDAC SDK.
По умолчанию используется порядок сортировки «MACHINE». Существует несколько способов изменения порядка сортировки: выполнение команды SET COLLATE TO Язык с помощью функции SQLExecDirect( ) интерфейса API ODBC C; вызов функций SQLPrepare( ) и SQLExec( ) (см. справочник «ODBC SDK Reference», стр. 42-44); выбор другого порядка сортировки с помощью параметров драйвера в диалоговом окне настройки источника данных.
Примечание. Файл FOXPRO.INT устанавливается в системный каталог. Если его удалить, порядок сортировки для восточно-европейской кодовой страницы работать не будет.
Возврат к драйверу ODBC для Visual FoxPro
В правилах и триггерах не поддерживается обновление.
В разделе «Visual FoxPro ODBC Driver» файла справки MDAC SDK описаны поддерживаемые команды и функции, а также представлен обновленный список неподдерживаемых команд и функций. Если команда или функция не указана в этом файле справки, значит, она не поддерживается.
Параметризованные представления работают в триггере, только если параметру было назначено значение до того, как было открыто данное представление. Интерфейс ODBC не допускает ввода значения параметра в диалоговом режиме.
Драйвер ODBC для Visual FoxPro не поддерживает удаленные представления для других источников данных ODBC. Тем не менее, локальные (непараметризованные) представления поддерживаются в полном объеме.
При вставке, удалении или обновлении таблицы Visual FoxPro с помощью драйвера ODBC для Visual FoxPro может последовать сообщение о сбое триггера. Проверьте наличие неподдерживаемых команд в триггере.
Команда INDEX ON не поддерживается в этом выпуске.
Если таблица открывается в монопольном режиме и другой пользователь пытается получить доступ к этой таблице с помощью команды SET EXCLUSIVE OFF, то вместо ошибки «File is in use by another» (файл используется другим пользователем) драйвер ODBC для Visual FoxPro возвращает ошибку «Значение параметра изменено».
Если имя поля начинается с числа, то при создании таблицы программа MSQuery возвращает ошибку «Cannot Open File» (не удается открыть файл). Например, имя поля «1995 – продажи» является недопустимым. Программа Visual FoxPro, в отличие от MSQuery, не разрешает создавать имена полей, начинающиеся с числа.
Проблемы, связанные с пустым значением даты
В драйвере ODBC для VFP единственным значением по умолчанию для пустой даты является 0 (отключено). Драйвер будет обрабатывать все недопустимые даты путем преобразования из значений в пустое значение даты « / / »". Клиенты ODBC могут интерпретировать пустые даты драйвера ODBC для VFP различным образом. Необходимо проверить, как данное приложение обрабатывает это значение, чтобы эффективно интерпретировать и использовать эти данные.
Различия между предыдущим драйвером ISAM для FoxPro и драйвером ODBC для Visual FoxPro
Драйвер ODBC для VFP не поддерживает имена столбцов, длина которых превышает 10 знаков, а также имена столбцов, содержащие пробелы, если только данная таблица не находится в контейнере базы данных (.dbc).
Независимый выбор индексов для использования с данной таблицей не допускается.
Драйвер ODBC для VFP помещает вновь созданные таблицы не в местоположение, заданное с помощью источника данных, а в используемый по умолчанию каталог того приложения, которое использует данный драйвер,. Чтобы таблицы размещались в определенном каталоге, задайте этот каталог с помощью команды SQL. Например: «CREATE TABLE C:\Папка\Таблица (col1 i, col2 c(10))».
Возврат к драйверу ODBC для Visual FoxPro
Если при установке драйвера возникают неполадки, выполните перечисленные ниже действия, а затем попробуйте установить драйвер еще раз.
Если устранить проблемы не удается:
Для определения источника проблем воспользуйтесь вкладкой Трассировка администратора источников данных ODBC. Чтобы открыть окно администратора источников данных ODBC в системе Windows 2000, откройте панель управления Windows, дважды щелкните значок Администрирование, а затем дважды щелкните значок Источники данных (ODBC). (В предыдущих версиях Windows откройте панель управления и дважды щелкните значок 32-bit ODBC или ODBC, чтобы открылось диалоговое окно ODBC Data Source Administrator.)
Теперь при выполнении программы все вызовы функции интерфейса API C ODBC, а также их входные и выходные параметры будут записываться в файл журнала. Файл журнала ODBC имеет текстовый формат ASCII. Его нетрудно просмотреть с помощью любого стандартного текстового редактора, воспринимающего формат ASCII, например Word, Блокнот или WordPad. В некоторых случаях может возникнуть необходимость включить журнал трассировки в отчет об ошибках. Поскольку журнал трассировки ODBC может иметь большой объем, перед отправкой отчета об ошибках скопируйте данные о последних четырех-пяти вызовах функций и вставьте эти сведения в отдельный документ.
Возврат к драйверу ODBC для Visual FoxPro
Настоящий документ предоставлен исключительно для ознакомления, и в его содержание, в том числе в URL-адреса и другие ссылки на веб-узлы в Интернете, могут быть внесены изменения без предварительного уведомления. Пользователь принимает на себя весь риск, связанный с использованием настоящего документа, поскольку корпорация Майкрософт не предоставляет никаких гарантий – ни явных, ни подразумеваемых. Названия организаций и изделий, а также имена, даты и события, используемые в качестве примеров, являются вымышленными. Возможное сходство с реально существующими предприятиями, организациями, изделиями, лицами и событиями следует рассматривать как случайное. На пользователе лежит ответственность за соблюдение всех применимых в данном случае законов об авторском праве. В рамках, предусмотренных законами об авторских правах, никакая часть настоящего документа не может быть воспроизведена, сохранена или представлена в какой-либо системе хранения данных или передана в какой бы то ни было форме, какими бы то ни было средствами (электронными, механическими, фотокопировальными, записывающими или другими) и в каких бы то ни было целях без специального письменного разрешения корпорации Майкрософт.
Корпорация Майкрософт может являться правообладателем патентов и заявок, поданных на получение патента, товарных знаков и объектов авторского права, которые имеют отношение к содержанию данного документа. Предоставление вам данного документа не означает передачи какой-либо лицензии на использование данных патентов, товарных знаков и объектов авторского права, за исключением использования, явно оговоренного в лицензионном соглашении корпорации Майкрософт.
© Корпорация Майкрософт (Microsoft Corporation), 1991-1999. Все права защищены.
Microsoft, MS-DOS, Windows, Windows NT, ActiveX, Visual Studio, Visual C++, Visual FoxPro и MSDN являются охраняемыми товарными знаками корпорации Майкрософт в США и других странах.
Названия прочих организаций и изделий являются товарными знаками соответствующих владельцев.