Вызов в среде AutoCAD приложения, написанного на Delphi и использующего базу данных
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Вызов в среде AutoCAD приложения, написанного на Delphi и использующего базу данных

Вызов в среде AutoCAD приложения, написанного на Delphi и использующего базу данных

Ответ
Поиск в этой теме
Непрочитано 06.10.2010, 18:36 #1
Вызов в среде AutoCAD приложения, написанного на Delphi и использующего базу данных
samos
 
Регистрация: 16.06.2010
Сообщений: 43

Здравствуйте!
Программа, написанная на Delphi, использует таблицы Paradox и BDE. Отлажена и давно эксплуатируется.
Alias не используется.
Все таблицы базы данных находятся в той же директории, где и исполняемый файл (назовем его X).
Сейчас потребовалось запустить программу из среды AutoCad.
Использую функцию startapp:
(startapp "X").
Программа запускается нормально, функция возвращает 33.
В процессе исполнения программы, когда в свойству Active таблицы TTable присваивается значение true, происходит аварийное завершение программы с сообщением:
Table does not exist.
File or directory not exist.
File: c:\Documents and Setting\V\Мои документы\c.db
Не могу понять, в чем дело?
Даже если свойство TTable.TableName прописываю с явным указанием пути к к таблице, все равно в аварийном сообщении идет ссылка на папку \Мои документы.
Заранее благодарен за помощь в решении проблемы.
Просмотров: 10116
 
Непрочитано 06.10.2010, 18:56
#2
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


Таблица ищется в рабочей папке, коей является "c:\Documents and Setting\V\Мои документы\". надо переписать чтоб искалась по
Код:
zamtmn вне форума  
 
Автор темы   Непрочитано 06.10.2010, 19:18
#3
samos


 
Регистрация: 16.06.2010
Сообщений: 43


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Таблица ищется в рабочей папке, коей является "c:\Documents and Setting\V\Мои документы\". надо переписать чтоб искалась по
Код:
То, что таблица ищется в папке c:\Documents and Setting\V\Мои документы\ мне понятно.
Непонятно, что надо переписать - вызов функции или программу на Delphi?
samos вне форума  
 
Непрочитано 06.10.2010, 20:01
#4
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


Цитата:
Использую функцию startapp:
(startapp "X")
Рабочая папка тут не указывается, автокад ее подсовывает свою. Ваша программа в уверенности что рабочая папка - та где лежит ее exe и другие файлы ищет базу там где ее нет.

Нормальное решение: переписать программу на Delphi чтоб она работала не зависимо от текущей рабочей папки.
Костыли:
Поискать другой способ запуска в автокаде (если он есть).
Запускать заглушку, которая запустит вашу программу настроив правильно рабочую папку
zamtmn вне форума  
 
Автор темы   Непрочитано 06.10.2010, 20:17
#5
samos


 
Регистрация: 16.06.2010
Сообщений: 43


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Рабочая папка тут не указывается, автокад ее подсовывает свою. Ваша программа в уверенности что рабочая папка - та где лежит ее exe и другие файлы ищет базу там где ее нет.

Нормальное решение: переписать программу на Delphi чтоб она работала не зависимо от текущей рабочей папки.
Костыли:
Поискать другой способ запуска в автокаде (если он есть).
Запускать заглушку, которая запустит вашу программу настроив правильно рабочую папку

Если делаю вызов функции с параметром:
(startapp "X" "c:\\Y\\"), то тем самым явно передаю в программу на Delphi путь к директории, где размещены таблицы базы данных.
В программе на Delphi ставлю:
dir:=ExtractFilePath(ParamStr(0))
и тем самым этот путь получаю.
Но Вы, вероятно не обратили внимания, но то, о чем я писал сначала (цитирую):
"Даже если свойство TTable.TableName прописываю с явным указанием пути к к таблице, все равно в аварийном сообщении идет ссылка на папку \Мои документы".
То есть мне путь в строке dir ни к чему. Я и так для TTable его указываю явно.
samos вне форума  
 
