Темы сайта
Интегрированная система ruCAD - приложение к базовой системе AutoCAD.

Система ruCAD - это приложение строительного профиля в широком понимании, то есть предназначенная для автоматизации строительного проектирования, реконструкции и технического перевооружения любых зданий и сооружений.В отличие от других систем, ориентированных на конкретную область применения, в ruCAD включены средства для комплексной разработки проектной документации наиболее распространенных разделов проекта, выполняемых во всех проектных организациях.
Система управления контентом MODx
Ограничения
В соответствии с Договором между издательством и авторами мы не имеем права полностью публиковать в Интернет материалы книги.

Но, в пределах установленной квоты, будут публиковаться отдельные главы. Кроме того, на сайте будут размещаться материалы, не вошедшие в книгу и полные версии сокращенных по техническим причинам глав.

Так помечены материалы, не опубликованные на сайте!

Новинки
Книга была выпущена в 2004 году. С тех пор многое изменилось - появились версии AutoCAD 2005, 2006, 2007, 2008.

Система ruCAD была выпущена в свет, появились замечания и предложения пользователей. Да и у нас появились новые представления по некоторым вопросам.

Поэтому в материалы книги, публикуемые на сайте, мы вносим дополнительные замечания, выделяемые так:
Так выделяются дополнительные замечания, комментарии, указания!
Где спросить
На нашем сайте было уже несколько форумов. На них было зарегистрировано более 400 посетителей, а многие заходили просто так, в гости. Но сейчас мы вывели форумы из открытого режима. Подробнее о наших форумах
Если очень нужно что-то узнать о ruCAD именно в форумном формате, заходите на Форум сайта
AutoCAD и проектирование
Внимание!
Технические решения и исходные тексты, публикуемые на сайте, могут быть устаревшими!

В таком виде они были во время написания книги, но с тех пор прошло несколько лет, в систему было внесено множество изменений и дополнений.


Соединение с базой данных ADO



(defun ru-ado-connect-to-db (connect_string
                             user_name
                             password
                             /
                             connection_object
                             connection_parsing_property
                             connection_properties
                             result
                             temp_object
                            )
;;; Создаем объект соединения с базой данных
  (setq connection_object (vlax-create-object "ADODB.Connection"))
;;; Пытаемся открыть базу данных, отлавливая возможные ошибки
  (if (vl-catch-all-error-p
        (setq temp_object
               (vl-catch-all-apply
                 'vlax-invoke-method
                 (list connection_object
                       "Open"
                       connect_string
                       user_name
                       password
                       ru-ado-const-adconnectunspecified
                 ) ;_ end of list
               ) ;_ end of vl-catch-all-apply
        ) ;_ end of setq
      ) ;_ end of vl-catch-all-error-p
    (progn
      ;; Если обнаружены ошибки, обрабатываем их
      (ru-ado-error-messages
        (ru-ado-error-handler temp_object connection_object)
        NIL
      ) ;_ end of ru-ado-error-messages
      (vlax-release-object connection_object)
    ) ;_ end of progn
    (setq result connection_object)
  ) ;_ end of if
  ;; Дополнительно
  (if result
    (progn
      (setq connection_properties
             (vlax-get-property
               result
               "Properties"
             ) ;_ end of vlax-get-property
      ) ;_ end of setq
      ;;Если в свойствах есть  "Jet OLEDB:ODBC Parsing"
      (if (not (vl-catch-all-error-p
                 (setq connection_parsing_property
                        (vl-catch-all-apply
                          'vlax-get-property
                          (list
                            connection_properties
                            "ITEM"
                            "Jet OLEDB:ODBC Parsing"
                          ) ;_ end of list
                        ) ;_ end of vl-catch-all-apply
                 ) ;_ end of setq
               ) ;_ end of vl-catch-all-error-p
          ) ;_ end of not
        ;; устанавливаемe "Jet OLEDB:ODBC Parsing" в
        ;; "true" для использования в Jet engine двойных кавычек
        ;; вокруг идентификаторов
        (vlax-put-property
          connection_parsing_property
          "VALUE"
          :vlax-true
        ) ;_ end of vlax-put-property
      ) ;_ end of if
      ;; Удаляем ненужные объекты
      (if (= 'VLA-OBJECT (type connection_parsing_property))
        (vlax-release-object connection_parsing_property)
      ) ;_ end of if
      (if (= 'VLA-OBJECT (type connection_properties))
        (vlax-release-object connection_properties)
      ) ;_ end of if
    ) ;_ end of progn
  ) ;_ end of if
  result
) ;_ end of defun

24-07-2004 23:34:12