Как переделать коды AutoCAD R14 работающие с БД для работы в AutoCAD 2009 - Страница 4
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как переделать коды AutoCAD R14 работающие с БД для работы в AutoCAD 2009

Как переделать коды AutoCAD R14 работающие с БД для работы в AutoCAD 2009

Ответ
Поиск в этой теме
Непрочитано 29.08.2011, 15:58
Как переделать коды AutoCAD R14 работающие с БД для работы в AutoCAD 2009
Andru1968
 
г. Балаково
Регистрация: 29.08.2011
Сообщений: 48

Имеются коды для AutoCAD R14, которые передают данные в БД, позволяют их редактировать и просматривать их. Для соединения с БД были использованы функции ASE. Как переделать эти коды для работы в AutoCAD 2009?
Просмотров: 22599
 
Непрочитано 05.10.2011, 15:00
#61
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Вопрос просто поставлен так, что на него внятно ответить сложно - я люблю клубнику и смородину, но в них много сахара, а мне он вреден - какие ягоды мне есть? Если у пользователей используются excel и OO - используйте коннекторы, либо обращайтесь через com и.т.д, если нужны базы данных - полно как платных, так и бесплатных (firebird, mysql) - но что от них толку, если у "других" их нет и данными они пользуется из OO. К экселевским файлам через ADO можно обращаться и без устанановленного excel'я (есть готовые примеры на форуме), так-же их умеет читать и ОО - что Вам нужно сделать "нормально" или чтоб "другие" как и раньше работали? (а работают они не нормально, по крайней мере по современным представлениям).
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 05.10.2011, 16:57
#62
Andru1968


 
Регистрация: 29.08.2011
г. Балаково
Сообщений: 48


Вопрос сформулируем по другому. GEO-пакет для R14, как и сам R14 достался всем организациям можно сказать на "халяву", при этом имеется база данных назовем ее proba.dbf и есть какая-то программка под названием BAZAVIEW для просмотра данных. Все были довольны и счастливы, пока не пришли "люди в черном". Все начали искать выход из этой ситуации. Кто "ушел в подполье", кто купил лицензионный AutoCAD не задумываясь о том будет он работать как R14 или нет, кто gstarcad. И началась в городе чехарда, как в басне про лебедя, рака и щуку. Чтобы восстановить в городе мир и покой, я решил переделать GEO-пакет под легальный AutoCAD (за определенную плату), так как есть исходники и не много понимаю в LISP. И получается так:
1. все покупаем AutoCAD.
2. покупаем новый GEO-пакет.
только есть одно но, он будет работать на все 100% в том случаи, если у Вас
3. есть Microsoft Office Professional 2010.
4. есть Windows 7.
Спрашивается, зачем мне (точнее какому-нибудь ООО "...") тогда нужен этот GEO-пакет, буду работать в "подполье".
По-этому, чтобы исключить пункты 3 и 4 и нужна легальная "халявная" БД типа той, которая есть в OpenOffice.
Andru1968 вне форума  
 
Непрочитано 05.10.2011, 18:56
#63
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


С чего взялись требования к 3 и 4? Легальные халявные и "реальные" БД #61 - mysql, firebird. Для просмотра последних можно написать свою "гляделку", использовать встроенные в БД GUI'шники (точнее от создателей СУБД). Подключить тот-же OO.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 05.10.2011, 20:00
#64
ShaggyDoc

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


Цитата:
Подскажите какую в этом случаи можно использовать БД, чтобы она не зависела от того какой Office используется той или иной организацией и при этом без лишних материальных затрат
Не надо вообще думать ни про какие "Office". Программа должна быть самостоятельной, и не зависеть от наличия каких-то сторонних продуктов.

В случае локальной базы данных лучше всего использовать MDB. Хотя это называется "Microsoft Access Database", сама MS Access для работы пользователя не нужна, может только разработчику понадобиться в качестве конструктора БД. Да и это не обязательно. В этом случае будет только файл, без сервера БД. Нужен движок, который обычно есть в Windows или который можно бесплатно взять у Microsoft.

Есть и другие "бессерверные" базы данных (например SQLLite и подобные), но к ним будет трудно найти OleDbProvider, требуемый для доступа к БД из Lisp через ADO.

Если делать с перспективой на многопользовательскую работу, то надо использовать локальный сервер БД, для которого опять же есть OleDbProvider. Я лично предпочел бы Firebird, у которого есть "emedded" вариант. Или MySQL. Это будут бесплатные для разработчика и пользователя варианты.