Непрочитано 06.10.2010, 20:29
#6
gomer

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


Во первых, организуйте проверку входящего параметра на пригодность... Во-вторых, организуйте обработчик ситуации, когда необходимые программе файлы отсутствуют...

Если вы еще этого не сделали...
gomer вне форума  
 
Непрочитано 06.10.2010, 20:29
#7
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


ParamStr(0) - путь к запущенному exe. c:\\Y\\ - это будет ParamStr(1) если мне не изменяет память

Цитата:
Но Вы, вероятно не обратили внимания, но то, о чем я писал сначала (цитирую):
"Даже если свойство TTable.TableName прописываю с явным указанием пути к к таблице, все равно в аварийном сообщении идет ссылка на папку \Мои документы".
Обратил, но это вопрос для форума по делфи и базам данных. ИМХО ошибка в программе, гдето вы ищете базу не по
Код:
[Выделить все]
ExtractFilePath(ParamStr(0))+dbName
, а просто по
Код:
zamtmn вне форума  
 
Автор темы   Непрочитано 06.10.2010, 20:46
#8
samos


 
Регистрация: 16.06.2010
Сообщений: 43


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Обратил, но это вопрос для форума по делфи и базам данных. ИМХО ошибка в программе, гдето вы ищете базу не по
Когда я запускаю программу из среды Delphi или из проводника, все работает нормально. В свойстве TTable.TableName может быть прописан полный путь к таблице или просто указана таблица, не имеет значения.
Когда же запуская программу с использованием StartApp, даже если путь передаю через параметр и подключаю к TTable.TableName, все равно идет ошибка. Правильность передачи по параметру проверял, все передается правильно.
Не пойму, где проблема? Все-таки, без вызова из AutoCad-а, все работает...
samos вне форума  
 
Непрочитано 06.10.2010, 20:57
#9
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


Цитата:
Когда я запускаю программу из среды Delphi или из проводника, все работает нормально
В этом случае (рабочая папка)=(папка с exe)
Цитата:
Не пойму, где проблема? Все-таки, без вызова из AutoCad-а, все работает...
а в этом случае (рабочая папка)<>(папка с exe) больше разницы никакой нет. попробуйте запустить из проводника, находясь в другой папке и введя полный путь с:\путь\к\программе\прога.exe, должна появиться таже ошибка
zamtmn вне форума  
 
Автор темы   Непрочитано 06.10.2010, 21:26
#10
samos


 
Регистрация: 16.06.2010
Сообщений: 43


Цитата:
Сообщение от zamtmn Посмотреть сообщение
В этом случае (рабочая папка)=(папка с exe)

а в этом случае (рабочая папка)<>(папка с exe) больше разницы никакой нет. попробуйте запустить из проводника, находясь в другой папке и введя полный путь с:\путь\к\программе\прога.exe, должна появиться таже ошибка
Вы совершенно правы!
Запуская программу из другой папки, возникает такая же ошибка, но в аварийном сообщении уже указывается не Мои Документы, а та папка из которой делал вызов. И это несмотря на то, что в свойстве TTabble.TableName явно прописываю путь к папке, где лежат файлы базы данных.
Так и не могу понять, как же решить проблему. Кроме, как использовать TableName ни до чего не дохожу.
samos вне форума  
 
Непрочитано 06.10.2010, 21:43
#11
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


Цитата:
И это несмотря на то, что в свойстве TTabble.TableName явно прописываю путь к папке, где лежат файлы базы данных.
Ну если у Вас всё верно, а база по прежнему ищется не там, попробуйте сами установить рабочую папку.
чтото навроде:
Код:
[Выделить все]
uses .....,windows;
..........
begin
..........
SetCurrentDirectory(@ExtractFilePath(ParamStr(0))[1]);
.........
должно помочь

Последний раз редактировалось zamtmn, 06.10.2010 в 21:48.
zamtmn вне форума  
 
