Поиск и устранение неисправностей в Control-ADO

Control-ADO при работе с Windows Server

Oracle:

Microsoft не поддерживает 64-битный поставщик данных OLEDB для Oracle. Используйте «Oracle Provider for OLE-DB«(«Поставщик данных Oracle для OLE-DB») вместо «Microsoft OLE-DB Provider für Oracle» . Для доступа к ADO используйте Provider=OraOLEDB.Oracle;Data Source=…. вместо „Provider=msdaora;Data source=…“,.

Или другой вариант:

с ODBC вместо

Driver={Microsoft ODBC for Oracle};Server=myServerAddress;Uid=myUsername;Pwd=myPassword;

используйте  DSN=mySourceName;UID=;PWD=;  (сначала здесь необходимо добавить имя источника данных (DSN) системы к источнику данных ODBC).

Для использования интерфейса ADO на машинах с 64-битной операционной системой Windows следует также обратить внимание на следующее:

  1. Установите 32-битного клиента, а также сконфигурируйте клиента (с помощью Oracle Net, SQLPLUS, Oracle Odbc), если на компьютере работает сервер Oracle. Необходимо выполнить установку (успешного выполнения проверки не достаточно для администратора Odbc!).
  2. Обратите внимание, что при указании пути к каталогу Oracle Inventory нельзя использовать «;» (запятая). Найдите «Oracle\Inventory» в реестре и измените путь. Также измените путь в файловой системе.
  3. Вам необходимо выполнить администрирование 32-битного клиента с помощью c:\Windows\SysWOW64\odbcad32.exe. Администратору ODBC на панели управления известны только 64-битные драйверы.

 ВНИМАНИЕ!

Если вы запустите не того администратора, то без проблем сможете сконфигурировать и проверить имя источника данных 64-битного драйвера. Однако программа «КАСКАД Цифра» не может установить соединение с ним, так как для него требуется 32-битный драйвер.

Сообщения об ошибках

В данном разделе содержатся все сообщения об ошибках, которые могут произойти при выполнении процессов в интерфейсе ADOпри работе с Windows.

В зависимости от среды разработки, а также механизма, используемого для определения состояния ошибки, коды возврата отображаются в одной из двух форм:

  • 0x80004005 (шестнадцатеричная)
  • -2147467259 (длинная)

Это одни и те же значения, но в разной форме. В данном случае это значения ошибок, которые могут указывать на то, что ни OLE DB, ни ее базовый поставщик данных не могут четко установить источник возникновения ошибки.

Часто встречаемые коды возврата, получаемые от OLE

Данный список составлен на основе файла Winerror.h, который поставляется вместе с Win32 SDK:

Коды
возврата без знака
Шестнадцатеричные коды возврата со знакомОписание
0x80000001-2147483647Не реализовано
0x80000002-2147483646Выход за пределы памяти
0x80000003-2147483645Один или более аргументов недействительны
0x80000004-2147483644Данный интерфейс не поддерживается
0x80000005-2147483643Недействительный указатель
0x80000006-2147483642Неправильная обработка
0x80000007-2147483641Операция прервана
0x80000008-2147483640Неопределенная ошибка
0x80000009-2147483639Ошибка из-за запрета общего доступа
0x8000000A-2147483638Данные, необходимые для выполнения данной операции, пока не доступны.
0x80004001-2147467263Не реализовано
0x80004002-2147467262Данный интерфейс не поддерживается
0x80004003-2147467261Недействительный указатель
0x80004004-2147467260Операция прервана
0x80004005-2147467259Неопределенная ошибка
0x80004006-2147467258Сбой локального ЗУ потока
0x80004007-2147467257Получить сбой распределителя совместно используемой памяти
0x80004008-2147467256Получить сбой распределителя памяти
0x80004009-2147467255Невозможно инициализировать класс кэш-памяти
0x8000400A-2147467254Невозможно инициализировать службы RPC (удаленного вызова процедур)
0x8000400B-2147467253Не удается осуществить управление каналом локального ЗУ потока
0x8000400C-2147467252Не удается распределить управление каналом локального ЗУ потока
0x8000400D-2147467251Распределитель памяти, предоставленный пользователем, является неприемлемым.
0x8000400E-2147467250Взаимное исключение службы OLE уже существует
0x8000400F-2147467249Сопоставление файлов службы OLE уже существует
0x80004010-2147467248Невозможно сопоставить вид файла для службы OLE
0x80004011-2147467247Сбой при попытке запуска службы OLE
0x80004012-2147467246Была произведена попытка вызвать CoInitialize второй раз при одиночном потоке
0x80004013-2147467245Нужно было провести удаленную активацию, но она не была разрешена
0x80004014-2147467244Нужно было провести удаленную активацию, но предоставлленное имя сервера былонедействительным
0x80004015-2147467243Класс сконфигурирован для работы в качестве идентификатора безопасности, отличного от вызывающей программы
0x80004017-2147467241Необходимо задать RunAs в виде <имя домена>/<имя пользователя> или просто <имя пользователя>
0x80004018-2147467240Обслуживающий процесс не может быть запущен. Возможно, имя пути указано неверно.
0x80004019-2147467239Обслуживающий процесс не может быть запущен по причине сконфигурированного идентификатора. Возможно, имя пути указано неверно или оно недоступно.
0x8000401A-2147467238Обслуживающий процесс не может быть запущен, потому что сконфигурированный идентификатор неверный. Проверьте имя пользователя и пароль.
0x8000401B-2147467237Клиент не имеет разрешения на запуск данного сервера.
0x8000401C-2147467236Служба, обеспечивающая данный сервер, не может быть запущена.
0x8000401D-2147467235Данный компьютер не смог связаться с компьютером, обеспечивающим сервер.
0x8000401E-2147467234Сервер не отвечал с момента запуска.
0x8000401F-2147467233Информация по регистрации для данного сервера является несоответствующей или неполной.
0x80004020-2147467232Информация по регистрации для данного интерфейса является несоответствующей или неполной.
0x80004021-2147467231Неудавшаяся операция не поддерживается.
0x8000FFFF-2147418113Катастрофический отказ
0x80070005-2147024891Ошибка из-за запрета общего доступа
0x80070006-2147024890Неправильная обработка
0x8007000E-2147024882Выход за пределы памяти
0x80070057-2147024809Один или более аргументов недействительны

Коды возврата из OLE DB для отладки

Данный список составлен на основе файла Oledberr.h, который поставляется вместе с OLE-DB SDK:

