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

Вернуться   Форум 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?
Просмотров: 22682
 
Автор темы   Непрочитано 31.08.2011, 09:48
#21
Andru1968


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


ShaggyDoc
Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Вот как раз ObjectLand и используется у "землеустроителей", т.е. в Росрестре как штатный инструмент.
Для Росрестра ObjectLand может быть и великолепная программа. Но квадратики, прямоугольнички и многоугольнички, которые Росреестр использует для отображения земельных участков и строений в своей карте, мне как топографу трудно назвать картой.


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
"В этой карте" - это в AutoCAD? Это тупиковый путь для информационных систем. AutoCAD, благодаря своим графическим возможностям, может быть очень удобен для топографов и геодезистов (т.е. "чертежников"). А в части информации - он "никакой".
Я с 1998 года работаю с пакетом программ назовем его GEO-пакет для AutoCAD R14 и меня в нем все устраивает и как топографа, и как землеустроителя, и что-то в нем менять мне не хочется. К тому же разговор не идет о GEO-пакете для AutoCAD R14 как о ГИС. Проблема состоит в том, что использовать AutoCAD R14 легально невозможно.

Цитата:
Сообщение от Дима_ Посмотреть сообщение
Пока писал, свое мнение касательно рациональности и перспективности этого вопроса описал ShaggyDoc - я с ним полностью согласен.

Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Но самое главное и самое плохое то, что координаты внутри DWG. Это значит, что они оторваны от семантики, спрятаны в закрытом формате, с ними можно работать только посредством самого AutoCAD (или его "вертикальных" решений). Формат DWG - это не база данных, с которой могут работать множество пользователей одновременно. И даже для "попеременной" работы на каждом рабочем месте должен стоять полноценный AutoCAD.
То есть Вы предлагаете отказаться от затеи переделать GEO-пакет под AutoCAD 2009. Но дело в том что 90% кодов уже работают в AutoCAD 2009, осталось решить проблему с БД. И после всего Вы советуете поднять руки вверх.

Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Знаю это не понаслышке - сам лет 10 делал ГИС на базе AutoCAD.
Может поделитесь своим опытом?
Andru1968 вне форума  
 
Непрочитано 31.08.2011, 12:16
#22
Дима_

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


Цитата:
Сообщение от Andru1968 Посмотреть сообщение
То есть Вы предлагаете отказаться от затеи переделать GEO-пакет под AutoCAD 2009. Но дело в том что 90% кодов уже работают в AutoCAD 2009, осталось решить проблему с БД.
Я лично предлагал и два других варианта, просто мне кажется что это все-таки тупиковый путь - я понимаю что переучиваться и переделывать муторней, но - надо смотреть весь комплект, вполне может быть что те самые 90% являються "оберткой" вокруг тех 10 - которые не работают, а написать его по новой можно только "раскопав" все требования к нему - еще раз повторю - если это просто "штатная" библиотека - то скорее всего понадобиться просто найти "современную" версию, если там заложен "рукописный" функционал программы - то раскапывать что он должен делать - все равно что новый писать. То есть если придеться кардинально переделывать, то трудозатрат никак не избежать - а посему лучше все таки присмотреться к готовым продуктам (так просто дешевле).
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 31.08.2011, 13:10
#23
Andru1968


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


Цитата:
Сообщение от Дима_ Посмотреть сообщение
самый быстрый и дешевый - найти автора
Я даже фамилий их не знаю. Если Fleming в начале каждой программы заявляет о своих авторских правах, то создатели GEO-пакета не оставили о себе ни какой информации. Я просто случайно обнаружил исходники на одном из компов в организации, где устанавливал GEO-пакета, на мой вопрос откуда они взялись никто не смог ответить.

Цитата:
Сообщение от Дима_ Посмотреть сообщение
те самые 90% являються "оберткой" вокруг тех 10 - которые не работают
Нет 10% - это именно коды для работы с БД. Смотри Код выложенный в #13

Цитата:
Сообщение от Дима_ Посмотреть сообщение
Специалисты "водятся" здесь и в поиске исполнителей.
А можно поточнее
Andru1968 вне форума  
 
Непрочитано 31.08.2011, 14:59
#24
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Andru1968 Посмотреть сообщение
А можно поточнее
Выложи свой код, сразу найдутся советчики
gomer вне форума  
 
Автор темы   Непрочитано 31.08.2011, 15:22
#25
Andru1968


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


А ты смотрел Код выложенный в #13
Andru1968 вне форума  
 
Непрочитано 31.08.2011, 16:41
#26
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Andru1968 Посмотреть сообщение
ты смотрел Код выложенный в #13
код, конечно, топорный, но я не увидел пока жалоб... Где именно не работает?
gomer вне форума  
 
Непрочитано 31.08.2011, 17:21
#27
trir


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


Между прочим Map 3D вполне себе ГИС, если надо дешевый вариант смотреть карты то - MapGuide Open Source http://mapguide.osgeo.org/
Для топографов - Civil 3D, который полностью включает Map 3D. Так что лучше изучайте современные инструменты!
trir вне форума  
 
Непрочитано 31.08.2011, 18:25
1 | #28
ShaggyDoc

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


Цитата:
Но квадратики, прямоугольнички и многоугольнички, которые Росреестр использует для отображения земельных участков и строений в своей карте, мне как топографу трудно назвать картой.
Вот уж не надо ахинею нести, совершенно не зная дела. Какие "квадратики"? Совершенно нормальная "пятисотка", на которой помимо "просто топографии" может быть множество информационных "тем", "выборок", "макетов", "стилей" и прочего. Не говоря уж про великолепную работу с БД.

Прилагаю несколько наугад взятых кат из OL

Цитата:
Но дело в том что 90% кодов уже работают в AutoCAD 2009, осталось решить проблему с БД. И после всего Вы советуете поднять руки вверх.
Вот это "осталось решить" сложнее всех остальных кодов. Особенно если идти в заведомо неверном направлении и пытаться изобретать велосипед, не зная, что такое колесо.

Цитата:
Может поделитесь своим опытом?
Зачем, если "не в коня корм"? Ну, покажу картинку, как выглядит "взаправдашнее" редактиование БД - "семантика" и графика по объекту.

Цитата:
Между прочим Map 3D вполне себе ГИС
Это для тех, кто слаще репы ничего не едал и не знает, что такое настоящая геоинформационная система. А назвать "ГИС" можно всё, что угодно, лишь бы "карта на экране" была. Civil 3D и другие "вертикальные" решения - прекрасные продукты, если применять их по назначению. Ну и стоимость этих "вполне себе" прикиньте хотя бы на сотню рабочих мест. Да за такие деньги можно ArcGIS приобрести, рядом с которой всякие "Автодески" и не стояли.

А вот ObjectLand, ИнГЕО - вполне доступны и по ценам и по возможностям. Всякие "силовики" предпочитают "Панораму" - тоже прекрасный продукт.
Миниатюры
Нажмите на изображение для увеличения
Название: ol_01.jpg
Просмотров: 75
Размер:	112.4 Кб
ID:	65480  Нажмите на изображение для увеличения
Название: ol_02.jpg
Просмотров: 75
Размер:	141.7 Кб
ID:	65481  Нажмите на изображение для увеличения
Название: ol_03.jpg
Просмотров: 68
Размер:	103.6 Кб
ID:	65482  Нажмите на изображение для увеличения
Название: ol_04.jpg
Просмотров: 73
Размер:	68.0 Кб
ID:	65483  Нажмите на изображение для увеличения
Название: bestia_db.jpg
Просмотров: 85
Размер:	51.3 Кб
ID:	65484  

ShaggyDoc вне форума  
 
Непрочитано 31.08.2011, 21:40
#29
Vov.Ka


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


