Schöck
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Взаимодействие с таблицей БД

Взаимодействие с таблицей БД

Ответ
Поиск в этой теме
Непрочитано 22.05.2019, 10:25
Взаимодействие с таблицей БД
sergeyVostok
 
Регистрация: 15.03.2019
Сообщений: 18

После того как мы создали в диспетчере подключения к БД (вызывается Ctrl + 6) подключение к нашей БД, можно открыть таблицу БД. Для просмотра или редактирования. Я, как пользователь, могу осуществлять поиск по этой таблице. После того как найдена нужная строка (элемент БД) необходимо перенести строковые данные одного из полей строки в расширенные данные примитива AutoCAD. Это можно сделать, написав простой диалог на DCL, в котором можно указывать ID-номер найденной записи, после чего программа на LISP делает запрос к БД и читает и заносит необходимые данные из БД в примитив. Но это как-то ска криво мне не нравится. Как сделать так, чтобы без дополнительного окна-диалога, коих и так у инженера много на экране, можно было бы просто двойным щелчком по строке БД запустить LISP-программу ? Если это не выполнимо и событие типа "клац мышью" в таблице БД перехватить невозможно, тогда посоветуйте чем можно заменить такую таблицу (например используя технологии .NET или Delphi или еще чего-нибудь) чтобы реализовать такую логику. Ну очееень прям надо.
Еще раз опишу логику задуманного:
1. вставляю в поле чертежа динамический блок;
2. вылетает таблица БД, где необходимо выбрать нужный элемент;
3. занести данные из поля выбранной строки в расширенные данные динамического блока (или примитива - не важно);

Всем спасибо !
Просмотров: 3061
 
Автор темы   Непрочитано 23.05.2019, 09:31
#21
sergeyVostok


 
Регистрация: 15.03.2019
Сообщений: 18


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Впрочем, видимо "не в коня корм"
Ну видимо да. Вы же задачу лучше меня думаю не знаете ))) Кто может знать, как мне нужно формировать чертеж лучше меня. Именно пишется под себя и под сиюминутную задачу.

Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Это сейчас имеет дело с несколькими изделиями, на каждое из которых можно "макрос на кнопку" сделать. Что, всю жизнь так и будет?
Не изделиями, а УГО - условно-графическими обозначениями. Кнопки делаются под них. И именно всегда так и будет, потому что их количество жестко оговорено ГОСТом.

Вот вы ... ))) Я вас прекрасно понимаю, что можно делать БД с большим объемом информации: фото, ссылки, даташиты и т.д. Но мне это не нужно. Я интересовался на первом этапе вопросом взаимодействия штатной таблицы БД с "мышью" пользователя. Понял, что это невозможно либо делать вариант через ObjectARX, о котором пока никто не рассказал.

Благодарю за примеры БД. Очень считаю удобно, к этому нужно стремиться. Интересные вещи, просто интересно это знать. Но пока это не по моей части. Нужна простейшая, примитивная база. Цель - спецификация на чертеж. Всё ! Именно поэтому в БД кроме поля "наименование" ничего не нужно )))

А на чем написана приведенная в предыдущем посте БД ?

Последний раз редактировалось sergeyVostok, 23.05.2019 в 09:55.
sergeyVostok вне форума  
 
Непрочитано 23.05.2019, 10:00
#22
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 7,026


Цитата:
Сообщение от sergeyVostok Посмотреть сообщение
Я вас прекрасно понимаю, что можно делать БД с большим объемом информации: фото, ссылки, даташиты
читаете по диагонали:
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
При этом сможете модифицировать таблицу, не трогая ее названия и столбца Primary Key - когда еще какая то задумка придет в голову, и для нее понадобятся дополнительные данные.
т.е. развязываете интерфейс взаимодействия с БД самого чертежа *.dwg и привязанными данными. Вот и делаете примитивную БД:

ID Name
1 Р-12-0,125 120 Ом +/- 5% АБВГД.1234.0000.ЮЯ
2 Р-12-0,25 120 Ом +/- 5% АБВГД.1234.0000.ЮЯ