Непрочитано 06.10.2010, 21:49
#12
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от samos Посмотреть сообщение
То, что таблица ищется в папке c:\Documents and Setting\V\Мои документы\ мне понятно.
Непонятно, что надо переписать - вызов функции или программу на Delphi?
Как вариант - попробуйте добавить в каталоги поиска AutoCAD путь к каталогу, в котором лежат ваши таблицы (диалоговое окно Options, вкладка Files, группа Support File Search Path).
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 06.10.2010, 22:04
#13
samos


 
Регистрация: 16.06.2010
Сообщений: 43


Цитата:
Сообщение от zamtmn Посмотреть сообщение
Ну если у Вас всё верно, а база по прежнему ищется не там, попробуйте сами установить рабочую папку.
чтото навроде:
Код:
[Выделить все]
uses .....,windows;
..........
begin
..........
SetCurrentDirectory(@ExtractFilePath(ParamStr(0))[1]);
.........
должно помочь

Замечательно! Все заработало.
Большое спасибо всем, особенно zamtmn !
samos вне форума  
 
Непрочитано 06.10.2010, 22:24
#14
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


>samos
Мне любопытно - тот вариант, который я предложил не сработал?
Цитата:
попробуйте сами установить рабочую папку.
При таком подходе нужно каждый раз при запуске команды устанавливать рабочую папку, т.к. если в процессе работы автокада юзер через диалоговое окно выберет какой-нить файл (например откроет чертёж) - то рабочий каталог станет другим. Я поэтому и предложил добавить путь к каталогам поиска.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 06.10.2010, 22:30
#15
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


Цитата:
Мне любопытно - тот вариант, который я предложил не сработал?
Автокад тут непричем, запускается сторонее exe приложение
Цитата:
При таком подходе нужно каждый раз при запуске команды устанавливать рабочую папку, т.к. если в процессе работы автокада юзер через диалоговое окно выберет какой-нить файл (например откроет чертёж) - то рабочий каталог станет другим. Я поэтому и предложил добавить путь к каталогам поиска.
Папка устанавливается для процесса delphi приложения, на автокад эти действия не влияют. Страшного в этом ничего нет, хотя не очень красиво, согласен. Но уж раз ошибок в коде у автора не найдено (чтото подсказывает что они есть ), другого выхода нет
zamtmn вне форума  
 
Непрочитано 06.10.2010, 22:35
#16
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от hwd Посмотреть сообщение
т.к. если в процессе работы автокада юзер через диалоговое окно выберет какой-нить файл (например откроет чертёж) - то рабочий каталог станет другим.
У каждого процесса свой рабочий каталог. Так что вне зависимости от того какой рабочий каталог будет в AutoCAD в запущенном приложении может быть свой рабочий каталог и изменение его в приложении не поменяет рабочий каталог AutoCAD. А вот .NET-сборкой можно изменить рабочий каталог AutoCAD, т.к. она (.NET-сборка) выполняется в рамках процесса AutoCAD.
Добавление каталога к путям доступа AutoCAD для exe-приложения - это как мертвому припарки. Ну никак это приложение в этих путях доступа искать не будет. А ошибка в коде автора явно есть.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 06.10.2010, 22:50
#17
samos


 
Регистрация: 16.06.2010
Сообщений: 43


Цитата:
Сообщение от hwd Посмотреть сообщение
>samos
Мне любопытно - тот вариант, который я предложил не сработал?

При таком подходе нужно каждый раз при запуске команды устанавливать рабочую папку, т.к. если в процессе работы автокада юзер через диалоговое окно выберет какой-нить файл (например откроет чертёж) - то рабочий каталог станет другим. Я поэтому и предложил добавить путь к каталогам поиска.

