|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Помогите пожалуйста! VLISP + VFoxPro. Построение прямоугольника по данным из БД!
Регистрация: 08.02.2009
Сообщений: 10
|
||
Просмотров: 4931
|
|
||||
Регистрация: 17.10.2008
Саратов
Сообщений: 426
|
Навскидку:
1. Нужен запрос значений L,B в базе по выбранному "Box L x B" (и вообще это число = L*B, или как?). "Box L x B" это ключевое поле в таблице? 2. Далее по определенным L,B создаешь блок, и интерактивно, через _insert )) его вставляешь. (Поиском по insert на форуме найдешь море примеров) Цитата:
Продублировалось, сорри. Упс, еще раз ) Последний раз редактировалось Кулик Алексей aka kpblc, 09.02.2009 в 08:00. |
|||
![]() |
|
||||
Регистрация: 08.02.2009
Сообщений: 10
|
Цитата:
Сейчас программа выглядит вот таким образом: Код:
Цитата:
Главный вопрос в том, как сделать так, чтобы, когда я выбираю например строчку с "Box 10 x 20", ЛИСП забрал из других двух столбцов значения "10" и "20". |
|||
![]() |
|
||||
Регистрация: 17.10.2008
Саратов
Сообщений: 426
|
А как добраться до этого подключения?
Через DbConnect? AutoCAD.GetInterfaceObject("CAO.DbConnect.16") Чето как-то страшненько (. Интересней через АДО, имно. PS Непонятно, "почему молчат..."(с) Последний раз редактировалось Baldares, 09.02.2009 в 11:00. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
1. LISP-программа должна работать внутри AutoCAD
2. Для работы с DBF надо использовать ADO. Можно воспользоваться http://acad.fleming-group.com/Downlo...ADOLisp252.zip 3. К БД посылаешь обычный SQL-запрос. 4. Результаты запроса преобразуешь в LISP-переменные и рисуешь чего угодно. |
|||
![]() |
|
||||
Регистрация: 08.02.2009
Сообщений: 10
|
Цитата:
Я скачал АДО, пока что бегло пробежал глазами по мануалу, поизучал код предложенного там примера (код АДОЛИСП-библиотеки для меня вообще темный лес) и понял только то, что происходит подключение к БД, потом производятся какие-то действия и происходит отключение от БД. Запустил пример и увидел то же самое только в действии! (( А когда я счелкаю по нужной мне строке, SQL-запрос не происходит автоматически? Цитата:
[FONT=Times New Roman]select*from box_base where boxLxB=box10x20[/FONT] Он ведь найдет мне всю строчку, а как оттуда выцепить именно "L" и "B"? Да, и как вообще добратся до результатов запроса? P.S.: ShaggyDoc, Baldares спасибо, что откликнулись! ![]() |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Сначала организовывается коннект к базе данных, а потом выполняется запрос вида
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 17.10.2008
Саратов
Сообщений: 426
|
Все таки как можно добраться до этой палитры "Диспетчера подключения к БД"?
Определить текущую таблицу и запись в ней, L и B, и построить этот чертов прямоугольник. Даже если можно, то получиться фигово, потому что эта палитра и просмотр таблиц выглядят убого(Акад2008). На лиспе с формочками напряг. VBA каюк. Делай сразу на С++ )) На caduser искал? Вот посмотри: Как написать базу данных на Lisp? Базы даных Access. Вставка значения с бази в Acad2002 Готовые проги: от Евгения Елпанова LISP.LIB Чтение Excel файлов, используя ADO Поиск великая вещь! Добью: скажи НЕТ субд! Последний раз редактировалось Baldares, 09.02.2009 в 15:19. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
В этой библиотеке как раз есть примеры. Смотри, как и что возравщается.
LISP изучать придется, это обязательно. В AutoCAD LISP это примерно то же, что язык SQL в мире баз данных. А упоминавшийся "Диспетсера подключений к БД" в AutoCAD это так, для блондинок. Демонстрация концепции - что в принципе можно подключиться к БД и посмотреть результаты в понятной форме. Но это не для последующего черчения. |
|||
![]() |
|
||||
CNC Регистрация: 07.07.2007
Israel
Сообщений: 302
|
Вот в этой ветке есть примеры подключения к разным базам .
|
|||
![]() |
|
|||||
Регистрация: 08.02.2009
Сообщений: 10
|
Бррр! От этих кодов голова идет кругом. Ничего, прорвемся! =))
Цитата:
Цитата:
Цитата:
А подключение через диспетчер вообщем и нужен в принципе для блондинок, чтобы они посмотрели таблицу, выбрали что им надо, ввели в команндную строку, и получили готовый результат, не вдаваясь в подробности как и что там работает! Цитата:
1. Способ подключения к БД я должен откопать в АДО и вставить в текст прораммы. Больше всего смущает примечание автора в мануале (For Visual FoxPro (I haven’t tested this one either))? Сегодня буду пробывать подключить! 2. Способ, с помощью которого в той теме переменные забираются из базы данных, подойдет для *.dbf файлов? Holon, если есть время и возможность, набросай пожалуйста пример кода для объединения ЛИСПа с Фоксовской таблицей и дальнейшим выдергиванием из него нужных чисел! По анологии как это делалось с SQL-сервером! |
||||
![]() |
|
||||
CNC Регистрация: 07.07.2007
Israel
Сообщений: 302
|
К сожалению катастрофически нехватает времени, вот здесь пример с описанием по подключению к FoxPro
|
|||
![]() |
|
||||
Регистрация: 08.02.2009
Сообщений: 10
|
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Baldares, там Visual Fox Pro, значица для визуального редактирования самой базы данных никаких других средств и не надо. Из Fox-программы, кстати, и подключиться к Автокаду через COM можно, только надо это предусмотреть. И прямоугольники нарисовать объектными методами можно. Но это иной путь, тоже уметь надо.
Цитата:
|
|||
![]() |
|
||||
Регистрация: 08.02.2009
Сообщений: 10
|
А реально связать окна на DCL, с данными из БД???
Хотелось бы получить такой результат: Открывается DCL окно с выпадающим списком. В этом списке в момент открытия свормировались все данные по длинам. Если в базе данных убрать какие-либо значения длинны, то при следующем открытии окна, формируются данные уже без этих значений. И т.д. Затем пользователь выбирает, например, длину = 10, нажимает ок и открывается новое окно, в котором отображены все строки БД в которых длина = 10. Может кто-то сталкивался уже с такой проблемой или хоть примерно представляет как приведенный выше пример реализовать! =)) Заранее СПАСИБО!!! |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Для визуальной работы с БД не надо делать никаких окон на DCL - это тупиковый путь.
Окно должно быть реализовано в COM-сервере, который умеет полностью работать с БД через любой интерфейс (ADO, например, да хоть как). В визуальных элементах и в наборе данных такого окна всегда находятся актуальные данные. Их можно сортировать, фильтровать и прочее. В LISP, при необходимости, только передаются отобранные результаты. Например для рисования чего-то. LISP-программа вызывает COM-сервер с заданными аргументами, получает данные, закрывает СОМ-сервер и что-то делает с данными. На прилагаемом скриншоте пример такого диалога. Данные по координатам объекта берутся из БД, выводятся в виде списка. В самом диалоге рисуется и контура объекта - для наглядности. Диалог вызывается из LISP и пользователь вообще не знает, как он сделан. Но видит и получает результат в виде списка координат для рисования конктура. Этот же диалог может использоваться для редактирования полилинии. В этом случае он получает координаты из LISP. Во втором диалоге более явно видно, что он работает с БД. Там есть и сетка, и просмотр записи, и все визуальные элементы для работы с БД. На DCL такого никогда не сделать, да и не нужно. |
|||
![]() |
|
||||
Регистрация: 08.02.2009
Сообщений: 10
|
ShaggyDoc, спасибо! Учту!
Второй вариант как раз то что нужно! =))) А можно поподробнее объяснить как такой диалог создать? |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
![]() Подробно (для Delphi) написано в книге "САПР на базе AutoCAD - как это делается". В общем виде схема такая: 1. Создают DLL-библиотеку, которая будет являться субъектом автоматизации (ActiveX Library ) - COM-сервером. 2. Добавляют в созданный проект объект автоматизации (Automation Object ) 3. В редакторе библиотеки типов добавляют в объект автоматизации свойства и методы 4. Редактируют модуль реализации, добавляя код реализации задуманных методов. Вот здесь и будет вызов любых диалогов. 5. Компилируют проект, регистрируют сервер. 6. Используют в любых приложениях, написанных на любых языках. Форму можно сначала отработать в EXE-файле. |
|||
![]() |
|
||||
Регистрация: 08.02.2009
Сообщений: 10
|
Спасибо! )) Ушёл разбираться! =))
Не долго пришлось разбираться! =(( Сказали, что надо окно на DCL! =( Сейчас у меня основная проблема, как результаты запроса SELECT all l FROM box_base поместить в падающий список. Никто не знает как это сделать? А то у меня ну ни в какую не получается! ((( Последний раз редактировалось eternalflame, 21.04.2009 в 18:23. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите пожалуйста найти расчёт упорной стенки | sonson | Конструкции зданий и сооружений | 11 | 01.09.2020 17:24 |
ПОМОГИТЕ пожалуйста найти расценки на продавливание стальног | DenIZ | Разное | 4 | 14.09.2007 12:38 |
Помогите пожалуйста с Лирой 9.4 !!!! | Yapp | Лира / Лира-САПР | 33 | 22.02.2007 06:14 |