Ошибка sqlallochandle для драйвера в sql handle env
Добрый день всем!
Незнаю что и делать, весь инете перекопал - не найду ответ точный.
Есть asp, в ней коннект к ораклу 9.2. Запускаю, пишет:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Driver's SQLAllocHandle on SQL_HANDLE_ENV failed
/rview/index.asp, line 224
либо
Microsoft OLE DB Provider for Oracle error '80004005'
Oracle client and networking components were not found. These components are supplied by Oracle Corporation and are part of the Oracle Version 7.3.3 or later client software installation. Provider is unable to function until these components are installed.
Соответственно коннект делаю так
<% .
Set Conn = Server.CreateObject('ADODB.Connection')
Conn.Open
'Driver=;Server=test;Uid=system;Pwd=system;'
Set Rs = Conn.Execute(select. ).
или так
<% .
Set Conn = Server.CreateObject('ADODB.Connection')
DSNTest='
Provider=MSDAORA.1;Password=system;User Source=test'
Conn.open DSNtest
Set Rs = Conn.Execute(select. ).
. %>
Клиент оракловый стоит, даже пробовал отдельно инсталлить microsoft odbc driver for oracle. Ничего не помогает (
Причем эта asp работала на 7 или 8 оракле раньше нормально.
Помощь в написании контрольных, курсовых и дипломных работ здесь
Не устанавливается ни один плагин ошибка Installation failed: Download failed. No working transports found
Здраствуйте! Помогите пофиксить ошибку, при попытке установки нового плагина(любого), в админке.
Ошибка detect drivers done, no any drive found
Доброго времени суток. После перестановки win 7 получил ошибку(detect drivers done, no any drive.
Upload и Write to file failed. Ошибка: ADODB.Stream error '800a0bbc' Write to file failed.
Проблема вот в чем. Есть 3 компонента, и в админе каждого есть возможность загрузки файлов.
Ошибка No DATA link drivers have been load в RvProject
В Дизайнере создаю простейший отчет по БД (MS ACCES 2000). При виполении его из дизайнера все в.
Перед загрузкой Windows постоянная ошибка No drivers found
В чем может быть проблема? Эта ошибка вылезает уже, наверное больше года. Кода появилась первый раз.
Сводка
Функцию SQLAllocHandle выделяет среду, соединение, инструкцию или дескриптор.
Эта функция является универсальной функцией выделения дескрипторов, которые заменяют функции ODBC 2,0 SQLAllocConnect, SQLAllocEnv и SQLAllocStmt. Чтобы разрешить приложениям, вызывающим функцию SQLAllocHandle , работать с ODBC 2. драйверы x , вызов функцию SQLAllocHandle сопоставляется в диспетчере драйверов с SQLAllocConnect, SQLAllocEnv или SQLAllocStmt, в зависимости от ситуации. Дополнительные сведения см. в разделе "Комментарии". Дополнительные сведения о том, что диспетчер драйверов сопоставляет эту функцию при использовании ODBC 3. Приложение x работает с ODBC 2. драйвер x см. в разделе Сопоставление функций замены для обратной совместимости приложений.
Синтаксис
Аргументы
SQL_HANDLE_DBC_INFO_TOKENный обработчик используется только диспетчером драйверов и драйвером. Приложения не должны использовать этот тип обработчика. Дополнительные сведения о SQL_HANDLE_DBC_INFO_TOKEN см. в разделе Разработка осведомленности Connection-Pool в драйвере ODBC.
аутпусандлептр
Проверки Указатель на буфер, в который будет возвращен маркер для вновь выделенной структуры данных.
Возвращаемое значение
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_INVALID_HANDLE или SQL_ERROR.
При выделении маркера, отличного от обработчика среды, если функцию SQLAllocHandle возвращает SQL_ERROR, он устанавливает аутпусандлептр в значение SQL_NULL_HDBC, SQL_NULL_HSTMT или SQL_NULL_HDESC в зависимости от значения параметром handletype, если только аргумент OUTPUT не является пустым указателем. Затем приложение может получить дополнительные сведения из структуры диагностических данных, связанной с маркером в аргументе инпусандле .
Ошибки выделения памяти для обработчиков среды
Выделение среды выполняется как в диспетчере драйверов, так и в пределах каждого драйвера. Ошибка, возвращаемая функцией функцию SQLAllocHandle с параметром handletype SQL_HANDLE_ENV, зависит от уровня, в котором произошла ошибка.
Если диспетчеру драйверов не удается выделить память для * аутпусандлептр при вызове функцию SQLAllocHandle с параметром handletype SQL_HANDLE_ENV или если приложение предоставляет указатель null для аутпусандлептр, функцию SQLAllocHandle возвращает SQL_ERROR. Диспетчер драйверов устанавливает для *аутпусандлептр значение SQL_NULL_HENV (если только приложение не предоставил пустой указатель, который возвращает SQL_ERROR). Отсутствует Handle, с помощью которого можно связать дополнительные диагностические сведения.
Диспетчер драйверов не вызывает функцию выделения среды на уровне драйвера, пока приложение не вызовет SQLConnect, SQLBrowseConnect или SQLDriverConnect. Если ошибка возникает в функции функцию SQLAllocHandle на уровне драйвера, то функция SQLConnect, SQLBrowseConnect или SQLDriverConnect диспетчера драйверов возвращает SQL_ERROR. Структура диагностических данных содержит значение SQLSTATE IM004 (сбой драйвера функцию SQLAllocHandle ). Ошибка возвращается для маркера соединения.
Дополнительные сведения о потоке вызовов функций между диспетчером драйверов и драйвером см. в разделе Функция SQLConnect.
Диагностика
Когда функцию SQLAllocHandle возвращает SQL_ERROR или SQL_SUCCESS_WITH_INFO, связанное значение SQLSTATE может быть получено путем вызова SQLGetDiagRec с соответствующим параметром handletype и Handle , для которых задано значение инпусандле. Для аргумента аутпусандле могут возвращаться SQL_SUCCESS_WITH_INFO (но не SQL_ERROR). В следующей таблице перечислены значения SQLSTATE, обычно возвращаемые функцией функцию SQLAllocHandle , и объясняется каждый из них в контексте этой функции. Нотация "(DM)" предшествует описаниям SQLSTATE, возвращаемым диспетчером драйверов. Код возврата, связанный с каждым значением SQLSTATE, имеет SQL_ERROR, если не указано иное.
Комментарии
Функцию SQLAllocHandle используется для выделения дескрипторов для сред, соединений, инструкций и дескрипторов, как описано в следующих разделах. Общие сведения об дескрипторах см. в разделе Handles.
Если драйвер поддерживает несколько выделений, то в каждый момент времени может быть выделено более одной среды, соединения или маркера инструкций. В ODBC ограничение на количество дескрипторов среды, соединения, инструкций или дескрипторов, которые могут быть выделены одновременно, не определено. Драйверы могут накладывать ограничение на количество определенных типов маркеров, которые могут быть выделены одновременно. Дополнительные сведения см. в документации по драйверу.
Если приложение вызывает функцию SQLAllocHandle с * аутпусандлептр , для которого задана среда, соединение, инструкция или дескриптор дескриптора, который уже существует, драйвер перезаписывает сведения, связанные с дескриптором, если только приложение не использует пул соединений (см. раздел "выделение атрибута среды для пулов соединений" Далее в этом разделе). Диспетчер драйверов не проверяет, используется ли уже указанный в * аутпусандлептр обработчик , а также не проверяет предыдущее содержимое маркера перед его перезаписыванием.
Неправильное программирование приложений ODBC для вызова функцию SQLAllocHandle в два раза с той же переменной приложения, определенной для * Аутпусандлептр , без вызова SQLFreeHandle для освобождения обработчика перед перераспределением. Перезапись дескрипторов ODBC таким образом может привести к несогласованному поведению или ошибкам в части драйверов ODBC.
В операционных системах, поддерживающих несколько потоков, приложения могут использовать одну среду, соединение, инструкцию или дескриптор в разных потоках. Поэтому драйверы должны поддерживать защищенный многопоточный доступ к этим сведениям. одним из способов достичь этого, например, является использование критического раздела или семафора. Дополнительные сведения о потоках см. в разделе Многопоточность.
Функцию SQLAllocHandle не устанавливает атрибут среды SQL_ATTR_ODBC_VERSION при вызове для выделения маркера среды; приложение должно быть установлено атрибутом среды, или значение SQLSTATE HY010 (ошибка последовательности функций) будет возвращаться при вызове функцию SQLAllocHandle для выделения маркера соединения.
Для приложений, соответствующих стандартам, функцию SQLAllocHandle сопоставляется с склаллочандлестд во время компиляции. Разница между этими двумя функциями заключается в том, что склаллочандлестд устанавливает атрибут среды SQL_ATTR_ODBC_VERSION SQL_OV_ODBC3 при вызове с аргументом параметром handletype , для которого задано значение SQL_HANDLE_ENV. Это делается потому, что приложения, соответствующие стандартам, всегда имеют формат ODBC 3. приложения x . Более того, для этих стандартов не требуется регистрация версии приложения. Это единственное различие между этими двумя функциями. в противном случае они идентичны. Склаллочандлестд сопоставляется с функцию SQLAllocHandle в диспетчере драйверов. Таким образом, сторонние драйверы не должны реализовывать склаллочандлестд.
Приложения ODBC 3,8 должны использовать:
Функцию SQLAllocHandle, а не склаллочандлестд , чтобы выделить маркер среды.
SQLSetEnvAttr , чтобы присвоить атрибуту среды SQL_ATTR_ODBC_VERSION значение SQL_OV_ODBC3_80.
Выделение дескриптора среды
Дескриптор среды предоставляет доступ к глобальной информации, такой как допустимые дескрипторы соединений и активные дескрипторы подключений. Общие сведения о дескрипторах среды см. в разделе дескрипторы среды.
Чтобы запросить обработчик среды, приложение вызывает функцию SQLAllocHandle с параметром handletype SQL_HANDLE_ENV и инпусандле SQL_NULL_HANDLE. Драйвер выделяет память для сведений о среде и передает значение связанного с ним маркера обратно в аргумент * аутпусандлептр . Приложение передает значение * аутпусандле во всех последующих вызовах, требующих аргумента обработчика среды. Дополнительные сведения см. в разделе Выделение маркера среды.
Если в обработчике среды диспетчера драйверов уже существует обработчик среды драйвера, функцию SQLAllocHandle с параметром handletype SQL_HANDLE_ENV не вызывается в этом драйвере при подключении, только функцию SQLAllocHandle с параметром handletype SQL_HANDLE_DBC. Если обработчик окружения драйвера не существует в обработчике диспетчера драйверов, то при подключении к драйверу первого маркера подключения среды в драйвере функцию SQLAllocHandle с параметром handletype SQL_HANDLE_ENV и функцию SQLAllocHandle с параметром handletype SQL_HANDLE_DBC.
Когда диспетчер драйверов обрабатывает функцию функцию SQLAllocHandle с параметром handletype SQL_HANDLE_ENV, она проверяет ключевое слово Trace в разделе [ODBC] сведений о системе. Если задано значение 1, диспетчер драйверов включает трассировку для текущего приложения. Если установлен флаг трассировки, трассировка запускается, когда первый обработчик среды выделяется и заканчивается при освобождении последнего обработчика среды. Дополнительные сведения см. в разделе Настройка источников данных.
После выделения обработчика среды приложение должно вызвать SQLSetEnvAttr в обработчике среды, чтобы задать атрибут среды SQL_ATTR_ODBC_VERSION. Если этот атрибут не задан до вызова функцию SQLAllocHandle для выделения маркера соединения в среде, вызов для выделения соединения ВОЗВРАТИТ значение SQLSTATE HY010 (ошибка последовательности функций). Дополнительные сведения см. в разделе Объявление версии ODBC приложения.
Выделение общих сред для пула подключений
Среды могут совместно использоваться несколькими компонентами в одном процессе. Общая среда может использоваться более чем одним компонентом одновременно. Если компонент использует общую среду, он может использовать соединения в составе пула, что позволяет распределять и использовать существующее соединение без повторного создания этого соединения.
Перед выделением общей среды, которую можно использовать для пула соединений, приложение должно вызвать SQLSetEnvAttr , чтобы задать SQL_CP_ONE_PER_DRIVER или SQL_CP_ONE_PER_HENV атрибуту среды SQL_ATTR_CONNECTION_POOLING. SQLSetEnvAttr в этом случае вызывается с параметром енвиронменсандле , для которого задано значение null, что делает атрибут атрибутом уровня процесса.
После включения пула соединений приложение вызывает функцию SQLAllocHandle с аргументом параметром handletype , для которого задано значение SQL_HANDLE_ENV. Среда, выделенная этим вызовом, будет неявной общей средой, так как включена поддержка пулов соединений.
При выделении общей среды используемая среда не определяется до тех пор, пока не будет вызван функцию SQLAllocHandle с параметром handletype из SQL_HANDLE_DBC. На этом этапе диспетчер драйверов пытается найти существующую среду, соответствующую атрибутам среды, запрошенным приложением. Если такой среды не существует, она создается как общая среда. Диспетчер драйверов поддерживает счетчик ссылок для каждой общей среды. При первом создании среды счетчику присваивается значение 1. Если найдена соответствующая среда, в приложение возвращается маркер этой среды, а число ссылок увеличивается. Выделенный таким образом обработчик среды можно использовать в любой функции ODBC, которая принимает в качестве входного аргумента обработчик среды.
Выделение дескриптора соединения
Дескриптор соединения предоставляет доступ к таким сведениям, как допустимые операторы и дескрипторы дескрипторов для соединения, а также указывает, открыта ли транзакция в данный момент. Общие сведения о дескрипторах подключений см. в разделе Handles Connections.
Чтобы запросить обработчик соединения, приложение вызывает функцию SQLAllocHandle с параметром handletype SQL_HANDLE_DBC. Аргументу инпусандле присваивается маркер среды, возвращенный вызовом функцию SQLAllocHandle , который выделил этот обработчик. Драйвер выделяет память для сведений о соединении и передает значение связанного с ним маркера обратно в * аутпусандлептр. Приложение передает значение * аутпусандлептр во всех последующих вызовах, для которых требуется маркер подключения. Дополнительные сведения см. в разделе Выделение маркера подключения.
Диспетчер драйверов обрабатывает функцию функцию SQLAllocHandle и вызывает функцию функцию SQLAllocHandle драйвера, когда приложение вызывает SQLConnect, SQLBrowseConnect или SQLDriverConnect. (Дополнительные сведения см. в разделе Функция SQLConnect.)
Если атрибут среды SQL_ATTR_ODBC_VERSION не задан до вызова функцию SQLAllocHandle для выделения маркера соединения в среде, вызов для выделения соединения ВОЗВРАТИТ значение SQLSTATE HY010 (ошибка последовательности функций).
Когда приложение вызывает функцию SQLAllocHandle с аргументом инпусандле , для которого задано значение SQL_HANDLE_DBC а также задает общий обработчик среды, диспетчер драйверов пытается найти существующую общую среду, соответствующую атрибутам среды, заданным приложением. Если такой среды не существует, создается одна из них со счетчиком ссылок (поддерживаемым диспетчером драйверов), равным 1. Если найдена соответствующая общая среда, этот маркер возвращается приложению, а его число ссылок увеличивается.
Фактическое соединение, которое будет использоваться, не определяется диспетчером драйверов до тех пор, пока не будет вызван SQLConnect или SQLDriverConnect . Диспетчер драйверов использует параметры соединения в вызове SQLConnect (или ключевые слова подключения в вызове SQLDriverConnect) и атрибуты соединения, заданные после выделения соединения, чтобы определить, какое подключение в пуле следует использовать. Дополнительные сведения см. в разделе Функция SQLConnect.
Выделение дескриптора инструкции
чтобы запросить маркер инструкции, приложение подключается к источнику данных, а затем вызывает функцию sqlallochandle перед отправкой инструкций SQL. В этом вызове параметром handletype должно быть установлено в значение SQL_HANDLE_STMT и инпусандле должны быть установлены в маркер соединения, возвращенный вызовом функцию SQLAllocHandle , который выделил этот обработчик. Драйвер выделяет память для данных инструкции, связывает обработчик инструкции с указанным соединением и передает значение связанного с ним обработчика обратно в * аутпусандлептр. Приложение передает значение * аутпусандлептр во всех последующих вызовах, требующих маркер оператора. Дополнительные сведения см. в разделе Выделение маркера инструкции.
Когда дескриптор инструкции выводится, драйвер автоматически выделяет набор из четырех дескрипторов и назначает дескрипторы для таких дескрипторов атрибутам операторов SQL_ATTR_APP_ROW_DESC, SQL_ATTR_APP_PARAM_DESC, SQL_ATTR_IMP_ROW_DESC и SQL_ATTR_IMP_PARAM_DESC. Они называются неявно выделенными дескрипторами. Сведения о том, как явно выделить дескриптор приложения, см. в следующем разделе "Выделение дескриптора дескриптора".
Выделение дескриптора дескриптора
Когда приложение вызывает функцию SQLAllocHandle с параметром handletype SQL_HANDLE_DESC, драйвер выделяет дескриптор приложения. Они называются явно выделенными дескрипторами. Приложение направляет драйвер для использования явно выделенного дескриптора приложения вместо автоматического выделения единицы для данного дескриптора инструкции путем вызова функции SQLSetStmtAttr с атрибутом SQL_ATTR_APP_ROW_DESC или SQL_ATTR_APP_PARAM_DESC. Дескриптор реализации не может быть выделен явным образом, а в вызове функции SQLSetStmtAttr нельзя указывать дескриптор реализации.
Явно выделенные дескрипторы связаны с дескриптором соединения вместо дескриптора оператора (так как автоматически назначаемые дескрипторы). Дескрипторы остаются выделены только тогда, когда приложение фактически подключается к базе данных. Так как явно выделенные дескрипторы связаны с дескриптором соединения, приложение может связать явно выделенный дескриптор с более чем одной инструкцией в пределах соединения. Неявно выделенный дескриптор приложения, с другой стороны, не может быть связан с более чем одним дескриптором инструкции. (Он не может быть связан с каким-либо другим маркером инструкции, который был выделен для.) Явно выделенные дескрипторы дескриптора можно освободить явным образом либо с помощью приложения, либо путем вызова SQLFreeHandle с параметром handletype SQL_HANDLE_DESC или неявно при закрытии соединения.
При освобождении явно выделенного дескриптора, неявно выделенный дескриптор снова связывается с инструкцией. (Атрибут SQL_ATTR_APP_ROW_DESC или SQL_ATTR_APP_PARAM_DESC для этой инструкции снова задается неявно выделенным дескриптором дескриптора.) Это справедливо для всех инструкций, которые были связаны с явно выделенным дескриптором в соединении.
SQLGetDiagRec и SQLGetDiagField обрабатываются диспетчером драйверов ODBC, а не отдельным драйвером. Диспетчер драйверов ODBC не кэширует зависящие от драйвера поля диагностики, пока не будет установлено соединение. Вызов функции SQLGetDiagField для зависящих от драйвера полей диагностики невозможен до установления соединения. Это касается и команд соединения ODBC, даже если они возвращают значение SQL_SUCCESS_WITH_INFO. Зависящие от драйвера поля диагностики будут недоступны до следующего вызова функции ODBC.
Пример
Описание
В этом образце показана работа простого обработчика ошибок, вызывающего функцию SQLGetDiagRec для получения стандартных сведений ODBC. Затем производится проверка наличия допустимого соединения; при положительном результате проверки вызывается функция SQLGetDiagField для зависящих от драйвера ODBC для SQL Server полей диагностики. Этот образец не поддерживается на архитектуре IA64.
Этот образец разработан для ODBC версии 3.0 или более поздней.
По возможности используйте аутентификацию Windows. Если проверка подлинности Windows недоступна, запросите у пользователя ввод учетных данных во время выполнения. Избегайте хранения учетных данных в файле. Если необходимо сохранить учетные данные, зашифруйте их с помощью API-интерфейса шифрования Win32.
Также необходим источник данных ODBC с именем AdventureWorks, для которого базой данных по умолчанию является образец базы данных AdventureWorks. (образец базы данных AdventureWorks можно скачать на домашней странице Microsoft SQL Server samples and Community projects .) Этот источник данных должен быть основан на драйвере ODBC, предоставленном операционной системой (имя драйвера — "SQL Server"). При построении и запуске этого образца как 32-разрядного приложения в 64-разрядной операционной системе необходимо создать источник данных ODBC с помощью программы администрирования ODBC (исполняемый файл %windir%\SysWOW64\odbcad32.exe).
Этот образец соединяется с установленным на компьютер экземпляром SQL Server по умолчанию. Чтобы соединиться с именованным экземпляром, измените определение источника данных ODBC, указав экземпляр в следующем формате: Сервер\ИменованныйЭкземпляр. По умолчанию SQL Server Express устанавливается на именованный экземпляр.
Выполните первый Transact-SQL листинг кода (), чтобы создать хранимую процедуру, используемую в этом образце.
Скомпилируйте второй листинг кода (C++) с библиотекой odbc32.lib. Затем запустите программу.
Выполните третий Transact-SQL листинг кода (), чтобы удалить хранимую процедуру, используемую в этом образце.
3 ответа
odbc.ini: [DEFAULT] Driver = DB2 [abc] Driver = DB2 [dsn_test1] DESCRIPTION = Connection to DB2 Driver = db2 odbcinst.ini: [DB2] Description = DB2 Driver Driver = /home/user/sqllib/lib/libdb2.so fileusage=1 dontdlclose=1 [ODBC] Trace=1 TraceFile=/home/user/sqllib/trace.out db2cli.ini [abc].
Я установил клиент Oracle 10G (release 10.2.0.1) на 64-битную машину windows 2008. Я настроил файл tnsname.ora, проверил путь (начинается с пути к папке клиента oracle) и переменные oracle_home. Я также проверил разрешения безопасности в папке клиента, и это было чтение/запись для.
Проблема, по-видимому, связана с разрешением во время установки как Oracle 9i, так и 10G.
Одним из элементов, который может вызвать эту ошибку, является отсутствие каталога ORACLE_HOME bin в вашем пути Windows OS. Откройте командную строку и введите PATH или SET, чтобы узнать, включен ли каталог. Отрегулируйте по мере необходимости.
Выполните следующие действия, чтобы решить эту проблему:
- Выберите Инструменты администрирования , Параметры локальной безопасности и Локальную политику.
- Затем выберите "User Rights Assignment"
- Дважды щелкните на "Create Global Objects"
- Выберите Добавить пользователя или группу.
- Убедитесь, что установлен флажок Группы типов объектов.
- Выберите Местоположения и выделите имя сервера, на котором вы работаете (не Домен).
- Введите "Remote Desktop Users" или "Everyone" (без кавычек) в поле Имена объектов.
- Выберите OK.
- Добавьте тех же пользователей в группу "Power User".
- Если это не сработает, после шага 8 может потребоваться перезагрузка.
Я уже искал и гуглил свой вопрос, но до сих пор не нашел ответа. Моя проблема заключается в том, что при подключении к моей базе данных SQL Server через соединение PHP PDO/ODBC я всегда получаю ошибку : [Microsoft][ODBC Driver Manager] Driver's SQLAllocHandle on SQL_HANDLE_ENV failed, SQL state.
Я пытаюсь импортировать данные из Oracle в Excel. Я надеялся найти Oracle DB в выпадающем списке в разделе Получить данные, как см. онлайн: Когда этой картинки там не было, я ударил по документации , объясняющей, что я должен установить 32-битные компоненты доступа к данным Oracle (ODAC) с помощью.
Похожие вопросы:
Я хотел использовать привязку ODBC для DART этого в моем приложении, я использую базу данных ORACLE XE, но не получил, как ее настроить, хотя я прочитал основной пример в read me :( Прилагаю.
Не мог бы кто-нибудь помочь мне с этой проблемой? ERROR [IM004] [Microsoft][ODBC Driver Manager] драйвер SQLAllocHandle на SQL_HANDLE_ENV не удалось описание: необработанное исключение произошло во.
odbc.ini: [DEFAULT] Driver = DB2 [abc] Driver = DB2 [dsn_test1] DESCRIPTION = Connection to DB2 Driver = db2 odbcinst.ini: [DB2] Description = DB2 Driver Driver = /home/user/sqllib/lib/libdb2.so.
Я установил клиент Oracle 10G (release 10.2.0.1) на 64-битную машину windows 2008. Я настроил файл tnsname.ora, проверил путь (начинается с пути к папке клиента oracle) и переменные oracle_home. Я.
Я уже искал и гуглил свой вопрос, но до сих пор не нашел ответа. Моя проблема заключается в том, что при подключении к моей базе данных SQL Server через соединение PHP PDO/ODBC я всегда получаю.
Я пытаюсь импортировать данные из Oracle в Excel. Я надеялся найти Oracle DB в выпадающем списке в разделе Получить данные, как см. онлайн: Когда этой картинки там не было, я ударил по документации.
Последние пару недель я боролся с реализацией пользовательских функций odbc. Вот где я нахожусь . Мне удалось реализовать функции настройки, и все работает нормально. Я могу создать DSN, и он.
Драйвер IBM DB2 ODBC возвращает неверное значение при вызове следующего ODBC API: void Test() < // Allocate environment handle. SQLHENV environmentHandle; SQLRETURN returnCode =.
Поискал вокруг, но все остальные ответы, похоже, были около Oracle, поэтому я решил создать новый пост. В настоящее время я пытаюсь подключить Python к своей базе данных SQL Server, используя код.
Только при попытке подключиться к моему Azure DB от Python 3.7 работает контейнер OpenShift (FROM rhel7:latest) я вижу следующую ошибку:
Я попробовал точно такой же код в Docker на моем MAC, Windows и RHEL7 Virtualbox, работающем с базовым контейнером RHEL7, - он всегда работает! Проблема только в моем контейнере, работающем в OpenShift! Я проверил, что могу телнетить на свой сервер Azure DB в 1433 году из Openshift.
Я также включил журналы ODBC, но больше информации, чем приведенная выше ошибка, нет.
Что еще я должен проверить?
Вот как я настроил драйвер MSODBC в своем Dockerfile:
А вот и код, который выдает ошибку:
Внутри моего приложения flask (ошибка возникает при вызове 'has_table'):
Как я уже упоминал в начале, тот же Dockerfile дает мне рабочий контейнер в Docker либо локально на Mac, либо Windows, либо внутри RHEL7 VM. Спасибо, что посмотрели!
2 ответа
odbc.ini: [DEFAULT] Driver = DB2 [abc] Driver = DB2 [dsn_test1] DESCRIPTION = Connection to DB2 Driver = db2 odbcinst.ini: [DB2] Description = DB2 Driver Driver = /home/user/sqllib/lib/libdb2.so fileusage=1 dontdlclose=1 [ODBC] Trace=1 TraceFile=/home/user/sqllib/trace.out db2cli.ini [abc].
unixODBC пытается найти odbc.ini в домашнем каталоге текущего пользователя. Он пытается сделать это, посмотрев на пользователя в /etc/passwd . Поскольку Openshift использует конкретный проект UID, который не существует в /etc/passwd, поиск пользователя не будет работать, и соединение не удастся.
Чтобы решить эту проблему, добавьте следующее в dockerfile
И следующее в скрипте entrypoint
Вышеизложенное вставит текущего пользователя в /etc/passwd во время запуска контейнера.
Похожие вопросы:
Я пытаюсь создать альтернативу Reader для чтения данных из Azure SQL Database с помощью модуля Execute python script в Azure ML . при этом я пытаюсь подключиться к Azure Sql с помощью библиотеки.
Я пытаюсь получить доступ к базе данных microsoft AZURE paid SQL. Я использую следующее cnxn = pyodbc.connect('DRIVER=
Я работаю над некоторым программным обеспечением, которое иногда должно подключаться к базе данных oracle 8.1.7, а иногда к базе данных oracle 10g для выполнения некоторых запросов. При подключении.
odbc.ini: [DEFAULT] Driver = DB2 [abc] Driver = DB2 [dsn_test1] DESCRIPTION = Connection to DB2 Driver = db2 odbcinst.ini: [DB2] Description = DB2 Driver Driver = /home/user/sqllib/lib/libdb2.so.
Я пытаюсь подключиться к базе данных Microsoft SQL с помощью SQLDriverConnect: int DatabaseHelper::ConnectDatabase() < SQLSMALLINT i, MsgLen; SQLWCHAR SqlState[6]; SQLRETURN rc2; SQLINTEGER.
У меня есть сервер базы данных, к которому можно получить доступ с помощью входа на удаленный рабочий стол на серверной машине. Это то, что мы делаем вручную: Войдите с помощью удаленного рабочего.
Я пытаюсь получить доступ к своему хранилищу данных azure, получить некоторые данные в mlstudio-attached-notebook в python. Простое соединение говорит, что драйвер не найден. [01000].
Поискал вокруг, но все остальные ответы, похоже, были около Oracle, поэтому я решил создать новый пост. В настоящее время я пытаюсь подключить Python к своей базе данных SQL Server, используя код.
Я хочу подключить свое приложение django к базе данных MS-SQL server 2014. Я написал этот код для установления соединений. DATABASES = < 'default': < 'ENGINE': 'sql_server.pyodbc'.
Рассмотрим такой сценарий. SQL Server работает на ubuntu Возможность подключения через Azure Data Studio Возможность подключения через sqlcmd sqlcmd -S 192.168.99.100,31433 -U sa -P S0mePassw0rd -d.
Читайте также: