CDBException Class
Represents an exception condition arising from the database classes.
Syntax
Members
Public Data Members
| Name | Description |
|---|---|
| CDBException::m_nRetCode | Contains an Open Database Connectivity (ODBC) return code, of type RETCODE. |
| CDBException::m_strError | Contains a string that describes the error in alphanumeric terms. |
| CDBException::m_strStateNativeOrigin | Contains a string describing the error in terms of the error codes returned by ODBC. |
Remarks
The class includes two public data members you can use to determine the cause of the exception or to display a text message describing the exception. CDBException objects are constructed and thrown by member functions of the database classes.
This class is one of MFC’s Open Database Connectivity (ODBC) classes. If you are instead using the newer Data Access Objects (DAO) classes, use CDaoException instead. All DAO class names have «CDao» as a prefix. For more information, see the article Overview: Database Programming.
Exceptions are cases of abnormal execution involving conditions outside the program’s control, such as data source or network I/O errors. Errors that you might expect to see in the normal course of executing your program are usually not considered exceptions.
You can access these objects within the scope of a CATCH expression. You can also throw CDBException objects from your own code with the AfxThrowDBException global function.
For more information about exception handling in general, or about CDBException objects, see the articles Exception Handling (MFC) and Exceptions: Database Exceptions.
Inheritance Hierarchy
Requirements
Header: afxdb.h
CDBException::m_nRetCode
Contains an ODBC error code of type RETCODE returned by an ODBC application programming interface (API) function.
Remarks
AFX_SQL_ERROR_API_CONFORMANCE The driver for a CDatabase::OpenEx or CDatabase::Open call does not conform to required ODBC API Conformance level 1 ( SQL_OAC_LEVEL1).
AFX_SQL_ERROR_CONNECT_FAIL Connection to the data source failed. You passed a NULL CDatabase pointer to your recordset constructor and the subsequent attempt to create a connection based on GetDefaultConnect failed.
AFX_SQL_ERROR_DATA_TRUNCATED You requested more data than you have provided storage for. For information on increasing the provided data storage for CString or CByteArray data types, see the nMaxLength argument for RFX_Text and RFX_Binary under «Macros and Globals.»
AFX_SQL_ERROR_DYNASET_NOT_SUPPORTED A call to CRecordset::Open requesting a dynaset failed. Dynasets are not supported by the driver.
AFX_SQL_ERROR_EMPTY_COLUMN_LIST You attempted to open a table (or what you gave could not be identified as a procedure call or SELECT statement) but there are no columns identified in record field exchange (RFX) function calls in your DoFieldExchange override.
AFX_SQL_ERROR_FIELD_SCHEMA_MISMATCH The type of an RFX function in your DoFieldExchange override is not compatible with the column data type in the recordset.
AFX_SQL_ERROR_LOCK_MODE_NOT_SUPPORTED Your request to lock records for update could not be fulfilled because your ODBC driver does not support locking.
AFX_SQL_ERROR_MULTIPLE_ROWS_AFFECTED You called CRecordset::Update or Delete for a table with no unique key and changed multiple records.
AFX_SQL_ERROR_NO_CURRENT_RECORD You attempted to edit or delete a previously deleted record. You must scroll to a new current record after a deletion.
AFX_SQL_ERROR_NO_POSITIONED_UPDATES Your request for a dynaset could not be fulfilled because your ODBC driver does not support positioned updates.
AFX_SQL_ERROR_ODBC_LOAD_FAILED An attempt to load the ODBC.DLL failed; Windows could not find or could not load this DLL. This error is fatal.
AFX_SQL_ERROR_ODBC_V2_REQUIRED Your request for a dynaset could not be fulfilled because a Level 2-compliant ODBC driver is required.
AFX_SQL_ERROR_RECORDSET_FORWARD_ONLY An attempt to scroll did not succeed because the data source does not support backward scrolling.
AFX_SQL_ERROR_SNAPSHOT_NOT_SUPPORTED A call to CRecordset::Open requesting a snapshot failed. Snapshots are not supported by the driver. (This should only occur when the ODBC cursor library ODBCCURS.DLL is not present.)
AFX_SQL_ERROR_SQL_CONFORMANCE The driver for a CDatabase::OpenEx or CDatabase::Open call does not conform to the required ODBC SQL Conformance level of «Minimum» (SQL_OSC_MINIMUM).
AFX_SQL_ERROR_SQL_NO_TOTAL The ODBC driver was unable to specify the total size of a CLongBinary data value. The operation probably failed because a global memory block could not be preallocated.
AFX_SQL_ERROR_RECORDSET_READONLY You attempted to update a read-only recordset, or the data source is read-only. No update operations can be performed with the recordset or the CDatabase object it is associated with.
SQL_ERROR Function failed. The error message returned by the ODBC function SQLError is stored in the m_strError data member.
The SQL-prefixed codes are defined by ODBC. The AFX-prefixed codes are defined in AFXDB.H, found in MFC\INCLUDE.
CDBException::m_strError
Contains a string describing the error that caused the exception.
Remarks
CDBException::m_strStateNativeOrigin
Contains a string describing the error that caused the exception.
Remarks
The string is of the form «State:%s,Native:%ld,Origin:%s», where the format codes, in order, are replaced by values that describe:
The native error code, specific to the data source, returned in the pfNativeError parameter of the SQLError function. Example: 207.
The error message text returned in the szErrorMsg parameter of the SQLError function. This message consists of several bracketed names. As an error is passed from its source to the user, each ODBC component (data source, driver, Driver Manager) appends its own name. This information helps to pinpoint the origin of the error. Example: [Microsoft][ODBC SQL Server Driver][SQL Server]
For additional information about the codes used to make up this string, see the SQLError function in the ODBC Programmer’s Reference.
Example
From ODBC: «State:S0022,Native:207,Origin:[Microsoft][ODBC SQL Server Driver][SQL Server] Invalid column name ‘ColName'»
In m_strStateNativeOrigin : «State:S0022,Native:207,Origin:[Microsoft][ODBC SQL Server Driver][SQL Server]»
In m_strError : «Invalid column name ‘ColName'»
Cdbexception что это значит
Обсуждение продуктов компании и фреймворка Yii
Ошибка «CDbConnection failed to open the DB connection.»
Модераторы: Xpycm, Koduc
Правила форума
ВНИМАНИЕ! Форум не является средством гарантированной поддержки клиентов и пользователей. Поэтому на быстрый ответ тут рассчитывать не нужно, как и на ответ вообще. Сотрудники отвечают по мере своих возможностей.
Ошибка «CDbConnection failed to open the DB connection.»
Добрый день уважаемые форумчане и владельцы форума!
Re: Ошибка «CDbConnection failed to open the DB connection.»
Тут 3 причины, которые сразу приходят на ум:
1) либо не создана БД, к которой указываете соединение
2) либо у пользователя БД нет достаточных прав.
3) либо сами данные к БД некорректны
Re: Ошибка «CDbConnection failed to open the DB connection.»
Xpycm писал(а): Тут 3 причины, которые сразу приходят на ум:
1) либо не создана БД, к которой указываете соединение
2) либо у пользователя БД нет достаточных прав.
3) либо сами данные к БД некорректны
1) и 2) отпали это без вопросов все нормально, а вот с третьим. 🙂
Спасибо большое за отклик своевременно, причина оказалась банальной, у хостера нетипичное именование базы данных и пользователя базы данных, т.е. есть так называемый префикс для этих наименований (собственно префикс имя учетной записи) стоило только применить такие имена, всё сразу пошло и поехало как говорится!
В общем вопрос закрыт.
Re: Ошибка «CDbConnection failed to open the DB connection.»
Re: Ошибка «CDbConnection failed to open the DB connection.»
Re: Ошибка «CDbConnection failed to open the DB connection.»
Re: Ошибка «CDbConnection failed to open the DB connection.»
База данных должна быть создана.
Если это готовый продукт, почему нет «пустой» базы данных, чтобы начать работать?
Где в какой папке должна распологаться база данных и где можно почитать, о том как её создать и «прикрепить» к программе?
Re: Ошибка «CDbConnection failed to open the DB connection.»
alexaltair писал(а): База данных должна быть создана.
Если это готовый продукт, почему нет «пустой» базы данных, чтобы начать работать?
Где в какой папке должна распологаться база данных и где можно почитать, о том как её создать и «прикрепить» к программе?
Re: Ошибка «CDbConnection failed to open the DB connection.»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Класс Кдбексцептион
Представляет условие исключения, поступающее от классов базы данных.
Синтаксис
Члены
Открытые члены данных
| Имя | Описание |
|---|---|
| Кдбексцептион:: m_nRetCode | Содержит код возврата ODBC, имеющий тип РЕТКОДЕ. |
| Кдбексцептион:: m_strError | Содержит строку, описывающую ошибку в буквенно-цифровых терминах. |
| Кдбексцептион:: m_strStateNativeOrigin | Содержит строку, описывающую ошибку в терминах кодов ошибок, возвращаемых ODBC. |
Комментарии
Класс включает два общедоступных члена данных, которые можно использовать для определения причины исключения или для вывода текстового сообщения с описанием исключения. CDBException объекты создаются и создаются функциями членов классов базы данных.
Исключения — это случаи аномального выполнения, включающие условия, которые выходят за пределы контроля программы, например источник данных или ошибки ввода-вывода в сети. Ошибки, которые могут ожидаться в обычном процессе выполнения программы, обычно не считаются исключениями.
Дополнительные сведения об обработке исключений в целом и об CDBException объектах см. в статьях CDBException и исключения: исключения базы данных.
Иерархия наследования
Требования
Заголовок: афксдб. h
Кдбексцептион:: m_nRetCode
Содержит код ошибки ODBC типа РЕТКОДЕ, возвращаемый функцией интерфейса прикладного программирования (API) ODBC.
Комментарии
этот тип включает SQL с префиксами, определенными в ODBC, и AFX_SQL с префиксами, определенными классами базы данных. Для CDBException этот элемент будет содержать одно из следующих значений:
AFX_SQL_ERROR_API_CONFORMANCE драйвер для CDatabase::OpenEx вызова или не CDatabase::Open соответствует требуемому уровню соответствия API ODBC 1 (SQL_OAC_LEVEL1).
Не удалось подключиться к источнику данных AFX_SQL_ERROR_CONNECT_FAIL. Вы передали CDatabase указатель null конструктору набора записей и последующая попытка создать соединение на основе GetDefaultConnect сбоя.
AFX_SQL_ERROR_DATA_TRUNCATED вы запросили больше данных, чем вы указали в хранилище. Дополнительные сведения о увеличении указанного хранилища данных для CString CByteArray типов данных или см. в описании nMaxLength аргумента для CString и CByteArray в разделе «макросы и глобальные параметры».
AFX_SQL_ERROR_DYNASET_NOT_SUPPORTED вызов CRecordset::Open запроса динамического подмножества окончился неудачей. Драйвер не поддерживает динамические подмножества данных.
AFX_SQL_ERROR_FIELD_SCHEMA_MISMATCH тип функции RFX в DoFieldExchange переопределении несовместим с типом данных столбца в наборе записей.
AFX_SQL_ERROR_LOCK_MODE_NOT_SUPPORTED запрос на блокировку записей для обновления не может быть выполнен, так как драйвер ODBC не поддерживает блокировку.
AFX_SQL_ERROR_MULTIPLE_ROWS_AFFECTED вызывается CRecordset::Update или Delete для таблицы без уникального ключа и изменения нескольких записей.
AFX_SQL_ERROR_NO_CURRENT_RECORD попытке изменить или удалить ранее удаленную запись. После удаления необходимо перейти к новой текущей записи.
AFX_SQL_ERROR_NO_POSITIONED_UPDATES не удалось выполнить запрос динамического подмножества, так как драйвер ODBC не поддерживает позиционированные обновления.
AFX_SQL_ERROR_ODBC_LOAD_FAILED попытке загрузить ODBC.DLL не удалось; Windows не удалось найти или загрузить эту библиотеку DLL. Эта ошибка является неустранимой.
AFX_SQL_ERROR_ODBC_V2_REQUIRED не удалось выполнить запрос динамического подмножества, так как требуется драйвер ODBC, соответствующий уровню 2.
AFX_SQL_ERROR_RECORDSET_FORWARD_ONLY попытке прокрутки не удалась, так как источник данных не поддерживает обратную прокрутку.
Не удалось AFX_SQL_ERROR_SNAPSHOT_NOT_SUPPORTED вызов CRecordset::Open запроса на создание моментального снимка. Этот драйвер не поддерживает моментальные снимки. (Это происходит только в том случае, если отсутствует библиотека курсоров ODBC ODBCCURS.DLL.)
AFX_SQL_ERROR_SQL_CONFORMANCE драйвер для CDatabase::OpenEx вызова или не CDatabase::Open соответствует требуемому уровню совместимости ODBC SQL «Minimum» (SQL_OSC_MINIMUM).
AFX_SQL_ERROR_SQL_NO_TOTAL драйверу ODBC не удалось указать общий размер CLongBinary значения данных. Возможно, произошел сбой операции, так как не удалось предварительно выделить глобальный блок памяти.
AFX_SQL_ERROR_RECORDSET_READONLY попытке обновить набор записей, предназначенный только для чтения, или источник данных доступен только для чтения. Операции обновления не могут быть выполнены с набором записей или CDatabase объектом, с которым он связан.
Сбой функции SQL_ERROR. Сообщение об ошибке, возвращаемое функцией ODBC, SQLError сохраняется в элементе m_strError данных.
коды с префиксом SQL определяются ODBC. Коды с префиксом AFX определены в АФКСДБ. H, найдено в МФК\ИНКЛУДЕ.
Кдбексцептион:: m_strError
Содержит строку, описывающую ошибку, вызвавшую исключение.
Комментарии
Кдбексцептион:: m_strStateNativeOrigin
Содержит строку, описывающую ошибку, вызвавшую исключение.
Комментарии
Строка имеет вид «состояние:% s, native:% LD, источник:% s», где коды формата заменяются значениями, описывающими:
Собственный код ошибки, относящийся к источнику данных, возвращаемый в параметре пфнативиррор функции. Пример: 207.
Текст сообщения об ошибке, возвращаемый в параметре сзеррормсг функции. Это сообщение состоит из нескольких имен в квадратных скобках. Так как ошибка передается из источника пользователю, каждый компонент ODBC (источник данных, драйвер, диспетчер драйверов) добавляет свое собственное имя. Эти сведения помогают определить происхождение ошибки. пример: [Microsoft] [драйвер ODBC SQL Server] [SQL Server]
Дополнительные сведения о кодах, используемых для создания этой строки, см. в описании функции SqlError в справочнике программиста по ODBC.
Пример
из ODBC: «состояние: S0022, Native: 207, источник: [Microsoft] [драйвер ODBC SQL Server] [SQL Server] недопустимое имя столбца» ColName «»
в m_strStateNativeOrigin : «состояние: S0022, Native: 207, источник: [Microsoft] [драйвер ODBC SQL Server] [SQL Server]»
В m_strError : «Недопустимое имя столбца» colname «»
Cdbexception что это значит
У меня есть приложение, встроенное в MFC Vicual C ++, скомпилированное с использованием VS2010. У меня есть DSN в качестве подключения ODBC к электронной таблице Excel (через драйвер Excel).
Мое приложение запрашивает электронную таблицу каждую секунду. Если значение одной ячейки изменяется (в результате простого вычисления с участием других ячеек, получающих поток данных в реальном времени), приложение печатает новое значение, а затем возвращается к запросу об изменениях.
Приложение прекрасно работает в течение определенного периода времени, покорно печатая изменения в значении ячейки по мере поступления новых данных в ленту новостей. Затем он неизменно генерирует ошибку:
«Microsoft Jet Engine не удалось найти объект» (неизвестно) «Убедитесь, что объект существует, и что вы правильно написали его имя и путь».
Все пути к файлам даны в абсолютах.
Я предполагаю, что ошибка генерируется всякий раз, когда запрос в точности совпадает с обновлением содержимого ячейки. Я всегда могу генерировать одно и то же сообщение об ошибке и поведение, всегда, мгновенно, щелкая по обследованной ячейке и касаясь клавиши (начиная с редактирования ячейки, здесь путем наложения формулы ячейки).
Откроется диалоговое окно с ошибкой Afx. Если я «ок» и выберу файл Excel, приложение возвращается и запускается, пока не появится новая ошибка. Но если я выберу «Отмена», приложение закроется.
Если я закомментирую свой собственный список ошибок, этот диалог все равно появится.
Мне бы хотелось, чтобы приложение запускалось «без головы» и просто повторяло попытку подключения к базе данных.
Есть ли способ, которым я могу переопределить здесь?
Я понимаю, что Excel не поддается параллельному (многопользовательскому) доступу. Но мне не нужно иметь параллельный доступ — мне все равно, чтобы увидеть ячейку, когда «что-то еще» меняет ее. Я просто хочу (ждать и) повторить попытку.
Заранее извиняюсь за вопрос о технологии костей динозавра здесь. Тот факт, что мне нужно запрашивать оперативные данные, привел меня методом проб и ошибок к ODBC (libxl видит только данные файла и формулы, а не их значения).
Это только что произошло, но только один раз. Любая идея, почему?
0 / Users / johndoe / Desktop /Projects/websitetest/craft/app/framework/db/CDbCommand.php(396): CDbCommand-> queryInternal (‘fetchAll’, Array, Array)
. (большой, не релевантный трассировка стека)
Суть в том,что на локальном сервере у меня все хорошо работало,ошибки такой не было. Когда я залил на хостинг,то начала вылезать ошибка CDbConnection failed to open the DB connection. Уже 2 дня мучаюсь. Даже пробывал на другой хостинг залить,все тчетно. С соединением все норм, на локальном сервере у меня все отлично работало.Даже и не заню,что делать. PHP версия 7.1. Пробывал даже с 5.4
Cdbexception что это значит
Если у вас возникла ошибка с кодами ошибок cdbException на этом компьютере, вам следует проверить эти методы восстановления.
Синтаксис
Участники
Общедоступные элементы
Тип содержит два общедоступных элемента данных, которые любой сможет использовать для определения причины упущения или для вывода сообщения печати, описывающего одно исключение. CDBException – это материал, созданный поверх того, что создается функциями-членами, которые ссылаются на группы базы данных.
Исключения – это периодические выполнения, которые содержат условия USB, убивающие программу, например ошибки источника маркетинговой информации или сетевого ввода-вывода. Ошибки, которые можно ожидать увидеть при выполнении известной программы, обычно не являются исключением.
Иерархия наследования
Требования
CdbException :: M_nretcode
Содержит код ошибки RETCODE ODBC, возвращаемый функцией API ODBC (интерфейс прикладного программирования).
Этот тип по существу включает коды с префиксом SQL через определенные коды ODBC и коды с префиксом AFX_SQL через определенные классы базы данных. Для CDBException он по отдельности содержит одно из общепринятых значений:
Драйвер AFX_SQL_ERROR_API_CONFORMANCE как CDatabase :: OpenEx помимо запроса профессионалов CDatabase :: Open не обнаруживает ожидаемой цели совместимости ODBC API 1 (SQL_OAC_LEVEL1).
AFX_SQL_ERROR_DATA_TRUNCATED Вы запросили много данных, чем получили предоставленное пространство. Информацию о растущем количестве ошибок в хранилище данных для ваших типов документов CString или CByteArray можно найти в инструкции nMaxLength для RFX_Text и RFX_Binary в разделе “Макросы” и просто глобальные переменные.
AFX_SQL_ERROR_DYNASET_NOT_SUPPORTED Не удалось вызвать CRecordset :: Open для запроса хорошей динамической программы. Динсеты поддерживаются не только авиатором.
AFX_SQL_ERROR_FIELD_SCHEMA_MISMATCH Широкий спектр функций RFX рядом с DoFieldExchange Полная замена не соответствует типу данных строки вокруг набора записей.
AFX_SQL_ERROR_LOCK_MODE_NOT_SUPPORTED Ваш запрос блокировки записи не может быть современным, потому что ваш драйвер ODBC не поддерживает блокировку. Вы
afx_sql_error_multiple_rows_affected с помощью обнаружения CRecordset :: Update или Delete для таблицы без уникального ключа, а также изменения некоторых других записи.
AFX_SQL_ERROR_NO_CURRENT_RECORD Вы пытались изменить или удалить ранее удаленную запись. Вы должны перейти к новой активной записи после нескольких удалений.
AFX_SQL_ERROR_NO_POSITIONED_UPDATES Ваш запрос динамического набора не может быть удовлетворен, поскольку драйвер ODBC не поддерживает позиционированные обновления.
AFX_SQL_ERROR_ODBC_LOAD_FAILED Попытка загрузить ODBC. DLL Windows не может найти эту DLL или даже загрузить ее. Эту ошибку можно считать фатальной.
AFX_SQL_ERROR_ODBC_V2_REQUIRED Ваш запрос, предоставленный Dynaset, может завершиться ошибкой, поскольку требуется сертифицированный драйвер ODBC уровня 2.
AFX_SQL_ERROR_RECORDSET_FORWARD_ONLY Попытка поиска не удалась, поскольку форма данных завершена и не поддерживает прокрутку назад.
AFX_SQL_ERROR_SNAPSHOT_NOT_SUPPORTED Электронная почта для CRecordset :: Open с запросом моментального снимка failedsa. Драйвер не поддерживает фото. (Это следует делать только в том случае, если библиотека курсоров ODBC ODBCCURS.DLL недоступна.)
AFX_SQL_ERROR_RECORDSET_READONLY Покупатель пытается обновить набор записей, доступный только для чтения, или, возможно, первичный источник данных доступен только для чтения. При использовании предоставленного объекта CDatabase небольшие операции обновления могут выполняться с каким-то набором записей.
Коды, обычно определяемые ODBC, с префиксом SQL. Коды с префиксом AFX можно определить в AFXDB.H, который выбран в MFC INCLUDE.
CDBException :: M_strError
CDBException :: M_strStateNativeOrigin
Строка полностью означает «Состояние:% s, Источник:% ld, Источник:% s», в форматах коды последовательно заменяются повышениями, которые, в частности, описывают:
Дополнительные сведения о кодах исключительных ситуаций, реализованных для создания этой строки, см. в наиболее связанной функции SQLError в Справочнике по программированию ODBC.
Пример
Из ODBC: «Статус: S0022, Собственный: 207, Источник: [Microsoft] [Драйвер ODBC SQL] [SQL Server] Недопустимое имя столбца« ColName »»





