Источник:
http://www.cad.dp.ua/sovets/ase.php
В AutoCAD для связи с базами данных используется Расширение AutoCAD по SQL-интерфейтсу (ASE). ASE обеспечивает двухсторонний интерфейс для двухсторонней передачи данных между AutoCAD и внешними базами данных, и это позволяет AutoCAD связывать, или компоновать, не графические атрибуты, сохраненные во внешних программах, таких как dBASE III, Oracle, Access, с графическими объектами в рисунке AutoCAD.
В этой статье будет рассмотрено:
- Присоединение базы данных в AutoCAD R14.
- Преобразование ASE-связей AutoCAD R12 в формат ASE для AutoCAD R14.
- Использование ASE в AutoCAD R14.
- Специфика работы в ASE в AutoCAD 2000
Для начала немного истории. В ранних версиях AutoCAD был представлени объект, называемый атрибутом, который позволяет сохранять и восстанавливать текстовые данные. Однако это средство можно было применять только в блочных примитивах. В более поздних версиях AutoCAD были представленны расширенные данные примитива (Extended Entyty Data - EED), что позволило присоединять текстовые данные к любому объекту AutoCAD/ Расширенные данные примитива имеют два ограничения. Во-первых, можно сохранять только 16 Kb. для каждого объекта, во-вторых, это увеличивает размер файла чертежа, что снижает производительность, особенно, если чертеж содержит тысячи объектов.
Преимущетва ASE состоят в следующем:
Особенности SQL
В AutoCAD R14 и AutoCAD 2000 в отличии от AutoCAD R12 используется стандарт SQL2. В отличии от стандартной SQL-модели, основанной на СУБД, базах данных и таблицах, в SQL2 используются среды, каталоги, схемы и таблицы (см. рис. 1).
В SQL2 система управления базами данных осущетвляет контроль за данными. Каталог представляет собой одной или более схем, а схема состоит из одной или более таблиц баз данных, содержащихся в одном месте. Таблица содержит информацию базы данных, организованную в строках и колонках, которые называются полями и записями. В SQL2 среда включает СУБД, базы данных, к которым она может обращаться, а также пользователей и программы, которые также могут к этим базам данных. Среды являются частью иерархии, включающей каталоги, схемы и таблицы.
Присоединение базы данных в AutoCAD R14.
После формирования связей с объектами AutoCAD эти данные становятся доступными для использования в ряде ASE-функций, включая:
Рассмотрим связь AutoCAD R14 с внешними базами в форматах dBase III+ и Microsoft Access.
dBase III
Драйвер для dBase III+ представляет собой драйвер низкого уровня, который использует SQL2-интерпретатор для обращения к базе данных. Драйверы низкого уровня взаимодействуют с данными непосредственно, что означает необходимость лишь файла базы данных (.dbf) в формате dBase III+. Для использования базы данных dBase III+ в AutoCAD необходимо применить редактор конфигурации внешних баз данных (asicfg.exe) для установки местонахождения планируемых для работы файлов базы данных.
Связывание с базой данных dBase III+.
В качестве примера используем DBF-файлы, представленные в качестве примера в каталоге \sample\dbf\ родительского каталога AutoCAD.
Убедимся, что для AutoCAD установленны компоненты External Database (см. перечень файлов выше).
Сконфигурируем внешнюю базу данных используя asicfg.exe ("Пуск" / "Программы" / "AutoCAD R14" / "External Database Configuration"). Отображается диалоговое окно "External Database Configuration" (см. рис. 2). Щелкните на кнопке "Add". Отобразится окно Select DBMS for new Environment (см. рис. 3), которое позволяет выбрать СУБД для новой среды. В поле списка "DBMS List" выберите DBaseIII. В текстовом поле "Environment Name" (имя окружения) введите DB3_R14, а в текстовом поле "Environment Description" (Описание окружения) - R14 Simple Database. Щелкните на кнопке "OK".
Отображается диалоговое окно "Environment:DB3_R14(DB3DRV)" (см. рис. 4). В закладке "Catalog", в одноименной секции в текстовом поле "Name" введите Samples, а в текстовом поле "Path" - каталог предидущего уровня для файла базы данных. Можно воспользоваться кнопкой "Browse" для облегчения отождествления с соответствующим каталогом. Щелкните на кнопке "New", что бы сохранить информацию о каталоге.Назначаемое для каталога имя появляется в диалоговом окне Administration (команда AEADMIN), как один из выбираемых каталогов. Можно создавать многочисленные каталоги, каждый из которых будет предназначен для определенного набора данных. Не допускаются имена каталогов, начинающиеся с числового или не буквенно-цифрового символа (к примеру "1stfloor" или " frstfloor"). В тоже время числа и не буквенно-цифровые символы можно использовать любом месте имени, кроме начала ("floor1" и "first floor" допустимы).
Перейдем к текстовому полю "Name" в секции "Schema" и введем R14_DB3 в качестве имени схемы. Имена схемы перечисляются в диалоговом окне команды ASEADMIN при выборе Schemas. Допустимо, что бы имя подкаталога использовалось в качестве имени схемы. Далее перейдем к текстовому полю "Path" и введем DBF в качестве имени схемы ( каталог расположения базы). Щелкните на кнопке "New", для сохранения новой схемы.
Выберите закладку Common из диалогового окна "Environment:DB3_R14(DB3DRV)", что бы определить язык и заданные по умолчанию каталог и схему (см. рис. 2). В качестве языка выберите English_United States. Нажмите на кнопку "Ok" для принятия внесенных изменений.
После этого произойдет возврат в диалоговое окно "External Database Configuration". Нажмите на кнопку "Test" для проверки соединения с базой dBaseIII. Отображается диалоговое окно "Login". Оставьте поля "User Name" и "Password" пустыми. Щелкните на кнопке "Connect" для запуска теста. После сообщение о успешном соединении, щелкниет на кнопке "Done", а затем на "OK" для выхода из конфигуратора.
Запускаем AutoCAD. Вводим ASEADMIN в командной строке. Отобразиться диалоговое окно "Administration" (см. рис. 7). В поле списка "Database Objects" выберите DB3_R14 и щелкните на кнопке "Connect". В диалоговом окне "Connect to Environment" введите свое имя и пароль (не обязательно), а затем щелкните на "Ok". Поочередно выберите кнопки "Catalog", "Schema" и "Table" для того что бы указать соответственно каталог, схему и таблицу, к которым вы желаете обратиться.
Microsoft Access
В отличии от драйверов низкого уровня, используемых для связания с AutoCAD баз dBase III+ и Oracle, для связи с Microsoft Access используются ODBC-драйвера. ODBC (Microsoft Open Database Connectivity) - это реализация SQL-основанного интерфеса баз данных, разработанная специально для предоставления общего доступа к данным между приложениями Windows. ODBS-драйвера требуют двух частей - поддерживаемого AutoCAD ODBC-драйвера и диспетчера ODBC-драйвера, установленного в опреационной системе. ODBC-драйвер AutoCAD связывается с диспетчером ODBC-драйвера, который в свою очередь образует связь с приложением базы данных. Таким образом для нормальной работы с базами данных Microsift Access в AutoCAD требуется установленный 32-разрядный ODBC-диспетчер от Microsoft.
Связывание с базой данных Microsoft Access.
Имя поля | Тип данных |
CATALOG_NAME | TEXT |
SCHEMA_NAME | TEXT |
CATALOG_NAME | SCHEMA_NAME |
NULL | c:\access\samples\northwind |
Имя поля | Тип данных |
TABLE_CATALOG | TEXT |
TABLE_SCHEMA | TEXT |
TABLE_NAME | TEXT |
TABLE_TYPE | TEXT |
TABLE_CATALOG | TABLE_SCHEMA | TABLE_NAME | TABLE_TYPE |
NULL | c:\access\samples\northwind | customer | BASE TABLE |
NULL | c:\access\samples\northwind | orders | BASE TABLE |
Запускаем AutoCAD. Вводим ASEADMIN в командной строке. Отобразиться диалоговое окно "Administration". В поле списка "Database Objects" выберите ODBC_ACCESS и щелкните на кнопке "Connect". Появится диалоговое окно "Connect to Environment", запрашивающеие имя и пароль, оставим эти поля пустыми и щелкнем на "Ok". Обратите внимание, что в появившемся затем окне "Administration" кнопка "Catalog" остается не подсвеченной, посколько Microsift Access не поддерживает эту возможность SQL2. Выберем кнопку Schema в зоне Database Object Selection. Появится файл (или файлы) базы данных, перечисленные в таблице Schemata в ссылочной базе данных, которую мы создали ранее. Подсветим одну из перечисленных баз данных и выберем кнопку переключателя Table. Появится выборка таблиц баз данных, которые были представлены в таблице Table в ссылочной базе данных. Выберите таблицу, к которой хотите обратиться.
Преобразование ASE-связей AutoCAD R12 в формат ASE для AutoCAD R14.
В диалоговом окне "External Database Configuration" щелкнем на кнопке "Add". В появившемся диалоговом окне "Select DBMS for new Environment" в списке "DBMS List" выберем dBase III, в поле "Environment Name:" наберем R12_DB3, а в поле "Environment Description:" - Convert R12 links. Щелкнем на "Ok". Отобразится окно "Environment:R12_DB3(DB3DRV)". Секция"Catalog", в текстовом поле "Name" набираем: R12DB3, в текстовом поле "Path" - C:\ACAD12\TUTORIAL. Нажимаем на кнопку "New", чтобы сохранить новое имя каталога. Переходим к секции "Schema". В тексовом поле "Name" вводим dbf, в текстовом поле "Path" вводим dbf. Щелкнем на кнопке "New" чтобы сохранить имя схемы, а затем на "Ok". VМы возвращаемся в окно "External Database Configuration" где выбираем закладку "Convert R12 Links" (рис. 10). В области "R12 Link", в поле "DMBS" набираем dBase3, в поле "Database" набираем asetut, в поле "Table" - employee. В области "R14 Link", в поле "Environment" набираем R12_DB3, в поле "Catalog" набираем R12DB3, в поле "Schema" - dbf, в поле "Table" - employee, в поле "Link Path Name" - empnum. Щелкнем на кнопке "New", чтобы сохранить преобразование R12-связи в R14-связь. Появляется диалоговое окно ASI Editor, запрашивашщее подтверждение на проведение преобразования (рис. 11). Нажмем на "Ok" для подтверждения. Затем нажмем на "Ok" для выхода из конфигуратора базы данных.
Загружаем AutoCAD, открываем файл c:\acad12\tutorial\asetut.dwg. Вводим в коммандной строке ASEADMIN. Отображается окно "ASE Warning". В нем перечисляются ошибки, вызванных существованием форматированных связей AutoCAD R12 в рисунке. Игнорируем ошибки и нажимаем на кнопку "Close". Отображается диалоговое окно "Administration". В поле списка "Database Objects" выбираем среду R12_DB3 и нажимаем на кнопке "Connect". В отображаемом затем окне "Connect to Environment" оставляем поля имени и пароля пустыми и просто нажимаем на "Ok". Опять отображается окно "Administration". В области "Database Object Selection" щелкнем на кнопке "Catalog" и подсветим R12_DB3 в поле списка "Database Objects". Далее щелкнем на кнопке "Schema" и подсветим DBF, щелкнем на кнопке "Table", подсветим таблицу EMPLOYEE и нажмем на кнопке Synchronize. Появится диалоговое окно с предупреждающим сообщением (рис. 12). Щелкните на кнопке "Select All", что бы выбрать все сообщения, а затем на кнопке "Synchronize". Если никакое предупреждающее сообщение не отображается, щелкнем на кнопке "Close". Данная процедура необходима для преобразования баз, а так же удаления всех недопустимых связей. Емли никаких предупреждающих сообщений не выдается, то вся информация из формата R12 была преобразована успешно. Каждая таблица должна быть синхронизированна. Следовательно надо повторить все приведенные выше операции как для таблицы COMPUTER, так и для таблицы INVENTRY, которые также присутствуют в данном примере, соответственно заменяя имя таблицы EPLOYEE на соответствующее.
Использование ASE в AutoCAD R14.
После установки связи с базой данных в рисунке AutoCAD следует рассмотреть следующий шаг - как объединять и совместно использовать объекты AutoCAD и внешнюю базу данных. Условно можно разбить на следующие этапы:Возьмем в качестве примера рисунок asesmp.dwg из каталога Sample стандартной поставки AutoCAD R14. Запустим конфигуратор внешней базы данных и сконфигурируем базы в каталоге \acad.r14\samples\dbf как рассказано в разделе "связь AutoCAD R14 с внешними базами dBase III". После этого запустим AutoCAD и присоединим базу с помощью команды ASEADMIN, как показано в том же разделе.
При связывании объекта AutoCAD с данными во внешней БД указание соответствующих строк или строки в таблице базы данных производится с помощью ключа (key). Ключ фактически определяет колонку или набор колонок в таблице и требуемое значение этой колонки (колонок). Ключ используется для поиска и выборки из базы необходимой информации. Например, если ключевой колонкой является INV_ID и значение ключа равно 173, это значит, что в соответствующей данному ключу строке таблицы колонка INV_ID имеет значение 173. Таким образом, ключ определяет одну или несколько строк базы данных, связываемых с объектом. Уникальным называется ключ, соответствующий только одной строке таблицы. Неуникальный ключ может определять более одной строки таблицы. Уникальность ключа зависит от находящихся в таблице данных.
Маршрут связи (Link Path) идентифицирует иерархическую структуру объектов базы данных: среда.каталог.схема.таблица. Имя маршрута связи (link path name) определяет ключевые колонки текущей таблицы, соответствующей данному маршруту.Имя маршрута связи позволяет различать между собой различные зарегистрированные экземпляры одной и той же таблицы. Рекомендуется, чтобы во всех рисунках, принадлежащих одному проекту, использовалась унифицированная система именования ключевых колонок м маршрутов связей; это упрощает доступ к совместно используемым БД.
Выберем в колонке "Database object selection" каталог Samles, схему R14_DB3 и таблицу COMPUTERS. Щелкнем на кнопке "Link Path Name", отобразиться диалоговое окно Link Path Names (рис. 13). Определим ключевое поле CPU, выбрав соответствующую колонку таблицы в окне "Key Selection" и нажав на кнопку "On" справа возле строки CPU. Определим маршрут связи, набрав в колонке "Link Path" в поле "New" CFG_CPU. Нажмем на кнопку "New", а затем закроем окно, нажав на кнопку "Close".
Одно из наиболее мощных средств ASE - это связь между графическим элементом и строкой в таблице. Эта связь позволяет создать двухсторонний поток - данные, измененные в таблице, могут обновлять значения отображаемых в рисунке атрибутов и наоборот. Можно связывать многочисленные объекты с одной строкой, а можно связывать многочисленные строки с одним и тем же объектом.
Введем ASEROWS в командной строке AutoCAD. В колонке "Select Rows" набираем CPU='486/33' и нажимаем Enter. Отображается строка базы COMPUTER где встречается соответствующее значение (как показано на рис. 14). Если данное значение встречается несколько раз, с помощью кнопок "Next", "Prior", "First" и "Last" можно выбрать необходимую строку. Далее нажимаем кнопку "New Link" в левом нижнем углу окна. Диалоговое окно закрывается и в командной строке появляется запрос на выбор графического элемента, с которым необходимо связать данную строку. После выбора объекта (объектов) вновь отображжается окно "ASEROWS" в левом нижнем углу которого указывается количество созданных связей. Если необходимо связать другие графические объекты, данные шаги можно повторить.
Для проверки создания связи введите ASELINKS в командной строке и выберите объект, который содержит связь. Отобразится окно "Links", в котором щелкните на кнопке "Row" чтобы просмотреть связанную информацию базы (рис. 4).После создания связи между внешней базой данных и рисунком можно запросить ASE отобразить данные. В данном случае допускается отображать данные колонок базы на чертеже, отображать данные на основании выбора графических объектов, или выбирать примитивы на основании запроса к таблице.
Снова наберем ASEROWS в командной строке и в качестве критерия поиска наберем CPU='286/12' . На экране появиться соответствующая запись базы данных. Щелкнем на кнопке "Make DA" для создания отображаемых атрибутов. В диалоговом окне "Make Displayable Attribute" (рис. 16) с помощью кнопки "Add" выберем поля базы, которые должны отображаться на чертеже. Далее скорректируем характеристики текстовых атрибутов (шрифт, выравнивание, высота и т.д.) в области "Format". После этого щелкнем на "Ok". Окно закроется и на чертеже укажем место вставки атрибутов. Диалоговое окно отобразиться снова. Щелкнем на "Ok", чтобы выйти из него.
После выполнения связывания с базой данных, информация из БД доступна для редактирования в AutoCAD, без потребости в использовании самого приложения СУБД.
Предположим нам нужно завети в базу, присоединенную к чертежу asesmp.dwg новый компьютер. Наберем в командной строке ASEROWS. В области "Cursor State" переставим переключатель в позицию "Updatable", а затем щелкнем на кнопке "Edit". Отобразиться окно "Edit Row", которое служит шаблоном, перечисляющим все колонки, в которые необходимо ввести информацию (рис. 17). Введите данные соответствующей колонки в текстовое поле "Value" и нажмиите Enter. Повторите данную операцию для каждой колонки, пока не заполнится шаблон. Щелкнем на кнопку "Insert". В нижнй части диалогового окна отображается сообщение "Row is inserted", что подтверждает вставку строки.
Удаления строки из базы данных осуществляется следующим образом: в окне ASEROWS в области "Cursor State" переставим переключатель в позицию "Updatable", в области SELECT Rows щелкнем на кнопке "Open Cursor", с помощью кнопки "Next" выбираем строку для удаления, щелкаем на кнопке "Edit", в отображаемом затем окне нажимаем на кнопку "Delete", отображается сообщение о удалении строки в базе.
С помощью команды ASESQLED (рис. 17) можно осущетвлять поиск данных, используя SQL-инструкции в качестве критериев.
Краткая справка по SQL:
Предписание | Функция |
---|---|
Манипулирование данными | |
Select | Выборка данных из базы |
Insert | Добавление новых строк в базу данных |
Delete | Удаление строк из базы данных |
Update | Модификация существующих данных |
Определение | |
Create Table | Добавляет новую таблицу в базе данных |
Drop Table | Удавляет таблицу из базы данных |
Alter Table | Изменяет структуру существующей таблицы |
Create Index | Формирует индех для колонки |
Drop Index | Удаляет индекс для колонки |
Примеры использования SQL-предписаний:
Специфика работы в ASE в AutoCAD 2000
AutoCAD 2000 осуществляет связь с базами данных с помощью Microsoft ODBC (Open Database Connectivity) драйверов и внутренней OLE DB. Поддерживаемые СУБД:
В отличии от R14 в AutoCAD 2000 все основные функции ASE реализованы через единственную команду DbConnect (рис.18), в чем легко убедится по таблице ниже:
Команда AutoCAD R14 | Команда AutoCAD 2000 | Меню в AutoCAD 2000 |
---|---|---|
ASEADMIN | DBCONNECT | Tools/dbConnect Manager |
ASEEXPORT | DBCONNECT | dbConnect/Links/Export Links |
ASELINKS | DBCONNECT | dbConnect/Templates/New Link Template; Data View/Link |
ASEROWS | DBCONNECT | dbConnect/View Data/View External Table; dbConnect/View Data/Edit External Table; dbConnect/View Data/View Linked Table; dbConnect/View Data/Edit Linked Table |
ASESELECT | DBCONNECT | dbConnect/Links/Link Select |
ASEQLED | DBCONNECT | dbConnect/Queries/New Query on an External Table; dbConnect/Queries/New Query on a Link Template; dbConnect/Queries/Edit Query; dbConnect/Queries/Execute Query; dbConnect/Queries/Import Query Set; dbConnect/Queries/Export Query Set |
Как показано на рис. 18 теперь можно визуально оценивать структуру присоединенной базы данных - схемы, таблицы, запросы и т.п. При этом отображаемую информацию можно разделить следующим образом: Drawing Nodes - отображает каждый открытый чертеж и ассоциированные с ним базы. Data Sources Node - отображает все сконфигурированные среды, каталоги, схемы и таблицы в системе.
Рассмотрим принципы настройки базы данных в Windows c помощью Microsoft ODBC (Open Database Connectivity) и OLE DB на примере Microsoft Access:
Если Вы принимали заданный по умолчанию каталог для установки AutoCAD , эти файлы размещены в c:\Program Files\AutoCAD 2000\Sample.
Не используйте точки в названии источника данных. AutoCAD не может обращаться к базам данных, которые имеют точки в именах.
Если соединение терпит неудачу, проверите, что установки правильны. Например, орфографические ошибки и регистр символов могут вызывать неудачу соединения.
Работа с данными в AutoCAD 2000.
В верхней части панели DbConnect находяться кнопки, отвечающие за операции с таблицами: View Table, Edit Table, New Query, New Link Temlate, New Label Template. На рис. 20 показано окно View/Edit Table. Вызов окна редактирования ( просмотра ) базы можно также осуществить двойным щелчком по соответствующей базе на панели DbConnect.
Понятие Link Template соответствует понятию Link Path Name в AutoCAD R14, а Label - соответствует Displayable attribut в AutoCAD R14.
Диалоговое окно The Label Template - это модифицированная версия Multiline Text Editor. Две дополнительных панели предназначены для создания меток.
Вы также можете вводить любой дополнитеоьный статический текст, который может преджествовать или следовать за меткой, непосредственно в диалоговом окне Label Template. Для примера, вы можете создать шаблон метки которыйиспользует поля Room Number из таблицы room. Если вы желаете, чтобы имя поля преджествовало значению поля, когда метка уже создана, введите "Room Number:" в диалоговом окне Label Template перед выбором поля из списка Field list.
Окно редактора запросов (Query Editor) (рис. 24) создавать SQL-запросы на четырех уровнях сложности:
Вы можете начинать создавать запрос в панели и продолжить это или прибавлять дополнительные параметры в других панелях. Вы могли бы, например, начинать создавать простой запрос в Quick Query и впоследствии решить, что Вы хотели бы прибавить дополнительное условие, используя панель Query Builder. Когда Вы выбирали панель Query Builder, она показывает значения, котрые Вы первоначально выбрали используя панель Quick Query, и Вы можете добавить дополнительные условия к запросу. Однако, Вы не можете двигаться в обратном направлении по панелям , если только Вы изменили запрос в одной из более поздних панелей, потому что каждая последующая панель обеспечивает дополнительные функции, которые не доступны в предыдущих панелях. Если Вы попытаетесь двигаться в обратном направлении по панелям после изменения запроса, AutoCAD предупредит Вас, что запрос будет повторно установлен к его первоначальными значениям.
Данная схема очень палезна если вы плохо знакомы с SQL синтаксисом. Например, Вы можете создать запрос, используя панель Quick Query, а затем выбрать панель SQL Query, чтобы увидеть, как выглядит запрос на языке SQL.
Совместимость ASE в AutoCAD 2000 с предыдущими версиями AutoCAD.
Вы должны определить среду, таблицу, и имя пути связи для всех связей которые Вы желаете преобразовать. Catalog и Schema - необязательные параметры, которые не требуются всеми системами управления базами данных.
Связи, которые Вы создали в AutoCAD 2000, могут быть преобразованы в связи AutoCAD R14 или R13, но не могут быть преобразованы в формат R12. Когда Вы используете SAVEAS, чтобы сохранить чертеж AutoCAD 2000, который содержит связи, в формат R13 или R14, связи автоматически преобразуются в формат сохраняемого чертежа.