привязываете к чертежу. А потом расширяете содержимое таблицы по необходимости. Хотя изначально для тех же постоянных резисторов в УГО заложена их мощность - поэтому напрашивается сделать еще один столбец сразу - Мощность Рассеивания и либо выбирать параметр видимости динблока резистора по мощности выбранной позиции, либо при выборке из БД передавать в SELECT текущее состояние видимости - чтобы он выдал резисторы только данной мощности. И т.п. А потом подумайте, например, что понадобиться заменить марку резисторов сразу на всей схеме, но все резисторы разной мощности и номинала - вручную все менять? Или ввести столбцы сопротивления, точности, марку, тип и т.п. и задав маску в диалоге - все разом поменять? Чем меньше "жестких" связей с данными внутри чертежа - тем проще будет модифицировать программу в дальнейшем.
Сергей812 вне форума  
 
Автор темы   Непрочитано 23.05.2019, 10:23
#23
sergeyVostok


 
Регистрация: 15.03.2019
Сообщений: 18


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
т.е. развязываете интерфейс взаимодействия с БД самого чертежа *.dwg и привязанными данными. Вот и делаете примитивную БД:

ID Name
1 Р-12-0,125 120 Ом +/- 5% АБВГД.1234.0000.ЮЯ
2 Р-12-0,25 120 Ом +/- 5% АБВГД.1234.0000.ЮЯ

привязываете к чертежу. А потом расширяете содержимое таблицы по необходимости. Хотя изначально для тех же постоянных резисторов в УГО заложена их мощность - поэтому напрашивается сделать еще один столбец сразу - Мощность Рассеивания и либо выбирать параметр видимости динблока резистора по мощности выбранной позиции, либо при выборке из БД передавать в SELECT текущее состояние видимости - чтобы он выдал резисторы только данной мощности. И т.п. А потом подумайте, например, что понадобиться заменить марку резисторов сразу на всей схеме, но все резисторы разной мощности и номинала - вручную все менять? Или ввести столбцы сопротивления, точности, марку, тип и т.п. и задав маску в диалоге - все разом поменять? Чем меньше "жестких" связей с данными внутри чертежа - тем проще будет модифицировать программу в дальнейшем.
Серег, не поверишь, но я это уже сделал еще до создания этой темы ))) И поле "ID", и поле "мощность", и поле "номинал", и поле "точность", и поле "фирма". Можно сделать любую сортировку непосредственно в таблице БД. В чертеж из таблицы будут забираться данные из поля "Name". Можно реализовать другую логику и брать из поля ID. Повторю, для меня это не вопрос.
Я спрашивал не об этом. Не о структуре БД. Я интересовался возможностью взаимодействия штатной таблицы БД с "мышью" пользователя. Либо об инструментах, с помощью которых можно заменить штатную БД и написать свою. Но я не спрашивал как мне реализовывать структуру, топологию и т.д. БД. С этим у меня нет вопросов.
Ну в самом деле ))) Поэтому про чтение по диагонали я бы не стал говорить и тема уходит в оффтоп. Что такое ключ в БД, какие должны быть поля в БД, сколько таблиц в БД и их взаимосвязи - с этим у меня нет вопросов.

Я понял, что нужно брать .NET и писать что-то свое или через API попробовать перехватить событие в штатной БД.
sergeyVostok вне форума  
 
Непрочитано 23.05.2019, 10:56
#24
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 7,026


Цитата:
Сообщение от sergeyVostok Посмотреть сообщение
Я понял, что нужно брать .NET и писать что-то свое
.Net + WPF. Примеры в инете есть под большую часть распространенных БД, включая и Access)
Сергей812 вне форума  
 
Автор темы   Непрочитано 23.05.2019, 11:02
#25
sergeyVostok


 
Регистрация: 15.03.2019
Сообщений: 18


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
.Net + WPF. Примеры в инете есть под большую часть распространенных БД, включая и Access)
Во )))) Премного благодарен )) Будем посмотреть )
sergeyVostok вне форума  
 
Непрочитано 23.05.2019, 11:10
#26
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 7,026


Цитата:
Сообщение от sergeyVostok Посмотреть сообщение
Серег, не поверишь, но я это уже сделал еще до создания этой темы ))) И поле "ID", и поле "мощность", и поле "номинал", и поле "точность", и поле "фирма". Можно сделать любую сортировку непосредственно в таблице БД. В чертеж из таблицы будут забираться данные из поля "Name". Можно реализовать другую логику и брать из поля ID. Повторю, для меня это не вопрос.
если не вопрос - то не возникало бы вопроса, зачем не надо хранить всю информацию в самом чертеже

Кстати, появляются периодически вопросы - как защитить содержимое *.dwg чертежей, чтобы другие не могли на "шару" пользоваться. А вот так и защищать - средства ускорения работы программные и их защищать, а кто получит сам чертеж с одними идентификаторами - ну сможет блоки позаимствовать, оформление. А со всем остальным обломится) А чертежи уходят налево только так, если в организации нет жесткого контроля за этим.
Сергей812 вне форума  
 
Непрочитано 23.05.2019, 11:29
#27
Vov.Ka


 
Регистрация: 21.07.2008
Луцьк
Сообщений: 169


Цитата:
Сообщение от sergeyVostok Посмотреть сообщение
Либо об инструментах, с помощью которых можно заменить штатную БД и написать свою.
не совсем заменить, но...
папкаавтокада\Sample\Database Connectivity\CAO
Vov.Ka вне форума  
 
Автор темы   Непрочитано 23.05.2019, 11:47
#28
sergeyVostok


 
Регистрация: 15.03.2019
Сообщений: 18


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
если не вопрос - то не возникало бы вопроса, зачем не надо хранить всю информацию в самом чертеже
ну так рассказали бы ) получается вопрос чисто в безопасности в случае утечки и никак не связан с непосредственной работой чертежа ) ну с таким же успехом тогда утечет и готовая спецификация ) Но всё это не по теме !
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Кстати, появляются периодически вопросы - как защитить содержимое *.dwg чертежей, чтобы другие не могли на "шару" пользоваться. А вот так и защищать - средства ускорения работы программные и их защищать, а кто получит сам чертеж с одними идентификаторами - ну сможет блоки позаимствовать, оформление. А со всем остальным обломится) А чертежи уходят налево только так, если в организации нет жесткого контроля за этим.
Правильный подход, согласен. Но извиняюсь, не по теме. Тем кому нужно обсудить защиту информации, открывайте соответствующий раздел и тему ))

Цитата:
Сообщение от Vov.Ka Посмотреть сообщение
не совсем заменить, но...
папкаавтокада\Sample\Database Connectivity\CAO
Вот это уже в тему. Что в папке, примеры работы с БД ?

Последний раз редактировалось sergeyVostok, 23.05.2019 в 12:17.
sergeyVostok вне форума  
 
Непрочитано 23.05.2019, 12:00
#29
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 7,026


Offtop:
Цитата:
Сообщение от sergeyVostok Посмотреть сообщение
Тем кому нужно обсудить защиту информации, открывайте соответствующий раздел и тему ))
Если бы не смотрели так узколобо - "это по делу, а это нет", то подумали бы об том - для чего это все делаете. Какая ситуация общая в стране, что ваши умения программирования для работодателя ничего не стоят (так как не профильное) - а вот если получиться быстрее делать: то это ваш конкурентное преимущество перед другими и раздавать это свободно - каждый решает сам, конечно.. И что защиту разработок от свободного хождения нужно еще на этапе общей архитектуры системы продумывать, чтобы не оставлять "открытых ворот" потом. Но вы же лучше всех все знаете - вам нужно лишь четкие правильные готовые решения. Успехов)
Сергей812 вне форума  
 
Непрочитано 23.05.2019, 12:47
#30
Vov.Ka


 
Регистрация: 21.07.2008
Луцьк
Сообщений: 169


Цитата:
Сообщение от sergeyVostok Посмотреть сообщение
Вот это уже в тему. Что в папке, примеры работы с БД ?
да
там есть пример файл db_samp.dwg и база для него
загружай лисп и смотри
лично я в этом не очень разбираюсь
предпочитаю в качестве базы использовать таблицы экселя
Vov.Ka вне форума  
 
Непрочитано 25.05.2019, 01:15
#31
trir


 
Регистрация: 18.12.2010
Сообщений: 3,464


https://habr.com/ru/post/271109/
trir вне форума  
 
Непрочитано 25.05.2019, 13:50
#32
AlexZh


 
Регистрация: 23.09.2015
Сообщений: 143


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Offtop:
Если бы не смотрели так узколобо - "это по делу, а это нет", то подумали бы об том - для чего это все делаете. Какая ситуация общая в стране, что ваши умения программирования для работодателя ничего не стоят (так как не профильное) - а вот если получиться быстрее делать: то это ваш конкурентное преимущество перед другими и раздавать это свободно - каждый решает сам, конечно.. И что защиту разработок от свободного хождения нужно еще на этапе общей архитектуры системы продумывать, чтобы не оставлять "открытых ворот" потом. Но вы же лучше всех все знаете - вам нужно лишь четкие правильные готовые решения. Успехов)
А мне эта тема интересна. Можно где-нибудь подробнее посмотреть?

Или может эту тему закрепить? Тема интересная, а информации в сети (на русском) маловато....

Как например, через LISP делать взаимосвязь элементов (расширенных данных) и БД. Как делать связь БД с MS Word/Excel и т.д.
__________________
Проекты СС
AlexZh вне форума  
 
Непрочитано 25.05.2019, 14:49
#33
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 7,026


Цитата:
Сообщение от AlexZh Посмотреть сообщение
А мне эта тема интересна. Можно где-нибудь подробнее посмотреть?
как вы думаете - кто-то в здравом уме будет выкладывать коды/подробное описание рабочих вариантов своих защит?) Но явно защита должна быть не уровня - введите пароль или получите какой то из параметров компа - и разрешите дальше работать в случае совпадения. Это действительно "открытые ворота" по сути. Хотя и подобная защита для 99% "непрограммистов"-пользователей станет непреодолимом препятствием, имхо)

Цитата:
Сообщение от AlexZh Посмотреть сообщение
Как делать связь БД с MS Word/Excel и т.д.
не связь. Рассматривайте документы офиса как шаблоны для вывода отчетов, сформированных на базе информации из БД. Поменяют завтра визуальный формат документов, а в программу жестко зашита взаимосвязь - и все, приехали?) А так переписать лишь малую часть кода, отвечающий за непосредственный вывод в шаблоны.
Сергей812 вне форума  
 
Непрочитано 25.05.2019, 14:59
#34
AlexZh


 
Регистрация: 23.09.2015
Сообщений: 143


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
как вы думаете - кто-то в здравом уме будет выкладывать коды/подробное описание рабочих вариантов своих защит?) Но явно защита должна быть не уровня - введите пароль или получите какой то из параметров компа - и разрешите дальше работать в случае совпадения. Это действительно "открытые ворота" по сути. Хотя и подобная защита для 99% "непрограммистов"-пользователей станет непреодолимом препятствием, имхо)
не нужны мне никакие коды и данные. хочу посмотреть на реализацию связи.
я даже не могу соединиться с базой данный из папки Sample....
__________________
Проекты СС
AlexZh вне форума  
 
Непрочитано 25.05.2019, 15:21
#35
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 7,026


Цитата:
Сообщение от AlexZh Посмотреть сообщение
хочу посмотреть на реализацию связи.
В главе 19 "Работа с базой данных" книги "САПР на базе AutoCAD - как это делается" рассматривается на примерах, как работать с БД, начиная с подключения.

Вот тут пример есть куценький и с пояснениями на английском.
Сергей812 вне форума  
 
Непрочитано 25.05.2019, 22:11
#36
trir


 
Регистрация: 18.12.2010
Сообщений: 3,464


Цитата:
Как например, через LISP делать взаимосвязь элементов (расширенных данных) и БД. Как делать связь БД с MS Word/Excel и т.д.
очень глупо делать такое на AutoLisp'е
trir вне форума  
 
Непрочитано 04.06.2019, 03:46
#37
skkkk

AutoCAD_2008->2011
 
Регистрация: 20.03.2008
Московская область
Сообщений: 2,290


Цитата:
Сообщение от trir Посмотреть сообщение
очень глупо делать такое на AutoLisp'е
Уж не потому ли, что в нем как бы есть своя собственная база данных - ассоциативный список?
skkkk на форуме  
 
Непрочитано 04.06.2019, 07:07
#38
trir


 
Регистрация: 18.12.2010
Сообщений: 3,464


Цитата:
Уж не потому ли, что в нем как бы есть своя собственная база данных - ассоциативный список?
это разные вещи
trir вне форума  
 
Непрочитано 04.06.2019, 09:47
#39
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 7,026


Цитата:
Сообщение от skkkk Посмотреть сообщение
Уж не потому ли, что в нем как бы есть своя собственная база данных - ассоциативный список?
БД - это не просто хранение информации, но и обеспечение ее целостности при операциях модификации БД. Упрощенно говоря: вылетело ли приложение, ребутнулся комп и т.д. - информация в БД должна остаться согласованной, а не часть старого содержимого, часть нового и часть битой информации, которая не успела записаться на энергонезависимый носитель информации во время сбоя. И, кстати, что называют чертеж акада базой данных (и это прослеживается в названиях тех же классов) весьма условно - иначе не было активной ветки о восстановлении файлов)
Сергей812 вне форума  
 
Непрочитано 04.06.2019, 11:35
#40
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 11,108


Просто "база данных" - модные слова, особенно среди тех, кто только их и слышал. "Базой данных" могут называть любую информацию. На самом деле все сложнее. Только книга "Введение в базы данных" содержит около 1000 страниц.

Вот, например, очень многие говорят "У меня база данных в Excel". Да, чрезвычайно примитивную БД можно сделать и там. Строки (записи), колонки (поля). Вот только это совершенно не защищено. Пользователь запросто может ввести в ячейку, где должно быть число, строку - например те же цифры, но с десятичным разделителем в виде запятой вместо точки или наоборот. И всё, "БД" накрылась.

Данные в БД в принципе могут быть в любых форматах, в том числе в виде обычного текста. Они и были текстовые на "больших ЭВМ" и именно это позволило огромнуые массивы информации перевести в современные системы.

Но для работы с любой БД необходима соответствующая СУБД, которая и дает все возможности работы с данными. Для "офисного планктона" это Access, которую почему-то боятся, как черт ладана.

А ассоциативный список - это никакая не база данных, сколько бы по невежеству не написали статей "скажи НЕТ субд! ЛИСП НЕ НУЖДАЕТСЯ НИ В КАКИХ ВНЕШНИХ БАЗАХ ДАННЫХ !!!".
ShaggyDoc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Взаимодействие с таблицей БД

Tekla Structures. Видеокурс. ЖЕЛЕЗОБЕТОН
Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пропадает связь OLE-объекта с оригинальной таблицей Excel XoRys AutoCAD 2 30.09.2014 15:09
Взаимодействие AutoCad Architecture с AutoCad Structural Detailing возможно? VikaLupan Вертикальные решения на базе AutoCAD 4 28.08.2012 12:39
Можно ли создать подобное взаимодействие и прокрутить его во времени средсвами Автокада 2012? proteirei AutoCAD 2 02.06.2012 11:17
Как в Лире 9.4 смоделировать взаимодействие грунта и бетонной конструкции? sergeyc700 Лира / Лира-САПР 12 31.01.2012 17:49
Нужна форма с таблицей что посоветуете Cleper Программирование 2 04.04.2007 09:26