Ваш вариант пока не рассматривал, завтра на свежую голову попробую.
Вообще-то, программа моя не имеет прописки в реестре.
Теперь хочу прописывать ее при инсталляции.
Перед запуском из AutoCad в LISP-е из реестра по HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ по имени программы вытаскивать папку, в которой она установлена и использовать этот путь в качестве параметра при вызове (startapp путь+"X"). Пока такая мысль, может опять что не так, завтра буду пробовать.
samos вне форума  
 
Непрочитано 07.10.2010, 11:28
#18
ShaggyDoc

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


1. Надо переписывать дельфийскую программу. Самое лучшее - избавиться от древнего, давным-дано не поддерживаемого BDE и перейти на ADO.

2. Заодно забыть про Paradox, перевести данные в другую БД. Если это локальная база - лучше всего в MDB (Access).

3. Забыть про работу с таблицами, как физическими файлами и работать с базой данных и её таблицами, как объектами базы данных.

4. Не передавать имена файлов через параметры командной строки. Тем более не располагать БД рядом с EXE и не пытаться до нее добраться через Paramsr(0).

5. Не привязываться ни к какой "текущей директории"

6. Физическое расположение БД должно быть в настройках программы. Это уж по желанию и умению. Можно и в реестре, можно и в INI-файле программы, который должен лежать в положенном месте (желательно вычисляемом). Вот в этих настройках и могут быть расписаны все тонкости работы с БД. Может быть и ссылка не на саму БД, а на файл соединения, который создается и редактируется штатными средствами.

Все здесь описанное есть в Demos Delphi. Все средства для работы есть в штаных компонентах, а особо удобные - в дополнительных бесплатных библиотеках.

Если же хочется как следует помучиться много лет - все написанное можно игнорировать.
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 07.10.2010, 14:01
#19
samos


 
Регистрация: 16.06.2010
Сообщений: 43


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
1. Надо переписывать дельфийскую программу. Самое лучшее - избавиться от древнего, давным-дано не поддерживаемого BDE и перейти на ADO.

2. Заодно забыть про Paradox, перевести данные в другую БД. Если это локальная база - лучше всего в MDB (Access).

3. Забыть про работу с таблицами, как физическими файлами и работать с базой данных и её таблицами, как объектами базы данных.

4. Не передавать имена файлов через параметры командной строки. Тем более не располагать БД рядом с EXE и не пытаться до нее добраться через Paramsr(0).

5. Не привязываться ни к какой "текущей директории"

6. Физическое расположение БД должно быть в настройках программы. Это уж по желанию и умению. Можно и в реестре, можно и в INI-файле программы, который должен лежать в положенном месте (желательно вычисляемом). Вот в этих настройках и могут быть расписаны все тонкости работы с БД. Может быть и ссылка не на саму БД, а на файл соединения, который создается и редактируется штатными средствами.

Все здесь описанное есть в Demos Delphi. Все средства для работы есть в штаных компонентах, а особо удобные - в дополнительных бесплатных библиотеках.

Если же хочется как следует помучиться много лет - все написанное можно игнорировать.

Спасибо Вам за рекомендации!
Спорить с вышесказанным бессмысленно. В отношении игнорировать - вопрос не простой. Я себя профессиональным программистом не считаю, специальность у меня другая. Но последнее время приходится заниматься программированием. Очень трудно отойти от того стиля к которому привык, который кажется понятным, и когда программы работают хорошо и достаточно надежно. Но вот встретилась ситуация, с которой не смог разобраться. Спасибо, мир не без добрых людей!
В отношении ухода от Paradox и BDE. Мои программы предназначены для работы с локальной базой данных. Клиент-серверные технологии здесь ни к чему, хотя можно было бы уйти от TTable и перейти на SQL.
Вопрос в том, что не вижу альтернативы Paradox-у, как единственной бесплатной базе данных. Использовать Access - это значит поставить пользователя перед необходимостью иметь лицензию на MS Office. А вот этого мне и не хотелось бы. То же самое можно сказать и о SQL-серверах. Все приличные SQL-серверы стоят немалых денег. Может быть я ошибаюсь в отношении Paradox и BDE, но эта связка, мне кажется, не требует дополнительных затрат. Если ошибаюсь, поправьте, пожалуйста!
samos вне форума  
 
Непрочитано 07.10.2010, 14:12
#20
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от samos Посмотреть сообщение
Вопрос в том, что не вижу альтернативы Paradox-у, как единственной бесплатной базе данных. Использовать Access - это значит поставить пользователя перед необходимостью иметь лицензию на MS Office. А вот этого мне и не хотелось бы. То же самое можно сказать и о SQL-серверах. Все приличные SQL-серверы стоят немалых денег. Может быть я ошибаюсь в отношении Paradox и BDE, но эта связка, мне кажется, не требует дополнительных затрат. Если ошибаюсь, поправьте, пожалуйста!
На выбор:
  1. MS SQL Server Express Edition
  2. PostgreSQL
  3. My SQL
  4. Open Office - в нём есть некий аналог MS Access - приложение Base
Если к базе данных одновременно должны коннектиться более 10 человек - использовать MS Access не очень хорошее решение, об этом пишут в толстых книжках (со временем начнёт ощущаться существенное снижение скорости работы).
Имхо - лучше заюзать 1-й вариант, т.к. такие базы данных вы без проблем, при необходимости, всегда сможете перекинуть на более мощные платные версии.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 07.10.2010, 14:26
#21
samos


 
Регистрация: 16.06.2010
Сообщений: 43


Цитата:
Сообщение от hwd Посмотреть сообщение
На выбор:
  1. MS SQL Server Express Edition
  2. PostgreSQL
  3. My SQL
  4. Open Office - в нём есть некий аналог MS Access - приложение Base
Если к базе данных одновременно должны коннектиться более 10 человек - использовать MS Access не очень хорошее решение, об этом пишут в толстых книжках (со временем начнёт ощущаться существенное снижение скорости работы).
Имхо - лучше заюзать 1-й вариант, т.к. такие базы данных вы без проблем, при необходимости, всегда сможете перекинуть на более мощные платные версии.
Мои программы чисто технические, расчетные. Подключение нескольких пользователей к базе данных не предполагается. Есть ли смысл использовать SQL-сервер? В отношение OpenOffice - продукт малознакомый, литературы по нему практически нет. Даже объектная модель, мне кажется, не опубликована. Хотя альтернатива MS Office весьма привлекательная.
samos вне форума  
 
Непрочитано 07.10.2010, 14:39
#22
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от samos Посмотреть сообщение
Мои программы чисто технические, расчетные. Подключение нескольких пользователей к базе данных не предполагается. Есть ли смысл использовать SQL-сервер? В отношение OpenOffice - продукт малознакомый, литературы по нему практически нет. Даже объектная модель, мне кажется, не опубликована. Хотя альтернатива MS Office весьма привлекательная.
Я программно с опенофисом не работал, но не думаю, что там возникнут особые сложности. Имхо - проще установить на локальную машину MS SQL Server Express Edition. Она гораздо мощнее (по возможностям), надёжнее чем Access и ресурсов особо не ест. Информации по работе с MS SQL Server море (как программным способом, так и вручную).
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 07.10.2010, 14:55
#23
samos


 
Регистрация: 16.06.2010
Сообщений: 43


Цитата:
Сообщение от hwd Посмотреть сообщение
На выбор:
  1. MS SQL Server Express Edition
  2. PostgreSQL
  3. My SQL
  4. Open Office - в нём есть некий аналог MS Access - приложение Base
Если к базе данных одновременно должны коннектиться более 10 человек - использовать MS Access не очень хорошее решение, об этом пишут в толстых книжках (со временем начнёт ощущаться существенное снижение скорости работы).
Имхо - лучше заюзать 1-й вариант, т.к. такие базы данных вы без проблем, при необходимости, всегда сможете перекинуть на более мощные платные версии.