Цитата:
Сообщение от trir Посмотреть сообщение
Между прочим Map 3D вполне себе ГИС
полностью согласен, меня устраивает на 101%
Vov.Ka вне форума  
 
Автор темы   Непрочитано 31.08.2011, 22:43
#30
Andru1968


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


trir
Цитата:
Сообщение от trir Посмотреть сообщение
Между прочим Map 3D вполне себе ГИС, если надо дешевый вариант смотреть карты то - MapGuide Open Source
Дело в том что AutoCAD 2009 лицензионный уже купили и вопрос остался только нужна ли БД или просто плюнуть на нее.

gomer
Цитата:
Сообщение от gomer Посмотреть сообщение
код, конечно, топорный, но я не увидел пока жалоб... Где именно не работает?
это код который работает в AutoCAD R14, его и надо переделать

ShaggyDoc
Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Вот уж не надо ахинею нести, совершенно не зная дела.
Согласен я не спец в ObjectLand, но я видел неоднократно как ObjectLand используется работниками кадастровой палаты в нашем городе, т.е. подразделением Росреестра, там именно только квадратики, прямоугольнички и многоугольнички. Линейные объекты (нефтепроводы, газопроводы и т.д.), колодцы, столбы они говорят мы показать не можем нет такой функции.

Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
идти в заведомо неверном направлении
что Вы имеете ввиду

Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Ну, покажу картинку, как выглядит "взаправдашнее" редактиование БД - "семантика" и графика по объекту.
Посмотрите вложенный файл Doc1.doc

ShaggyDoc
Просмотрел Ваши миниатюры. Первая похожа на карту, только вот условные знаки выполнены с несоблюдением требований, которые требует ГУГК. Я повторюсь, я топограф и по образованию и по профессии, поэтому требования ГУГК для меня закон. А теперь назовите хоть одну программу для черчения карт, которая бы придерживалась требований ГУГК. В начале своей работы с GEO-пакетом, я слышал что руководитель группы разработчиков был именно геодезистом, и что программистам пришлось изучить геодезию и теоретически и практически.
Вложения
Тип файла: doc Doc1.doc (444.5 Кб, 104 просмотров)

Последний раз редактировалось Andru1968, 31.08.2011 в 23:12.
Andru1968 вне форума  
 
Непрочитано 01.09.2011, 07:37
1 | #31
ShaggyDoc

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


Цитата:
ObjectLand используется работниками кадастровой палаты в нашем городе, т.е. подразделением Росреестра, там именно только квадратики, прямоугольнички и многоугольнички.
Ну, так это их объекты учета. А у других, например телефонной сети, объекты учета кабели, колодцы, шкафы, коробки и многое другое.

Цитата:
Линейные объекты (нефтепроводы, газопроводы и т.д.), колодцы, столбы они говорят мы показать не можем нет такой функции.
Это просто они такие "специалисты", что не знают элементарных вещей. Точка, линия, полигон (и кое-что ещё) - обязательные объекты любых ГИС.
Цитата:
А теперь назовите хоть одну программу для черчения карт, которая бы придерживалась требований ГУГК
Да абсолютно все российские программы. Вот только не всегда они могут "нарисовать" сложные виды изображений, такие как "штриховку" откосов на крупномасштабных планах. Это, пожалуй, единственное исключение.

Электронные карты проходят через Геонадзор, включаются в банки картографических данных и не будут приняты, если что-то не так.

Более того, сейчас созданы классификаторы для топографических карт и планов на все масштабы. Они построены в соответствии с "условными знаками", для каждого вида изображений установлены единые имена слоев, единые названия "семантик", установлены единые требования к цифровым топографическим картам и планам, единая терминология (чтоб не говорили "квадратики").

Разумеется, и требования бывшего "ГУГК" учитываются (а также изменяются). И современная Роскартография здесь работает. В частности, для всех своих предприятий установила единый программный продукт (разумеется, не Автокад). И единые карты на всю страну в электронном виде делаются.

