Получение списка таблиц и просмотров в БД ADO
(defun ru-ado-get-tables-and-views (connection_object
/
temp_object
tables_list
tmp_list
views_list
)
(setq record_set_object (vlax-create-object "ADODB.RecordSet"))
(if (vl-catch-all-error-p
(setq record_set_object
(vl-catch-all-apply
'vlax-invoke-method
(list
connection_object
"OpenSchema"
ru-ado-const-adschematables
) ;_ end of list
) ;_ end of vl-catch-all-apply
) ;_ end of setq
) ;_ end of vl-catch-all-error-p
(ru-ado-error-messages
(ru-ado-error-handler temp_object connection_object)
sql
) ;_ end of ru-ado-error-messages
(progn
(setq
tmp_list
(ru-list-Douglas-Wilson-transpose
(mapcar
(function (lambda (InputList)
(mapcar (function (lambda (Item)
(ru-ado-variant-to-value Item)
) ;_ end of lambda
) ;_ end of function
InputList
) ;_ end of mapcar
) ;_ end of lambda
) ;_ end of function
(vlax-safearray->list
(vlax-variant-value
(vlax-invoke-method
record_set_object
"GetRows"
ru-ado-const-adgetrowsrest
) ;_ end of vlax-invoke-method
) ;_ end of vlax-variant-value
) ;_ end of vlax-safearray->list
) ;_ end of mapcar
) ;_ end of ru-list-Douglas-Wilson-transpose
) ;_ end of setq
(foreach Item tmp_list
(cond
((= (nth 3 Item) "VIEW")
(setq views_list (cons (nth 2 Item) views_list))
)
((= (nth 3 Item) "TABLE")
(setq tables_list (cons (nth 2 Item) tables_list))
)
) ;_ end of cond
) ;_ end of foreach
(vlax-invoke-method record_set_object "Close")
) ;_ end of progn
) ;_ end of if
(vlax-release-object record_set_object)
(list tables_list views_list)
) ;_ end of defun