Использовать SQL-сервер для задач чисто расчетных, инженерных, когда к базе данных не предполагается подключение нескольких пользователей, имеет ли смысл?
В отношении OpenOffice Base, наверное вариант хороший, в качестве альтенативы Access, но уж больно мало информации (на русском) по этому продукту. Помню, с каким трудом несколько лет назад добывал информацию по OpenOffice Writer, чтобы выводить отчеты из программы.
samos вне форума  
 
Непрочитано 07.10.2010, 14:57
#24
ShaggyDoc

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


Цитата:
Использовать Access - это значит поставить пользователя перед необходимостью иметь лицензию на MS Office.
База данных в формате Access (mdb) и программа MS Access - разные вещи.

С базой данных работают из своей программы и пользователям MS Access не нужна вообще. Может, разве что, пригодиться самому разработчику для более удобного создания таблиц и других объектов. Хотя и для этого не обязательно иметь Accsess.

Есть и другие бесплатные решения. Для Delphi более удобным является Firebird. Для локальной базы - "embedded"-версия. К своей программе просто добавляете dll и пару файлов, которые можете распространять совершенно легально и бесплатно.

MS SQL вряд ли понадобится, хотя и с ним можно работать через ADO так же, как с Access.

PostgreSQL и MySQL - прекрасные серверные решения. Для локальной базы не нужны.

Ну, а "Open Office - в нём есть некий аналог MS Access - приложение Base" - это все равно, что "в Запорожце есть некий аналог Мерседеса". Base в Open Office - самое слабое место.

Есть, кстати, и другие варианты локальных баз данных. Например, тот же XML. Если объем данных не превышает тысяч 100 записей, работает прекрасно (в зависимости от парсера). Зато удобств сколько по сравнению со всеми "настоящими" БД....

Или, для Delphi - kbMemTable. Для однопользовательской работы очень удобна.
ShaggyDoc вне форума  
 
Непрочитано 07.10.2010, 14:58
#25
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от samos Посмотреть сообщение
Использовать SQL-сервер для задач чисто расчетных, инженерных, когда к базе данных не предполагается подключение нескольких пользователей, имеет ли смысл?
Я же вас не заставляю. Данная СУБД - мой выбор. Не вижу никаких проблем в её использовании. Если слово "сервер" ассоциируется у вас с небоскрёбом - это другой вопрос.
Цитата:
"Open Office - в нём есть некий аналог MS Access - приложение Base" - это все равно, что "в Запорожце есть некий аналог Мерседеса". Base в Open Office - самое слабое место.
Я не работал с Base, знаю только что оно есть. Ежели у вас есть опыт работы с ней, то вы можете адекватно оценивать, что есть "мерседес", а что "Запорожец", а ежели такого опыта нет, то...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 07.10.2010 в 15:05.
hwd вне форума  
 
Автор темы   Непрочитано 07.10.2010, 15:24
#26
samos


 
Регистрация: 16.06.2010
Сообщений: 43


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Есть, кстати, и другие варианты локальных баз данных. Например, тот же XML. Если объем данных не превышает тысяч 100 записей, работает прекрасно (в зависимости от парсера). Зато удобств сколько по сравнению со всеми "настоящими" БД....
Вот этим, видимо, стоит заняться. Думаю, что это современный подход для такого рода задач, какими мне приходится заниматься. Не могли бы посоветовать наиболее удачную, на Ваш взгляд литературу. А еще лучше, в электронном виде, так как купить хорошую книгу сейчас большая проблема.

Цитата:
Сообщение от hwd Посмотреть сообщение
Я же вас не заставляю. Данная СУБД - мой выбор. Не вижу никаких проблем в её использовании. Если слово "сервер" ассоциируется у вас с небоскрёбом - это другой вопрос.
Нисколько не сомневаюсь, что Вы работаете с прекрасной СУБД. Сейчас речь идет об оптимизации работы. Ведь если программу придется переписывать, а труд это не малый, то лучше выбрать то решение, у которого хорошее будущее. Менять стиль программирования и наработанные навыки - дело не простое. И здесь важно не ошибиться.
Хотя, я еще раз повторю, с Paradox и BDE у меня и пользователей программ никаких проблем не было. Но уходить от устаревших технологий рано или поздно придется.
samos вне форума  
 
