Дата публикации: 19.04.2010
Изменения в парсере SQL-запросов. Поддержка SQLSTATE и NativeError
Измeнения в парсере SQL запросов (v3)
- Поддержка терминатора запросов «;»
- Провайдер генерирует ошибку, если обнаружит несколько SQL-запросов в одном тексте команды
- Провайдер генерирует ошибку, если обнаружит пустой запрос в тексте команды. Пример: «select * from RDB$DATABASE;/*empty stmt*/;»
- Добавлена явная поддержка запросов:
- «GRANT …
- «REVOKE …»
- «SET GENERATOR …»
- «SET STATISTICS …»
Добавлены новые свойства набора рядов (v3)
Поддержка SQLSTATE и NativeError (v3)
- При обработке ошибок сервера, провайдер создает CustomErrorObject, через который можно получать SQLSTATE (5-ти символьная строка со стандартизированным кодом ошибки) и NativeError (ISC Error Code).
- Эта функциональность доступна для всех версий FB/IB/YA и не зависит от клиентской библиотеки.
- За основу алгоритмов и таблиц формирования SQLSTATE взят код из Firebird 2.5 code
- Провайдер поддерживает новый элемент статус вектора FB2.5 — isc_arg_sqlstate.
При работе через ADODB, SQLSTATE и NativeError доступны через коллекцию ошибок подключения:
- ADODB.Connection->Errors->Error->SQLState
- ADODB.Connection->Errors->Error->NativeError
Например:
option explicit dim cn set cn = CreateObject("ADODB.Connection") cn.Provider="LCPI.IBProvider.3" cn.Properties("location") = "localhost:d:\database\employee.fdb" cn.Properties("user id") ="SYSDBA" cn.Properties("password") ="masterkey" cn.Properties("auto_commit")=true call cn.Open() on error resume next call cn.Execute("DROP TABLE ABRA_KADABRA") on error goto 0 dim i for i=0 to cn.Errors.Count-1 wscript.echo "--- ERROR: "&cstr(i+1) wscript.echo "SQLState : "&cn.Errors.Item(i).SQLSTATE wscript.echo "NativeError : "&cn.Errors.Item(i).NativeError next
Вывод:
--- ERROR: 1 SQLState : 42S02 NativeError : 336397206 <-- ISC CODE: isc_dsql_table_not_found
Дата публикации: 19.04.2010. Права на материал принадлежат: IBProvider. При перепечатке ссылка на сайт https://www.ibprovider.com/rus обязательна.