Цитата:
нужна легальная "халявная" БД типа той, которая есть в OpenOffice
Кроме "халявности" нужна ещё и работоспособность. Надо различать программы класса "Database Desktop" (это например MS Access или OO Base) для конструирования самой БД и её несложной правки. И пользовательские программы, которые работают с БД определенных форматов.

"Халявная" OO Base - самый слабый продукт в семействе OpenOffice. Пока это жалкая попытка сделать "как в Access". Даже экспорта нет. И тьма других недостатков, описанная многими. Похоже, что делает самое слабое звено в команде. Сама "БД", которая используется в OO Base (это и должно интересовать программистов) - зазиппованный файл в двоичном формате одного из редких диалектов SQL. Прямая работа невозможна, OleDbProvider не найти. И это по-прежнему локальный файл. Лет через десять может что-то получится, пока прогресс незаметен. Уж лучше просто DBF.
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 06.10.2011, 08:23
#65
Andru1968


 
Регистрация: 29.08.2011
г. Балаково
Сообщений: 48


Цитата:
Сообщение от Дима_ Посмотреть сообщение
С чего взялись требования к 3 и 4?
Это я так образно сказал, чтобы было понятно, что ООО "....", как пользователю GEO-пакета интересуют только пункты 1 и 2, а все остальное это проблемы разработчика, т.е. мои.

Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Уж лучше просто DBF
А можно об этом по подробнее. И как можно использовать уже существующую БД proba.dbf и ее просмоторщик BAZAVIEW в AutoCAD2009, если учесть тот факт, что в R14 они работают не зависимо от пунктов 3 и 4.

Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
ADO подключается не к чьим-то офисам, а к "провайдеру", например MSDASSQL. А уже провайдер физически работает с базой данных. В данном случае - это файлы *.mdb.
Как определить провайдер для работы с базой данных. В данном случае - это файлы proba.dbf. В папке где находится БД proba.dbf имеется еще два файла DBED.EXE, DBED.OVL. Поясните "чайнику" в СУБД, зачем они там нужны. (см.вложенные файлы)

Запустил DBED.EXE, выскочило окно похожее на NortonCommander, нажал клавишу F1 "Info", выскочило такое сообщение

Type of File: dBase III. V or FoxBase
Last Updated: 29/09/111
Version 1.91 09.1996
Вложения
Тип файла: zip Zem.zip (187.6 Кб, 41 просмотров)

Последний раз редактировалось Andru1968, 06.10.2011 в 09:14.
Andru1968 вне форума  
 
Непрочитано 06.10.2011, 19:23
1 | #66
ShaggyDoc

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


Цитата:
А можно об этом по подробнее. И как можно использовать уже существующую БД proba.dbf и ее просмоторщик BAZAVIEW в AutoCAD2009, если учесть тот факт, что в R14 они работают не зависимо от пунктов 3 и 4.
DBF - старинный популярный формат локальных баз данных. Без индексных файлов - самый простой, но разные локальные СУБД (dBase III+, Foxpro и т.п.) "придумали" множество модификаций формата индексных файлов.
Просмотрщиков DBF столько же, сколько программистов было лет 20 назад. И программ с именем "BAZAVIEW" может быть сколько угодно. Явно написана дилетантом, профессионал "BAZAxxxx" никогда не назовет. А теперь интерес к DBF утерян.

Как использовать в AutoCAD - зависит от возможностей программы - умеет ли она взаимодействовать с AutoCAD. Скорее всего просто запускать как обычный EXE.
Цитата:
Как определить провайдер для работы с базой данных. В данном случае - это файлы proba.dbf
Чтобы что-то определять, в общем случае надо изучать документацию. Наскоками и отдельными вопросами ничего не решить.
Конкретно для DBF при использовании технологии ADO провайдером может быть MSDAQL.

Всё что надо знать по работе с БД в AutoCAD подробно описано в главе 19 моей книги "САПР на базе AutoCAD. Как это делается".

Цитата:
DBED.EXE, DBED.OVL. Поясните "чайнику" в СУБД, зачем они там нужны
Это одна из упомянутых тысяч программ для просмотра и редактирования, сделанная в стиле "Norton". По нынешним временам весьма примитивная, практической ценности не имеет. Предназначена для работы в DOS. EXE - исполняемый файл, OVL - дополнительный, нечто наподобие современных dll.
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 10.10.2011, 13:38
#67
Andru1968


 
Регистрация: 29.08.2011
г. Балаково
Сообщений: 48


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Не надо вообще думать ни про какие "Office". Программа должна быть самостоятельной, и не зависеть от наличия каких-то сторонних продуктов.
Нашел старый "винт", установил на него Windows и AutoCAD. На диск "D" положил baza.mdb. И начал проверять. Прекрасно работает и без MicrosoftOffice.

Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
В случае локальной базы данных лучше всего использовать MDB. Хотя это называется "Microsoft Access Database", сама MS Access для работы пользователя не нужна,
Получается что baza.mdb можно использовать только локально,

Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Если делать с перспективой на многопользовательскую работу, то надо использовать локальный сервер БД, для которого опять же есть OleDbProvider. Я лично предпочел бы Firebird, у которого есть "emedded" вариант. Или MySQL. Это будут бесплатные для разработчика и пользователя варианты.
но я пробовал размещать ее на сетевом диске и все работает. Или здесь может произойти сбой, когда один пользователь просматривает в диалоговом окне строку из базы, а другой пытается в это же время изменить эту же строку (например отредактировать адрес участка)?
Andru1968 вне форума  
 
Непрочитано 10.10.2011, 13:57
1 | #68
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411


Цитата:
Сообщение от Andru1968 Посмотреть сообщение
Прекрасно работает и без MicrosoftOffice
На 32-разрядных системах.
Цитата:
Сообщение от Andru1968 Посмотреть сообщение
baza.mdb можно использовать только локально,
Необязательно.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 10.10.2011, 13:58
#69
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от Andru1968 Посмотреть сообщение
Или здесь может произойти сбой
Точно произойдет. Да и когда данных будет более-менее приличное количество, "загнется" ваш "сервер", даже на гигабитной сети.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 10.10.2011, 16:38
#70
Andru1968


 
Регистрация: 29.08.2011
г. Балаково
Сообщений: 48


Цитата:
Сообщение от Дима_ Посмотреть сообщение
Точно произойдет. Да и когда данных будет более-менее приличное количество, "загнется" ваш "сервер", даже на гигабитной сети.
Следовательно стоит воспользоваться советом ShaggyDoc и отказаться от baza.mdb.

Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Я лично предпочел бы Firebird, у которого есть "emedded" вариант.
Andru1968 вне форума  
 
Непрочитано 10.10.2011, 17:19
#71
ShaggyDoc

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


Цитата:
Или здесь может произойти сбой, когда один пользователь просматривает в диалоговом окне строку из базы, а другой пытается в это же время изменить эту же строку (например отредактировать адрес участка)?
Это зависит от программы, которой редактируют базу. Чтобы сбоев не было, программа должна выполнять блокировки, ставить "семафоры" и т.п. Это довольно сложное дело. Некоторые программы просто тупо блокируют весь файл.

При использовании современных средств разработки и правильных компонентов доступа к данным многие действия выполняются автоматически. Но всем этим надо уметь пользоваться. Кроме того, такие базы на файловом сервере полностью считываются в память компьютера и передаются по сети. Это обязательно, в определенный момент приведет к снижению производительности.

Цитата:
стоит воспользоваться советом ShaggyDoc
Стоит воспользоваться другим моим советом из #15 - нанять специалиста. Клиент-серверное приложение тоже с наскока не сделаешь.
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 11.10.2011, 07:53
#72
Andru1968


 
Регистрация: 29.08.2011
г. Балаково
Сообщений: 48


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Стоит воспользоваться другим моим советом из #15 - нанять специалиста.
Специалиста по БД или по LISP? И где их взять?

Цитата:
Сообщение от Дима_ Посмотреть сообщение
Точно произойдет. Да и когда данных будет более-менее приличное количество, "загнется" ваш "сервер", даже на гигабитной сети.
На сколько я знаю специфику работы с GEO-пакетом. Большую часть времени пользователи GEO-пакета в своей работе используют 90% программ, которые в процессе своей работы не обращаются к БД. Остальные 10% используются когда отрисовывают границы участка, в этот момент и появляется строка в БД, редактируют ее чаще сразу же, если забыли, что-то внести, в остальное время ее используют только для просмотра данных о том или ином участке. Когда изготавливают какие-нибудь документы из БД в них вставляется определенная информация. например, адрес участка, владелец и т.д.

Последний раз редактировалось Andru1968, 11.10.2011 в 08:17.
Andru1968 вне форума  
 
Непрочитано 11.10.2011, 08:43
#73
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Если файл выложен в общей доступ - то он блокируется для записи (для всех остальных), во время открытия (на запись) любым пользователем, то есть либо один открыл - остальные покорно ждут, либо постоянно открывай\закрывай (что в сетевой работе означает - скопируй весь файл по сети туда-обратно), причем в промежутке между чтением и записью все опять ждут - иначе конфликт (по простому - записи теряться будут) - короче многопользовательская работа с таким подходом не прокатит - используйте предназначенную для этого БД.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 11.10.2011, 11:35
#74
Andru1968


 
Регистрация: 29.08.2011
г. Балаково
Сообщений: 48