Непрочитано 07.10.2010, 15:36
#27
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


samos
Ну раз уж вскользь поднялся ворос цены, предложу еще отказаться от Delphi в пользу Lazarus.

Что за программа? если не секрет?
zamtmn вне форума  
 
Автор темы   Непрочитано 07.10.2010, 15:48
#28
samos


 
Регистрация: 16.06.2010
Сообщений: 43


Цитата:
Сообщение от zamtmn Посмотреть сообщение
в пользу Lazarus
Никогда не слышал о таком продукте. Что это за система программирования? Вы с ней работаете?
samos вне форума  
 
Непрочитано 07.10.2010, 16:35
#29
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


да, работаю. кроссплатформенный, свободный "заменитель" delphi. очень доволен))
zamtmn вне форума  
 
Непрочитано 07.10.2010, 16:47
#30
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от zamtmn Посмотреть сообщение
кроссплатформенный
при работе с AutoCAD кроссплатформенность роли не играет. Для него нужна Windows.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 07.10.2010, 16:53
#31
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


>>при работе с AutoCAD кроссплатформенность роли не играет
человек ни слова ни сказал о своей программе, такчто возможно и играет. Вообще кроссплатформенность (в случае lazarus - абсолютно без усилий) штука нужная, линуксы наступают))
zamtmn вне форума  
 
Непрочитано 07.10.2010, 17:25
#32
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от zamtmn Посмотреть сообщение
>>при работе с AutoCAD кроссплатформенность роли не играет
человек ни слова ни сказал о своей программе, такчто возможно и играет. Вообще кроссплатформенность (в случае lazarus - абсолютно без усилий) штука нужная, линуксы наступают))
кросплатформенности сейчас полно, жава и .нет не исключение. не думаю, что лазарус более развит чем эти технологии. под х64 делфи вообще не существует в природе (насколько я знаю).
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 07.10.2010, 17:38
#33
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