Современная электронная карта уже не просто "компьютерная" копия бумажной, пригодная для распечатки. Если на традиционном планшете "нарисован" дом, то кроме подписи наподобие "9КЖ" ничего информативного об нем нет. А на электронной карте, даже чисто топографической, уже должна быть обязательная "семантика" по классификатору. И эта семантика сидит в скрытом виде, находится в базе данных.

Чисто графическое топографическое черчение условными знаками (точечными, линейными, площадными) сделать очень просто. Коли спрашивал "хоть одну программу" - назову свою "Интегрированная система ruCAD". Она имела несколько версий и названий (TiGRA, zCAD, InCAD, BestIA). Вот там всё топографическое "рисование" внутри AutoCAD. И условные знаки в точном соотвествии с "ГУГК" - это специально проверяли несколько комиссий, "до мулиметра". Сделано несколько тысяч электронных планшетов по таким городам как Челябинск, Курган.

Но даже чисто чертежной части одного плана или планшета мало, надо иметь возможность ими пользоваться. Нужна система. Электронные планшеты лежат в специальном банке топографических данных. Работая над планом города, специалист, имеющий доступ к банку данных, может подгрузить топооснову по любому участку местности (по точке, прямоугольнику или трассе). Кстати, и в Интернет может просмотреть любой планшет с переходом на соседние, с управлением слоями и получением дополнительных данных по объекту.

Это делалось именно в AutoCAD ради проектировщиков. А вот всем остальным службам не столь важна сама топография, как информация.

Вот на этой топооснове уже создаются дополнительные информационные слои. Т.е. к контуру, например, здания будет привязана и какая-то "кадастровая", или "полицайская", или "электрицкая" информация. В AutoCAD это делать можно (мы делали), но совершенно неудобно и неэкономично.

Да и технически AutoCAD менее всего приспособен для настоящей ГИС. Попробуйте, например, управлять порядком отображения слоев "по вертикали", отобразить один слой в карте в разных видах, автоматически создавать подписи, автоматически генерализировать изображение при изменении масштаба. Не говоря уж про информационную часть или аналитику.

Цитата:
Посмотрите вложенный файл Doc1.doc
Ну и что? Кто-то сделал небольшое приложение, решающее некоторые задачи. Да информация в виде "просмотр строки". Это же самое примитивное, детсадовский уровень. Да таких приложений можно множество наделать. А попробуй-ка без программирования изменить структуру данных! Или добавить новые виды информации. Да хотя бы просто запустить под новой версией Автокад (с чем и столкнулся).

В настоящих ГИС таких вопросов и не возникнет. Там и средства разработки есть (если возникают какие-то дополнительные задачи), но всё основное есть изначально. Причем разработка ведется, как правило, с использованием любых систем программирования.

А почему ты не можешь спокойно своё проверенное приложение в новой версии использовать? Да потому, что Autodesk идет порочным путем. Твой asilisp.arx из AutoCAD-14 не будет работать в других версиях - это специально сделано. Даже если в нем нет ничего "эдакого", и даже если есть исходные тексты, и даже если есть голова, надо будет приобрести ещё и определённую версию VisualStudio да всё перекомпилировать (скорей всего не только). Развод лохов на бабки называется, путем сговора Microsoft и Autodesk.
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 01.09.2011, 09:18
#32
Andru1968


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


ShaggyDoc
Повторюсь еще раз, дело в том что AutoCAD 2009 лицензионный уже купили и вопрос остался только нужна ли БД или просто плюнуть на нее, по-этому все другие существующие ПО работающие в данном направлении мне сейчас неинтересны. Просто в оставшиеся 10% входят коды для подготовки документов, при этом они берут часть информации из БД. Можно конечно их переделать, чтобы они перестали обращаться к БД и "дело в шляпе" GEO-пакет для AutoCAD 2009 готов,

Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Вынести пространственные данные в БД можно - "назло Autodesk".
а можно либо своими силами, либо найти людей, но все-таки сделать GEO-пакет для AutoCAD 2009 на все 100% "назло Autodesk".

