Тема: База шифров проектов. Помогите советом.

Здравствуйте.
С БД не работал.
Нужно составить базу(картотеку) шифров проектов(имеется ввиду строительные проекты).  Если кто не знает что это, то я поясню отдельно.
Хотелось чтобы ее(базу) можно было редактировать как в акаде, так и отдельно.
В каде иметь доступ к ней. Вставлять как текст, в штамп, ну итд итп.
Как это лучше реализовать?
Правильна ли постановка задачи, или ее можно расширить?
Любые замечания будут полезны.
Заранее спасибо всем откликнувшимся.

Re: База шифров проектов. Помогите советом.

А более подробно, какую информацию должна содержать эта база? Кроме собственно шифра? Что-то вроде: "16/4-125-ЖД" (шифр) - "16-ти этажный 4-х секционный жилой дом по ул. Пупкина" (название) - "г. Нижний Тагил ул. Пупкина, 25" (адрес) - что-то типа этого? Я делал нечто подобное с помощью текстового файла, в котором разделитель строк - vbcrlf, разделитель полей - какой-либо зарезервированный текстовой символ. Можно также использовать Exel. В обоих случаях программа должна считывать информацию из файла, забивать её в массив, ну и выводить на экран в каком-либо виде. В программе должен быть блок для редактирования старой/добавления новой информации (при этом меняется массив - перезаписывается файл), и блок для вставки нужных данных в чертеж (уж не знаю, обычным текстом, "полем", как атрибут блока и т.д.)

Re: База шифров проектов. Помогите советом.

Все верно (про Пупкина:)
Текстовый файл, мне кажется будет слабым местом.
Проектов - вагон.
Ведь специализированные БД имеют преимущества.
По хорошему это делается через TDMS. Но у нас ее нет.
Хотелось бы обойтись без Екселя(Accessa), у нас этого нет.
Ну и про отдельное редактирование от акада, я загнул наверно, т.к. других средств кроме него нет. Т.е. это или VBA или Лисп.
Пойду читать про БД.
PS Посмотрел что написал. Ужос, получается что у нас ничего нет.
Но имеется ввиду лицензионное ПО. Только недавно начали по этому поводу шевелиться. Кроме виндов, и акада, пока ничего.

Re: База шифров проектов. Помогите советом.

Ну, лицензионный Acad, уже очень даже хорошо.

Хотелось бы обойтись без Екселя(Accessa), у нас этого нет

- редкий случай, когда лиц. кад есть, а офиса нет. Чаще бывает наоборот (таки офис дешевле значительно)

Re: База шифров проектов. Помогите советом.

Собираются, собираются, его взять, собираются...
и компучер мне заменить собираются...
и СТП и TDMS внедрить собираюся...
В следущей жизни похоже.

Re: База шифров проектов. Помогите советом.

Мне всеже интересно научиться работать с БД.
Как я понимаю создание проги по работе с БД разбивается на два этапа:
1. Создание БД. Т.е. самого файла БД связанных таблиц.
2. Интерфейс работы с БД.
По 1. Где(в чем, в чем лучше) ее можно создать.
Ведь это не связано с VBA акада. Т.е. это делается в отдельном приложении.
Тут наверно нужно определится какая это будет БД, локальная или клиент/серверная.
Мне кажется подойдет локальная. Т.е. я так понимаю, считывают данные с файла БД (он будет на сервере) все, а записывает кто-то один (т.е. открывает файл для записи).
Тут напрашивается Access, но ведь офиса нет. Что еще есть.
По 2. Думаю делать на VBA акада, через ADO.
PS Голова разлетается на атомы, неудержать.

Re: База шифров проектов. Помогите советом.

Загоняюсь похоже.

Re: База шифров проектов. Помогите советом.

> Vildar
Тебе бы лучше начать отсюда, все-таки задача
весьма специализированная, а Автокад прикрутить
позже - не проблема:
http://sql.ru/forum/actualtopics.aspx?bid=4
~'J'~

Re: База шифров проектов. Помогите советом.

Уж послали, так послали.
Ушел учить матчасть.

Re: База шифров проектов. Помогите советом.

Вжик,вжик,вжик...уноси готовенького!
Перехожу к плану "Ы" - txt forever :)
СУБДы расчитаны на тысячи записей. У нас же проектов идет где-то под сотню.
Но освоить ее все-таки стоит.

Re: База шифров проектов. Помогите советом.

> Vildar
Стоит, конечно! Только времени по-жизни не хватает. А с .txt можно вполне приличную небольшую базу организовать; хотя, конечно, функционала нормальной БД не достичь и близко, но для указанных целей (сохранение сотни-другой названий проектов с шифрами и т.д. + возможность корректировки этих данных и внесения новых) - вполне достаточно.

Re: База шифров проектов. Помогите советом.

TXT, ничего страшного. TXT - это тоже база данных.
В текстовый DXF вон целую БД чертежа загоняют, и никто не жалуется.