Цитата:
Сообщение от Дима_ Посмотреть сообщение
короче многопользовательская работа с таким подходом не прокатит - используйте предназначенную для этого БД.
Какую?
Andru1968 вне форума  
 
Непрочитано 11.10.2011, 12:03
#75
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Вам уже раз 5 писали - mysql, firebird, mssql...
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 11.10.2011, 12:22
#76
Andru1968


 
Регистрация: 29.08.2011
г. Балаково
Сообщений: 48


Цитата:
Сообщение от Дима_ Посмотреть сообщение
mysql, firebird, mssql...
Все это темный лес для меня. Если с LISP я более менее дружу, то с БД никак. Проще говоря нужна готовая БД, состоящая из двух таблиц максимум, одна таблица называется, например, GOROD, другая RAYON, чтобы туда можно было воткнуть ту информацию, которая уже имеется в формате *.dbf

Последний раз редактировалось Andru1968, 11.10.2011 в 12:29.
Andru1968 вне форума  
 
Непрочитано 11.10.2011, 12:58
#77
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


А чем Вам поможет "готовая" БД - к ней еще запросы надо оформить, потом еще их в код впендюрить - тут боюсь наскоком не проскочит - учите SQL (диалект не сложный, литературы полно).
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 11.10.2011, 13:11
#78
Andru1968


 
Регистрация: 29.08.2011
г. Балаково
Сообщений: 48


Цитата:
Сообщение от Дима_ Посмотреть сообщение
тут боюсь наскоком не проскочит - учите SQL
Ниже приведу строчки из кода где я использовал SQL-запросы, который у меня работает с baza.mdb на локальной машине.

Код:
[Выделить все]
  (setq SQLStatement (strcat "SELECT id, zona_n, mas_n, kvar_n, uch_n, ned1_n, ned2_n FROM GLAG WHERE zona_n= "(rtos zona_n 2 0)" and mas_n= "(rtos mas_n 2 0)" and kvar_n= "(rtos kvar_n 2 0)" and uch_n= "(rtos uch_n 2 0)" and ned1_n= "(rtos ned1_n 2 0)" and ned2_n= "(rtos ned2_n 2 0)""))
      (if (setq Result (ADOLISP_DoSQL ConnectionObject SQLStatement))
	(progn
	  (setq SQLFetch (cadr Result))
        ); end progn
        (progn
	  (prompt "\nПотерпел неудачу!")
	  (ADOLISP_ErrorPrinter)
        ); end progn
      ); end if
      (if (not SQLFetch)
	(progn
	  (alert "Строка в базе не найдена")
	  (setq ase_errno nil)
	); end progn
	(progn
	  (setq SQLId (car SQLFetch))
	  (setq SQLStatement (strcat "DELETE FROM GLAG WHERE id = "(rtos SQLId 2 0)""))
Как будут выглядеть эти SQL-запросы, если для создания БД использовать firebird, а не Access? Что как-то иначе?

Последний раз редактировалось Andru1968, 11.10.2011 в 13:21.
Andru1968 вне форума  
 
Непрочитано 11.10.2011, 13:50
#79
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Так-же, осталось изучить инструкция create и установить СУБД.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 11.10.2011, 14:32
#80
Andru1968


 
Регистрация: 29.08.2011
г. Балаково
Сообщений: 48


Цитата:
Сообщение от Дима_ Посмотреть сообщение
осталось изучить инструкция create
это еще что такое
Andru1968 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как переделать коды AutoCAD R14 работающие с БД для работы в AutoCAD 2009



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ObjectARX. Расчленение и удаление proxy-объектов Profan Готовые программы 293 08.04.2024 09:37
Разделение работы AutoCAD | AutoCAD Mechanical PVal Вертикальные решения на базе AutoCAD 3 23.03.2012 10:16
AutoCAD Architecture 2009 стоит ли.. mey Вертикальные решения на базе AutoCAD 25 19.04.2009 19:20
файл из AutoCAD 2004 сохранить в формат для AutoCAD R14 acad_newbie AutoCAD 12 13.10.2008 13:03
Уже работаю в AutoCAD 2006, но нужна книжка чтобы знать все тонкости работы с 2D графикой. Unt0nich Поиск литературы, чертежей, моделей и прочих материалов 17 06.05.2008 17:58