Кодывозврата без знакаШестнадцатеричные коды возврата со знакомОписание
0x80040E00-2147217920Недействительное средство доступа
0x80040E01-2147217919Создание другой строки приведет к превышению общего числа активных строк, поддерживаемых набором строк
0x80040E02-2147217918Невозможно сделать запись с помощью средства доступа, предназначенного только для чтения
0x80040E03-2147217917Заданные значения нарушают логическую структуру данных
0x80040E04-2147217916Неправильная обработка строки
0x80040E05-2147217915Объект был открытым
0x80040E06-2147217914Недействительный раздел
0x80040E07-2147217913Буквенное значение в команде нельзя конвертировать в правильный тип, но не по причине переполнения данными
0x80040E08-2147217912Недействительная информация о связывании
0x80040E09-2147217911Доступ не разрешен
0x80040E0A-2147217910Указанный столбец не содержит закладок или разделов
0x80040E0B-2147217909Некоторые ограничения затрат отклонены
0x80040E0C-2147217908Не установлена команда для объекта команды
0x80040E0D-2147217907Невозможно найти план запроса в рамках заданного ограничения затрат
0x80040E0E-2147217906Недействительная закладка
0x80040E0F-2147217905Недействительный режим блокировки
0x80040E10-2147217904Не задано значение для одного или более требуемых параметров
0x80040E11-2147217903Недействительный идентификатор столбца
0x80040E12-2147217902Недействительный коэффициент
0x80040E13-2147217901Недействительное значение
0x80040E14-2147217900В команде содержалась одна или более ошибок
0x80040E15-2147217899Невозможно отменить выполнение команды
0x80040E16-2147217898Поставщик не поддерживает указанный диалект
0x80040E17-2147217897Источник данных с указанным именем уже существует
0x80040E18-2147217896Набор строк был надстроен над каналом оперативных данных и его нельзя перезапустить
0x80040E19-2147217895В текущем диапазоне невозможно найти ключ, соответствующий описанным характеристикам
0x80040E1A-2147217894Принадлежность данной иерархической структуры закреплена за поставщиком данных
0x80040E1B-2147217893Поставщик данных не может определить идентификатор для вновь вставленных строк
0x80040E1C-2147217892Ни для каких поддерживаемых задач не указаны весовые коэффициенты, отличные от нуля, поэтому задача была отклонена
0x80040E1D-2147217891Запрашиваемый вид преобразования не поддерживается
0x80040E1E-2147217890lRowsOffset выполнит перевод в любой конец набора строк, вне зависимости от указанного значения cRows; значение cRowsObtained равно 0
0x80040E1F-2147217889Информация была потребована по запросу, а запрос не был установлен
0x80040E20-2147217888Поставщик выполнял вызов метода из IRowsetNotify, который находится у потребителя и в NT
0x80040E21-2147217887Возникли ошибки
0x80040E22-2147217886Указано отличное от нуля регулирующее значение IUnknown, при этом создаваемый объект не поддерживает агрегирования.
0x80040E23-2147217885Заданное значение HROW, которое относится к строке с фиксированным или программируемым удалением
0x80040E24-2147217884Набор строк не поддерживает обратный вызов
0x80040E25-2147217883Необходимо сбросить все значения HROW перед тем, как получить новые
0x80040E26-2147217882Один из указанных для хранения флажков не поддерживается
0x80040E28-2147217880Указанный флажок состояния не является ни DBCOLUMNSTATUS_OK, ни DBCOLUMNSTATUS_ISNULL
0x80040E29-2147217879Набор строк не прокручивается обратно
0x80040E2A-2147217878Неправильная обработка области
0x80040E2B-2147217877Указанный набор строк не прилегал или не перекрывал строки в указанной области наблюдения
0x80040E2C-2147217876Был указан переход от ALL* к MOVE* или EXTEND*
0x80040E2D-2147217875Указанная область не является подходящей подобластью области, определенной с помощью обработки заданной области наблюдения
0x80040E2E-2147217874Поставщик не поддерживает команды со сложными выражениями
0x80040E2F-2147217873Указанное значение нарушает правила соблюдения целостности для столбца или таблицы
0x80040E30-2147217872Заданное имя типа не опознано
0x80040E31-2147217871Выполнение прервано, так как было достигнут предельное значение ресурса; ни один из результатов не возвращен
0x80040E32-2147217870Невозможно клонировать объект команды, если ее иерархическая структура команд содержит набор или наборы строк
0x80040E33-2147217869Невозможно представить текущую иерархическую структуру в виде текста
0x80040E34-2147217868Указанный указатель уже существует
0x80040E35-2147217867Указанный указатель не существует
0x80040E36-2147217866Указанный указатель уже использовался
0x80040E37-2147217865Указанная таблица не существует
0x80040E38-2147217864В наборе строк использовался оптимистичный параллелизм, при этом с момента последнего считывания изменилось значение столбца
0x80040E39-2147217863Во время копирования были обнаружены ошибки
0x80040E3A-2147217862Указанная степень точности недействительна
0x80040E3B-2147217861Указанный масштаб недействителен
0x80040E3C-2147217860Недействительный идентификатор таблицы
0x80040E3D-2147217859Указанный тип недействителен
0x80040E3E-2147217858Идентификатор столбца встречался более одного раза в процессе указания
0x80040E3F-2147217857Указанная таблица уже существует
0x80040E40-2147217856Указанная таблица уже использовалась
0x80040E41-2147217855Указанный идентификатор территории не поддерживался
0x80040E42-2147217854Указанный номер записи недействителен
0x80040E43-2147217853Хотя закладка была создана правильно, невозможно найти строку, которая бы ей соответствовала
0x80040E44-2147217852Значение свойства недействительно
0x80040E45-2147217851Набор строк не разделен на разделы
0x80040E46-2147217850Недействительное средство доступа
0x80040E47-2147217849Недействительные флажки для хранения
0x80040E48-2147217848Средства доступа по ссылке не поддерживаются данным поставщиком
0x80040E49-2147217847Средства доступа с нулевым значением не поддерживаются данным поставщиком
0x80040E4A-2147217846Команда не подготовлена
0x80040E4B-2147217845Указанное средство доступа не являлось средством доступа по параметрам
0x80040E4C-2147217844Заданное средство доступа предназначено только для записи
0x80040E4D-2147217843Сбой при авторизации
0x80040E4E-2147217842Изменение было отменено при уведомлении; колонки остались без изменений
0x80040E4F-2147217841В наборе строк только один раздел, который не был выпущен
0x80040E50-2147217840Неправильная обработка источника
0x80040E51-2147217839Поставщик не может получить информацию о параметрах, при этом не было никакого вызова SetParameterInfo
0x80040E52-2147217838Объект источника данных уже прошел инициализацию
0x80040E53-2147217837Поставщик не поддерживает данный метод
0x80040E54-2147217836Количество строк, в которых в данный момент производятся изменения, превысило установленное предельное значение
0x80040E55-2147217835Указанный столбец не существует
0x80040E56-2147217834В данный момент производятся изменения в строке с отсчетом ссылок от нуля
0x80040E57-2147217833Буквенное значение в команде вышло за пределы диапазона типа для соответствующего столбца
0x80040E58-2147217832Предоставленное значение HRESULT недействительно
0x80040E59-2147217831Предоставленное значение LookupID недействительно
0x80040E5A-2147217830Предоставленное значение DynamicErrorID недействительно
0x80040E5B-2147217829Невозможно получить видимые данные для вновь вставленной строки, которая еще не обновлена
0x80040E5C-2147217828Недействительный флажок для преобразования
0x80040E5D-2147217827Заданное имя параметра не опознано
0x80040E5E-2147217826Несколько объектов хранилищ невозможно открыть одновременно
0x00040EC0265920Выборка требуемого числа строк приведет к превышению общего числа активных строк, поддерживаемых набором строк
0x00040EC1265921Один или более типов столбцов являются несовместимыми; во время копирования произойдут ошибки, связанные с преобразованием
0x00040EC2265922Информация о типе параметра подменяется вызывающей программой
0x00040EC3265923Пропущенная закладка для удаленной строки или строки, которая сюда не входит
0x00040EC4265924Обнаружены ошибки при проверке правильности иерархической структуры
0x00040EC5265925Больше наборов строк нет
0x00040EC6265926Достигнуто начало или конец набора строк или раздела
0x00040EC7265927Поставщик повторно выполнил команду
0x00040EC8265928Буфер переменных данных заполнен полностью
0x00040EC9265929Больше результатов нет
0x00040ECA265930Сервер не может отключить или снизить степень защищенности блокировки до завершения транзакции
0x00040ECB265931Указанный весовой коэффициент не поддерживался или превышал поддерживаемое предельное значение, при этом для него было задано значение 0 или поддерживаемое предельное значение
0x00040ECD265933Диалект языка входных данных проигнорирован, а текст был возвращен в другом диалекте
0x00040ECE265934Потребитель не заинтересован в получении в дальнейшем вызовов с уведомлением для данного этапа
0x00040ECF265935По этой причине потребитель не заинтересован в получении в дальнейшем вызовов с уведомлением
0x00040ED1265937Чтобы снова перейти к началу набора строк, поставщик должен был заново выполнить запрос; вне зависимости от того, был ли изменен порядок столбцов, были ли они добавлены или удалены из набора строк
0x00040ED2265938Данный метод дает некоторые ошибки; ошибки были возвращены в массив ошибок
0x00040ED3265939Неправильная обработка строки
0x00040ED4265940Заданное значение HROW, которое относится к строке с фиксированным удалением
0x00040ED5265941Поставщик не смог проследить все изменения; клиент должен заново вызвать данные, связанные с областью наблюдения, с помощью другого метода
0x00040ED6265942Выполнение приостановлено из-за достижения предельного значения ресурса; результаты, полученные до настоящего момента, возвращены, но возобновить выполнение невозможно
0x00040ED8265944Степень защищенности блокировки стала выше указанного значения
0x00040ED9265945Одно или более свойств было изменено с разрешения поставщика
0x00040EDA265946Возникли ошибки
0x00040EDB265947Указанный параметр был недействителен
0x00040EDC265948Обновление данной строки привело к обновлению не менее одной строки в источнике данных

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *