Создаем присоединение
к MS-Access или MS-SQL Server Databases
;;;****************************************************************************
;;; Присоединение к MS-Access Database с использованием ODBC (не требуется DSN)
;;; Например, (DbConnect_MSAccess1 "d:/dbfiles/products.mdb")
;;;****************************************************************************
;;;******************************************************************
;;; Присоединение к MS-Access Database используя JET 3.51
;;; Например, (DbConnect_MSAccess2 "d:/dbfiles/products.mdb")
;;;******************************************************************
;;;******************************************************************
;;; Присоединение к MS-SQL Database без использования ODBC
;;; Например, (DbConnect_MSSQL2 "SQLSERVER2" "pr_catalog1" "sa" "")
;;;******************************************************************
;; Цикл через все ошибки ADO ...
(while (< (setq ErrorNumber (1+ ErrorNumber)) ErrorCount)
;; Получаем ссылку на объект текущей ошибки
(setq ErrorObject (vlax-Get-Property
ErrorsObject "Item" ErrorNumber)
ErrorList
nil ;; Очищаем список элементов этой ошибки
)
;; Цикл через все возможные элементы ошибок данной ошибки
(foreach ErrorProperty
'("Description" "HelpContext"
"HelpFile"
"NativeError" "Number"
"SQLState" "Source"
)
;; Получаем значение текущего элемента.
Если это число ......
(if
(numberp
(setq ErrorValue
(vlax-Get-Property
ErrorObject ErrorProperty)
))
;; Преобразуем в строку
(setq ErrorValue (itoa ErrorValue))
)
;; И добавляем в список
(setq ErrorList (cons (cons ErrorProperty
ErrorValue) ErrorList))
); end foreach
;; Добавляем список для текущей ошибки и возвращаем
значениеvalue
(setq ReturnList (cons (reverse ErrorList) ReturnList))
); end while
;; Устанавливаем возвращемеое значение в правильном порядке
(reverse ReturnList)
); defun
Выводит список ошибок, сгенерированный
функцией ErrorProcessor function. Функция ErrorProcessor должна вызываться,
котгда используются диалоги DCL и ErrorPrinter после показа диалогового окна.