| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Holon, наличие существующих систем всё усложняет. Это не работа с каким-нибудь отдельным DBF-файлом или БД "настольного" вида наподобие Access.
Системы наверняка работают с SQL-сервером, а это значит, что на сервере реализуется своя бизнес-логика, имеются множество таблиц, отношения между ними, могут быть хранимые процедуры, триггеры, Views и прочее. Вмешиваться во всё это надо очень осторожно. Надо досконально знать структуру баз данных, логику работы. LISP для этого менее всего подходит (уж лучше VB). Зайдите на сайт, указанный в #7, возьмите библиотеку ADOLisp. Это очень хорошая библиотека (лучше нет), но она как раз продемонстрирует ограниченные возможности. Различия между ней и настоящими системами такие же, как между презентационным макетом автомобиля и промышленным образцом. Сделать в AutoCAD связку с собственной БД не очень сложно. "Для дома, для семьи". Вмешиваться в существующую промышленную систему надо на профессиональной основе. Вы же только "открываете" для себя аббревиатуру ADO, только пытаетесь разобраться с SQL, да и в LISP тоже на начальном уровне. Рановато за такую работу браться. Надо много изучать. Одно только "Введение в базы данных", где излагаются основы SQL, имет объём более 1000 страниц. Удачи! |
|||
|
||||
CNC Регистрация: 07.07.2007
Israel
Сообщений: 302
|
Не притендую на авторские права, это пример кода для подключения к MS SQL серверу и вставку данных в таблицу, с использованием Библиотеки ADOLISP, самое ценное здесь это строка подключения. Библиотеку можно скачать у авторов, URL в 7- ом топике.
Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
В отместку: один из вариантов, которым я пользуюсь (правда, у меня база на Access, но суть ИМХО это мало поменяет - достаточно слегка отредактировать одну (!) функцию. Какую - не скажу, и так понятно ).
Вроде ничего не забыл...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
CNC Регистрация: 07.07.2007
Israel
Сообщений: 302
|
Вопрос как сделать выборку с MSSQL вот пример запроса к серверу, проверяем
его работу вначале на самом сервере, а потом из *.lsp кода програмно, Код:
"Result" возвращает мне "Т" Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Если установлено соединение с БД, и оно сохранено в переменной conn, и используется вариант из #23, то можно сделать так (естественно, проверить не могу):
Код:
Код:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Holon, SQL в СУБД - это примерно как AutoLISP в AutoCAD. SQL-запрос - строка, передаваемая серверу. В ответ может быть получен результат. А может и не быть получен, могут и всякие ошибки быть. Результат обычно надо как-то визуализировать. Да и запрос тоже надо формировать с помощью какого-то построителя, а не путем набора текста.
Представьте, что работаете с Автокадом только через текстовое окно, набирая в нем на клавиатуре LISP-выражения, а графики вообще не видите. Результат будет плачевный. Приведенный пример - это уровень "Hello, Word". "SELECT * FROM...." может вернуть и миллионы записей. Которые должны прилететь по сети и как-то обработаться. В СУБД так не делается. И не факт, что пользователю, от чьего имени делается запрос это вообще позволено. Там могут и роли быть. Запрос "INSERT ...." еще опасней. Это изменение БД. Значит должны быть соответствующие права, но ещё должны проводиться какие-то действия и с другими таблицами, индексами и прочим. Иначе будет нарушена целостность БД. Вот потому и делаются специальные программы. Есть универсальные, которые позволяют работать с любой БД сервера определенного типа. Они предназначены для самих разработчиков СУБД. В таких программах есть всегда и окно SQL. Только с SQL работают опытные разработчики. При работе из LISP вы даже этого окна не увидите, а будете действовать полностью вслепую. Для конечных пользователей делаются специальные приложения ("Маркетинг", "Бухучет"). Юзер там не видит никакого SQL. Он выбирает из списков, заполняет формы, видит результаты. SQL работает, но скрыт в программе. На LISP подобные, чуть сложнее HelloWord, приложения не написать. Но специализированная программа ничего не может сделать в AutoCAD. И если результатом её работы должна быть, например, вставка блока, имя которого хранится в БД, то надо и делать так, чтобы саму вставку делал LISP. А имя этого блока можно получить разными способами, например, через файл. Не исключен вариант, что в БД может быть создана специальная временная таблица для обмена данными с LISP. Кстати, это форум - пример такой программы. Есть сервер MySQL, есть БД, в ней 95 (!) таблиц. И когда мы смотрим эту ветку, то выполняем запрос наподобие SELECT * FROM VB3_POST WHERE POSTID=14765 Но видим-то мы не сами результаты, а результаты, преобразованные в формат HTML. При этом не только из таблицы, где хранятся тексты постов, а и из множества других таблиц. Такую возможность предоставляет скрипт форума - огромное количество программ, написанных на PHP. Это специальный язык, заточенный на формирование WEB-страниц и на работу с БД. А теперь представтьте, что всё это надо нарисовать с помощью LISP в AutoCAD... |
|||
|
||||
Цитата:
открываю его в аксесе. добавляю столбец/строку, но при открытии в мапинфо он выдает ошибку и открывать измененую таблицу не желает.
__________________
кроме любви возбуждать могут только деньги! |
||||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
"он выдает ошибку". Кто он? Мапинфо - "она", Access - "она". А файлы ничего не выдают, они лежат себе и никого не трогают. Ошибка обычно сопровождается пояснением. Mapinfo - настольная однопользовательская программа. Открыть файл одновременно в Mapinfo и Access не получится. И не надо - Mapinfo работает с MDB прямым доступом, с учетом ограничений, и запросто испортит объекты Access, если они там есть. |
|||
|
||||
Я не правильно выразился, сори. Как все таки мне присоединить таблицу с 5 ячейками и 5 колонками в MapInfo? Подскажите пожалуйста простым понятным любому пользователю языком. Заранее очень благодарен
__________________
кроме любви возбуждать могут только деньги! |
||||
|
||||
CNC Регистрация: 07.07.2007
Israel
Сообщений: 302
|
Ув. ShaggyDoc вы меня наверное неправильно поняли, я несобираюсь писать
программы на LISP для "Менеджеров", "Бух. учета" и т.д. я лишь хочу передовать в отдельную таблицу сведения о кол-ве и типе "Расходного материала" потраченных на определенного "Клиента", а потом уже специалисты и админы свяжут мои данные с их хитрозапутанными таблицами и данными в их "Апликациях". -> Кулик Алексей aka kpblc мой код заработал, я только поменял строку запроса и сделал ее как у тебя, хотя очень странно ведь свой предыдущий запрос я проверял на самом сервере и он работал, я даже картинку выставил в 24-ом топике с этим запросом, получается запрос сделанный на сервере и в LISP имеет различный синтаксис вот мой пример с твоим запросом Код:
Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
У тебя в поле Number_Cust какой тип данных? REAL или CHAR? Потому что я-то строил SQL-запрос для REAL-значений.
P.S. Я бы твою команду переделал как функцию все же, с передачей строки соединения, логина и пароля пользователя (возможно, шифрованного, с последующей "дешфрацией"). Ну или Data Source, логин и пароль.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
"Присоединить" к чему? Таблица создается в Mapinfo Файл-Новая таблица. Далее в диалоге вводите требуемый набор полей. Что неясно - жмете кнопку Справка. Если к таблице понадобится присоединять географическую информацию, надо включить флажок Можно присоединять географические объекты, а также щелкнуть кнопку Проекция и задать проекцию карты, в которой будут отображаться географические объекты. Вообще лучше сначал прочитать документацию - там все разжевано очень подробно. Также работает клавиша F1. Цитата:
К тому же ранее было написано: Цитата:
Надо начинать с четкой постановки задачи, и уж потом выбирать инструмент. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
1. Такую таблицу (сразу несколько строк) к каждому объекту, например, к скважине? 2. Или каждая строка такой таблицы из 26 колонок - самостоятельный объект? В первом варианте создаете таблицу, в которой, кроме прочих полей, есть какое-то строковое поле с именем, например, "Документация". Затем с помощью Геолинк заносите в это поле ссылку на файл документации. Возможно, один и тот же файл будет и для разных объектов. Во втором варианте создаете таблицу Mapinfo с 26 полями. Учтите, что имена полей должны быть короткими и однословными. "[FONT='Arial CYR']Относительная просадочность при ρ = кг/см3" - недопустимое имя. Придется давать маловразумительные имена, например "Просад_01".[/FONT] [FONT='Arial CYR']Теперь, создавая объект, надо заносить в его атрибуты, т.е. в соответствующие поля, требуемые данные. Каждая точка, линия, полигон будут связаны с записью таблицы.[/FONT] |
|||
|
||||
CNC Регистрация: 07.07.2007
Israel
Сообщений: 302
|
То что мне нужно было, как всегда придумали за меня, вчера только узнал о существовании продукта Autodesk Vault он поставляется с "Инвентором" и "Механикл", это пример использования возможностей сервера SQL для создания
архивов, причем сами чертежи хранятся в отдельной директории, а управление по именам и версиям чертежей, производится "БД" на "Сервере SQL". |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Ага, только Vault (также как и ProjectStream) максимально заточен под машиностроение и не всегда он "самое то" для смежных отраслей; Vault требует отдельного выделенного сервера с развернутым на нем MS SQL Server 2000 (2005 и 2005 Express работает не всегда корректно); теоретически Vault интегрирован в Inventor и Civil, опять же теоретически позволяется его интегрировать и с AutoCAD 2007, но как это выглядит на практике - лично я не знаю.
И, наконец, самое главное: Vault в твоей задаче (как она звучала в самом начале) вряд ли поможет. Хотел бы я ошибаться...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как отключить в автокаде привязки к штриховкам? | RA | AutoCAD | 18 | 21.03.2017 13:31 |
как отрегулировать фокус перспективы в автокаде 2004??? | kalcha | AutoCAD | 5 | 09.08.2007 02:08 |
Как создать резьбу в 3Д в Автокаде? | Нико | AutoCAD | 2 | 27.09.2004 19:17 |
Как в Автокаде в VBA делать паузу на некоторое время | Саша | AutoCAD | 2 | 08.09.2004 19:06 |
Как в Автокаде в VBA указать окно просмотра (Window) | Саша | AutoCAD | 1 | 06.09.2004 21:40 |