Цитата:
под х64 делфи вообще не существует в природе (насколько я знаю).
лазарус x64 и под win и под lin - прекрасно заменяет отсутствующий делфи64.
Цитата:
кросплатформенности сейчас полно, жава и .нет не исключение. не думаю, что лазарус более развит чем эти технологии
Ну насчет развит - это с какой стороны глянуть. Живой, активно развиваемый проект с большим комьюнити.
В плюс Lazarus`у (вообще не лазарю а FPC) в отличее от вышеприведенных технологий - он дает нативный код на все поддерживаемые платформы.
Также плюсом (в рамках этого топика конечно) - средний дельфовый проект компилируется лазарем почти без изменений

Последний раз редактировалось zamtmn, 08.10.2010 в 13:18.
zamtmn вне форума  
 
Непрочитано 12.10.2010, 11:09
#34
EfremenkoDO


 
Регистрация: 24.12.2009
Санкт-Петербург
Сообщений: 59
<phrase 1=


Для того чтоб пути не сбивались в первоначальном варианте программы, следует прописать жесткие алиасы.

Хотя до сих пор остается загадкой как меняется поле TableName само по себе. Не может же ACAD перекрывать собой адресное поле вашей программы и писать свои данные "как-бы" случайно именно в то место где лежит значение TableName. Что кроме таблицы, связанное с БД, висит в приложении? Какой Delphi?
EfremenkoDO вне форума  
 
Автор темы   Непрочитано 12.10.2010, 12:14
#35
samos


 
Регистрация: 16.06.2010
Сообщений: 43


Цитата:
Сообщение от EfremenkoDO Посмотреть сообщение
Для того чтоб пути не сбивались в первоначальном варианте программы, следует прописать жесткие алиасы.

Хотя до сих пор остается загадкой как меняется поле TableName само по себе. Не может же ACAD перекрывать собой адресное поле вашей программы и писать свои данные "как-бы" случайно именно в то место где лежит значение TableName. Что кроме таблицы, связанное с БД, висит в приложении? Какой Delphi?
Алиасы не использую, чтобы не зависить от настроек BDE, которые могут быть изменены при инсталляции, в последующем, программ других разработчиков. В частности при переустановке BDE. По этой причине база данных у меня расположена в том же каталоге, что и exe-файл.
Никаких проблем никогда не возникало, пока не потребовалось запустить программу из AutoCad (или из другой директории). И это даже в том случае, если в TableName указать точный путь к DB-файлу.
Сейчас проблема устранена благодаря использованию SetCurrentDirectory(@ExtractFilePath(ParamStr(0))[1]);
Программа запускается из AutoCad-а и работает нормально.
Использую Delphi7.
samos вне форума  
 
Непрочитано 12.10.2010, 12:42
#36
ShaggyDoc

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


Цитата:
кроссплатформенный, свободный "заменитель" delphi. очень доволен))
В очередной раз цитирую: "Кому и кобыла невеста" (С)

Только почему-то по-прежнему покупают "несвободную" Delphi. Хотя все свободные "заменители" давно известны. Дураки, наверное. На DWG.RU не ходят.
ShaggyDoc вне форума  
 
Непрочитано 12.10.2010, 13:29
#37
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


>>Только почему-то по-прежнему покупают "несвободную" Delphi
скорее не покупают, а используют как "свободную"

>>В очередной раз цитирую: "Кому и кобыла невеста" (С)
Конечно, этож нужно гдето там разобраться, чтото там собрать, да ну, делфи круче...
zamtmn вне форума  
 
Непрочитано 12.10.2010, 14:45
#38
ShaggyDoc

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


Цитата:
Сообщение от zamtmn Посмотреть сообщение
скорее не покупают, а используют как "свободную"
Зайди на http://delphimaster.ru/, где профессионалы и поинтересуйся, покупают или нет. Там и "свободные" версии обсуждают, только спокойно, без необдуманных заявлений. Всему находится место.
ShaggyDoc вне форума  
 
Непрочитано 12.10.2010, 15:34
#39
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,352
<phrase 1=


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Зайди на http://delphimaster.ru/, где профессионалы и поинтересуйся, покупают или нет. Там и "свободные" версии обсуждают, только спокойно, без необдуманных заявлений. Всему находится место.
бываю там регулярно, и что? Я не говорю что не покупается - покупается, но совсем не так как во времена рассвета BORLAND. Не очень много места для delphi осталось в современной индустрии програмирования. В основном для обучения и начинающих.
Ты когда последний раз Lazarus пробовал? или мнение основано на http://delphimaster.ru?
Цитата:
Там и "свободные" версии обсуждают, только спокойно, без необдуманных заявлений. Всему находится место.
для обсуждений свободных версий есть более подходящие места. Что необдуманного в совете автору посмотреть свободный продукт? Если тебя вопрос цены не волнует, могу только позавидовать. меня волнует, автора тоже.
99% "програмистов" на Delphi дальше кнопко-формо-шлепства никуда не идут, зачем им за это платить?

зы. До кучи: unicode в delphi vcl появилось в 2009 если мне память не изменяет, x64 досихпор в роадмапе. Вот тебе и комерческий продукт...
zamtmn вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Вызов в среде AutoCAD приложения, написанного на Delphi и использующего базу данных



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Документация Проектировщику на Torrents DEM Разное 263 03.09.2024 12:25
запуск программы из AutoCADа kminas Программирование 19 15.06.2012 13:42
В русской версии AutoCAD 2010 SP1 32-bit файл Acad.PGP содержит ошибки. hwd Баги и пожелания в Autodesk 21 21.04.2010 20:27
Информация по идентификационным кодам программ в сетевых лицензиях Autodesk KSI AutoCAD 1 14.09.2009 15:59