Я благодарен ShaggyDoc за все его внимание к моей проблеме, за ту информацию, которую мне удалось под черпнуть из его сообщений. Но как говорилось в эпиграфе к одному тележурналу во времена СССР: "Орешек знаний тверд, но мы не привыкли отступать..."

Кто бы хотел заняться решением, повторяю именно решением проблемы отзовитесь?
Andru1968 вне форума  
 
Непрочитано 01.09.2011, 11:51
#33
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


ShaggyDoc, конечно прав, он зрит в корень, то бишь концептуально, но не совсем по теме... Да, чтобы внедрять новые технологии, начальство нужно дрессировать, ведь ему не важны средства производства, а только результат...
Конкретно по #13 Уберите
Код:
[Выделить все]
  (setq envnames (mapcar 'car (asi_getcfg "ENVIRONMENTS"))
       ase_errno 1
 )
 (if (= "" (car envnames))
  (setq envnames (cdr envnames))
 )
и должно заработать... вообще странный кусок кода, далее не используемый... это конечно если не дело в asi
Соответственно #16 тоже заработает...
gomer вне форума  
 
Автор темы   Непрочитано 01.09.2011, 12:16
#34
Andru1968


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


коды #13 и #16 сделаны для R14
Andru1968 вне форума  
 
Непрочитано 01.09.2011, 12:59
#35
_REGEN


 
Регистрация: 14.12.2010
Там, где мамонты жили ...
Сообщений: 224


Цитата:
Сообщение от Дима_ Посмотреть сообщение
самый быстрый и дешевый - найти автора
Цитата:
Сообщение от Andru1968 Посмотреть сообщение
Я даже фамилий их не знаю
Сдается мне, что это АО "Аркада", баловалась она такими вещами в 90-е
в поисковике есть
__________________
Время – лучшее лекарство, лечит даже от жизни.
_REGEN вне форума  
 
Непрочитано 01.09.2011, 13:13
#36
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Andru1968 Посмотреть сообщение
коды #13 и #16 сделаны для R14
Чтобы заработал #16 замените все (command "_layer" на (command "_-layer"
gomer вне форума  
 
Автор темы   Непрочитано 01.09.2011, 15:08
#37
Andru1968


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


_REGEN
Цитата:
Сообщение от _REGEN Посмотреть сообщение
АО "Аркада"
GEO-пакет делали Саратовские программисты
Andru1968 вне форума  
 
Автор темы   Непрочитано 27.09.2011, 13:44
#38
Andru1968


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


PDF по ADOLISP_Library перевел, прочитал, поработал с ADOLISP_Example.
На базе ADOLISP_Example переделал свой код из под R14.


Код:
[Выделить все]
 ;========================= Добавление строки в БД =========================
(defun c:asis ( / ConnectionObject Result     ConnectString
	          SQLStatement     TablesList ColumnsList)
  (if (not ADOLISP_ConnectToDB) (load "ADOLISP_Library.lsp")); end if
  (setq ase_errno 1)
  (setq ConnectString "Provider=MSDASQL;Driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\Работа\\BAZA.mdb")
  (prompt (strcat "\n\nСоединение с базой данных с использованием \n\""  ConnectString "\"" ))
  (if (not (setq ConnectionObject (ADOLISP_ConnectToDB ConnectString "admin" "")))
    (progn
      (prompt "\nСвязь прервалась!")
      (ADOLISP_ErrorPrinter)
    ); end progn
    (prompt "\nРезультат: успешно выполнено!")
  ); end if
  (if ConnectionObject
    (progn
      (if (or (not zona_n) (= zona_n "")) (setq zona_n 0))
      (if (or (not  mas_n) (=  mas_n "")) (setq  mas_n 0))
      (if (or (not kvar_n) (= kvar_n "")) (setq kvar_n 0))
      (if (or (not  uch_n) (=  uch_n "")) (setq  uch_n 0))
      (if (or (not ned1_n) (= ned1_n "")) (setq ned1_n 0))
      (if (or (not ned2_n) (= ned2_n "")) (setq ned2_n 0))
      (date)
      (setq d_vv vrem)
      (setq SQLStatement (strcat "INSERT INTO GLAG (zona_n, mas_n, kvar_n, uch_n, ned1_n, ned2_n) VALUES ('"(rtos zona_n 2 0)"', '"(rtos mas_n 2 0)"', '"(rtos kvar_n 2 0)"', '"(rtos uch_n 2 0)"', '"(rtos ned1_n 2 0)"', '"(rtos ned1_n 2 0)"')"))
      (prompt (strcat "\n\nВставка строки:\n\""  SQLStatement "\""))
      (if (setq Result (ADOLISP_DoSQL ConnectionObject SQLStatement))
	(prompt "\nРезультат:\nУспешно выполнено!")
	(progn
	  (prompt "\nПривело к сбою!")
	  (ADOLISP_ErrorPrinter)
	); end progn
      ); end if
      (if SQLStatement
	(dcl_p)
     ); end if
    ); end progn
  ); end if
  ;; Disconnect
  ;; Разъединение
  (prompt "\n\nРазъединение от базы данных\n")
  (ADOLISP_DisconnectFromDB ConnectionObject)
  ;; Although the following is unnecessary in this case (because
  ;; ConnectionObject is a local variable), it's never a _bad_
  ;; idea to NIL-out the connection object.
  (setq ConnectionObject nil)
); end asis

(prin1)


;------------------------- Вычисление даты -------------------------
(defun date ( / xz xxz ans dp)
  (setq  xz (fix (getvar "cdate"))
	xxz (/ xz 10000)
	 xz (- xz (* xxz 10000))
	ans (/ xz 100)
	 dp (itoa (- xz (* ans 100)))
	ans (itoa ans))
  (if (= (strlen ans) 1) (setq ans (strcat "0" ans)))
  (if (= (strlen  dp) 1) (setq  dp (strcat "0"  dp)))
  (setq vrem (strcat dp "." ans "." (itoa xxz)))
); end date
;--------------------------------------------------
(defun dcl_p ( / dcl_r spis)
  (setq spis (list (strcat "Зона      |" (rtos zona_n 2 0))
		   (strcat "Массив    |" (rtos  mas_n 2 0))
		   (strcat "Квартал   |" (rtos kvar_n 2 0))
		   (strcat "Участок   |" (rtos  uch_n 2 0))
		   (strcat "Недвиж1   |" (rtos ned1_n 2 0))
		   (strcat "Недвиж2   |" (rtos ned2_n 2 0))))
  (if n_zd
    (setq spis (reverse (cons (strcat "№ дома    |" n_zd) (reverse spis))))
  ); end if
  (if s_uch
    (setq spis (reverse (cons (strcat "Площадь   |" (rtos s_uch 2 2)) (reverse spis))))
  ); end if
  (if s_dok
    (setq spis (reverse (cons (strcat "Площ.док  |" (rtos s_dok 2 2)) (reverse spis))))
  ); end if
  (if k_l
    (setq spis (reverse (cons (strcat "Код лица  |" k_l) (reverse spis))))
  ); end if
  (if pred
    (setq spis (reverse (cons (strcat "Владелец  |" pred) (reverse spis))))
  ); end if
  (if adr_or
    (setq spis (reverse (cons (strcat "Адрес     |" adr_or) (reverse spis))))
  ); end if
  (if tip_zd
    (setq spis (reverse (cons (strcat "Тип здан. |" tip_zd) (reverse spis))))
  ); end if
  (if nazn
    (setq spis (reverse (cons (strcat "Назнач.   |" nazn) (reverse spis))))
  ); end if
  (if nm_fv
    (setq spis (reverse (cons (strcat "Тип влад. |" nm_fv) (reverse spis))))
  ); end if
  (if n_post
    (setq spis (reverse (cons (strcat "№ пост.   |" n_post) (reverse spis))))
  ); end if
  (if d_post
    (setq spis (reverse (cons (strcat "Дата пост.|" d_post) (reverse spis))))
  ); end if
  (if d_dok
    (setq spis (reverse (cons (strcat "Дата док. |" d_dok) (reverse spis))))
  ); end if
  (if n_dok
    (setq spis (reverse (cons (strcat "№ док.    |" n_dok) (reverse spis))))
  ); end if
  (if d_vv
    (setq spis (reverse (cons (strcat "Дата ввода|" d_vv) (reverse spis))))
  ); end if
  (if d_kor
    (setq spis (reverse (cons (strcat "Дата корр.|" d_kor) (reverse spis))))
  ); end if
  (if login_user
    (setq spis (reverse (cons (strcat "Кто делал:|" login_user) (reverse spis))))
  ); end if
  (setq dcl_r (load_dialog "asi"))
  (if (not (new_dialog "viewrow" dcl_r))
    (progn
      (alert "Отсутствует или неверен файл asi.dcl")
      (unload_dialog dcl_r)
      (exit)
    ); end progn
  ); end if
  (start_list "ID_LBOX_COLS")
  (mapcar 'add_list spis)
  (end_list)
  (start_dialog)
  (unload_dialog dcl_r)
); end dcl_p
Все бы хорошо и с базой соединился, и вставил туда строчки. При этом например при вводе в диалоговом окне номера зоны, программа из #16 проверяет есть ли в чертеже такой номер или нет. И если номер есть предлагает ввести другой номер. Вводим другой номер и программа переходит к коду указанному выше, и в БД появляется другая строка с новыми данными.
Это все замечательно работает пока в чертеже есть какой-то номер, но стоит только удалить его или открыть "чистый лист",
В БД появляется еще одна строчка с теми же данными.
При работе кода для R14, если в БД находилась строка с теми же данными выдавалось сообщение "Строка уже есть в базе" и предлагалось либо заменить ее, либо выйти из программы, при этом коде для R14 использовались ASI-функции манипулирования курсором. А как это сделать для AutoCAD 2009.
База данных имеет всего одну таблицу, т.е. нужны ли в ней ключевые поля.

Последний раз редактировалось Andru1968, 27.09.2011 в 14:00.
Andru1968 вне форума  
 
Непрочитано 27.09.2011, 21:39
#39
Дима_

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


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


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


Структура БД такова

Имя поля Тип данных Размер поля Число десят.знаков Обязательное поле Пустые строки Индексированное поле

ZONA_N Числовой Двойное с плавающей точкой Авто нет нет
MAS_N Числовой Двойное с плавающей точкой Авто нет нет
KVAR_N Числовой Двойное с плавающей точкой Авто нет нет
UCH_N Числовой Двойное с плавающей точкой Авто нет нет
NED1_N Числовой Двойное с плавающей точкой Авто нет нет
NED2_N Числовой Двойное с плавающей точкой Авто нет нет
N_ZD Текстовый 10 нет да нет
S_UCH Числовой Двойное с плавающей точкой 2 нет нет
S_DOK Числовой Двойное с плавающей точкой 2 нет нет
K_L Текстовый 2 нет да нет
PRED Текстовый 99 нет да нет
ADR_OR Текстовый 50 нет да нет
TIP_ZD Текстовый 20 нет да нет
NAZN Текстовый 99 нет да нет
NM_FU Текстовый 50 нет да нет
N_POST Текстовый 10 нет да нет
D_POST Текстовый 10 нет да нет
LOGIN_USER Текстовый 15 нет да нет
N_DOK Текстовый 10 нет да нет
D_DOK Текстовый 10 нет да нет
D_VV Текстовый 10 нет да нет
D_KOR Текстовый 10 нет да нет

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

Реклама i


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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