Re: База шифров проектов. Помогите советом.

Кстати, как вариант, для тренировки и для набивания себе цены можно XML-подобный формат использовать.

Re: База шифров проектов. Помогите советом.

Без шуток, погонял txtшник,
Время полной записи и чтения 100 000 строк, - 50сек. + комп старый 1100МГц.
Файл конечно под 3 мега.
Но такая работоспособность меня поразила, неожидал.
Txt вещь!!! :))))))

Re: База шифров проектов. Помогите советом.

Вообще-то, Acad может служить такой же базой данных, как и остальные приложения... Со своими плюсами и минусами. Я, например, выделил один Acad'файл для хранения различных форм, в том числе основных надписей, включая шифры проектов

Re: База шифров проектов. Помогите советом.

> Timak
Записная книжка тоже может служить базой данных. А лучшая база данных - это голова))
А по поводу Acad,

...для хранения различных форм, в том числе основных надписей, включая шифры проектов

-в виде блоков храните? и как переносите в нужный файл? У меня тоже значительное кол-во блоков, используемое в программах, хранится в dwg файлах, при необходимости программно вставляю чертеж внешней ссылкой.

Re: База шифров проектов. Помогите советом.

Думаю, все эти велосипеды давно изобретены.
Обратитесь к специалистам, например к brigval'у.

Re: База шифров проектов. Помогите советом.

Ну, хотелось бы самому стать brigval-ом... Тьфу, специалистом! Тем более есть много идей по конструкции велосипедов...

Re: База шифров проектов. Помогите советом.

Да, собираю в один файл различные формы в виде блоков. Так же можно собирать и условные знаки и т.д. Как вставляю в текущий файл? Идея была показана на этом сайте. Но пришлось ещё поработать…  Если интересно, могу сбросить.
Относительно велосипедов. Да приходится изобретать. Во-первых, авторы VBA не боги. Во-вторых, частенько встречается что-то другое. В-третьих, иногда быстрее изобрести, чем искать. Пример. Числа приходят из одной базы с разделителем-точкой, из другой - с запятой. Надоело отслеживать, помнить. Сделал свою функцию, которую включил в свою библиотеку.
Function ValD(s$) As Double
    ValD = Val(Replace(s, ",", "."))
End Function

Re: База шифров проектов. Помогите советом.

Вернусь к своим ба... своему txtшнику.
Как проверить запущен ли макрос редактирования каталога шифров на каком либо компе в сети?
Что бы не было потерь данных при одновременном редактировании базы.
Чето я не врублюсь как это проверить.

Re: База шифров проектов. Помогите советом.

Как самый простой вариант:
В каталоге где лежит база при старте скрипта проверять наличие определенного файла, если его нет то, создавать файлик, если есть , то ожидать пока его не будет....... , после окончания работы стирать файл...

Re: База шифров проектов. Помогите советом.

Да тоже также подумал.
Еще надо подумать о его защите от удаления (этого временного файла).
Через атрибуты этого ведь не сделать. У многих ведь стоит просмотр скрытых файлов.

Re: База шифров проектов. Помогите советом.

> Vildar
Может это дело вкуса, но самое простое и самое удобное решение - это БД на основе Access. И в смысле использования и в смысле программирования на VBA. И в смысле распространенности, поскольку входит в пакет MS Office.

Re: База шифров проектов. Помогите советом.

Мне не удалось с наскока оседлать ADO.
Подскажите шаги по созданию БД.
Т.е. начинать нужно в Access с создания таблиц.
Или можно сразу в VBA акада действовать?
Спасиб.

Re: База шифров проектов. Помогите советом.

> Vildar
Можно с использованием ADOX:
(вставь этот код в модуль в редакторе VBA Автокада)
Не забудь добавить указанные ниже ссылки
на библиотеки

Option Explicit
' References to:
' Microsoft ADO Ext. 2.8 for DLL and Security
' Microsoft ActiveX Data Objects 2.8 Library
Public Sub CreateDatabase()
'Author       : Ken Puls (www.excelguru.ca)
'Macro Purpose: Create an Access database on the fly
     Dim dbConnectStr As String
     Dim Catalog As Object
     Dim cnt As ADODB.Connection
     Dim dbPath As String
     'Set database name here
     dbPath = "C:\NewTable.mdb"
     dbConnectStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath & ";"
     'Create new database
     Set Catalog = CreateObject("ADOX.Catalog")
     Catalog.Create dbConnectStr
     Set Catalog = Nothing
     'Connect to database and insert a new table
     Set cnt = New ADODB.Connection
     With cnt
          .Open dbConnectStr
           .Execute "CREATE TABLE tblCodes ([num] counter(8), " & _
                    "[Шифр] text(32) WITH Compression, " & _
                   "[Название_проекта] text(100) WITH Compression, " & _
                   "[Адрес_проекта] text(50) WITH Compression)"
     End With
     Set cnt = Nothing
End Sub

Только что это даст, заполнять надо вручную
~'J'~