Olga94
27.Июнь.2024 12:20:56
1
Здравствуйте Уважаемые специалисты nanoCAD!
Подскажите пожалуйста, как через внесение изменений в реестре (какие ключи?) задать локальный тип базы для NanoCAD - переключить на “Источник данных - локальная база”?
*Если задать значение параметру “SelectDbDlgLocalDb”= “C:\ProgramData\anosoft
anoCAD x64 24.0\DataRW\std.mdf” с помощью внесения изменений в реестре по пути: “HKCU\SOFTWARE\anosoft
anoCAD x64\24.0
CAD\McBrowser”, то все равно не меняется - не меняется “источник” на “локальная база”, добавляется лишь путь до mdf, т.е. получается как на рисунке ниже:
проще переключать базу чрез нанокомстроку
для локальной мдф
(vl-cmdf "spchangedb" "z:\\BD_SQL\ ana\\std.mdf")
не умеет пробелы в пути
результат в момент выполнения пишется в AppOptions.xml, оттуда жэж и читается при старте наны или при перезагрузке-изменении AppOptions.xml
для постгресс
(vl-cmdf "spchangedb" "pgsql:nspds240")
для большого sql
(vl-cmdf "spchangedb" "SQL:C-SQLSERVER:mc_spds9")
Olga94
28.Июнь.2024 03:38:20
3
Команда spchangedb только в CПДС?
Нужно еще в чистом NanoCAD. Может через команду “params”?
MCAD
28.Июнь.2024 03:50:16
4
Команда spchangedb только в CПДС?
Нужно еще в чистом NanoCAD. Может через команду “params”?
Да, spchangedb для СПДС, mcchangedb для механики
Olga94
28.Июнь.2024 03:53:58
5
В чистом NanoCAD программно можно изменить источник (базу)?
В чистом NanoCAD программно можно изменить источник (базу)?
наверное возможно через Multicad.NET
McParamManager._GetParam (int)
internal Object _GetParam(int idParam);
McParamManager.SetParam (Object^, int)
public bool SetParam(ref Object param, int idParam);
idParam=9
Olga94
28.Июнь.2024 05:44:20
8
А можете подсказать как сделать через редактирование xml:
путь можно узнать например через реестр (HKEY_CURRENT_USER\SOFTWARE\anosoft
anoCAD x64\24.0
CAD\MCSParams, AppOptions_ru-RU)
редактируем это xml (vbs):
Set objXMLDoc = CreateObject(“Microsoft.XMLDOM”)
objXMLDoc.async = False
objXMLDoc.load(“AppOptions.xml”)
Set ElemList = objXMLDoc.getElementsByTagName(“Источник данных??”)
plot = ElemList.item(0).Text
ElemList.item(0).text=“НОВОЕ ЗНАЧЕНИЕ”
objXMLDoc.save(“AppOptions.xml”)
Только как исправить, чтобы найти узел “” и заменить его на например “z:\BD_SQL
ana\std.mdf”?
Фрагмент из xml, где нужно "value=“pgsql:ncad_24_0” поменять на "value=“z:\BD_SQL
ana\std.mdf”:
' <section sid="2" name="Доступ к базам данных" icon="22" slide="-1">
' <param id="9" name="Источник данных" ctrl="button_string" value="pgsql:ncad_24_0"/>
' <param id="13153" name="Путь к внешним файлам проектов" ctrl="dialog_system_folder_browser" hidden="1" value="[DATA_ALL_RW]"/>
' <param id="12" ctrl="edit_int" hidden="1" name="Standards filter" value="1021"/>
' <param id="13" name="Фильтр стандартов" ctrl="button_string" hidden="1" value="ЕСКД, ISO, DIN, JUS, PN, GB, CSN, NF, IS"/>
' <param id="14" name="Фильтр номенклатуры" ctrl="button_string" hidden="1" value="Отключен"/>
' </section>
через редактирование хмл будет работать только если отредактировать перед нанозапуском, выше жэж написал, читает его только при старте
/// <summary>
/// переключалка нанобаз
/// </summary>
[Rtm.CommandMethod("drz_changedb", Rtm.CommandFlags.Session)]
public void changedbMod()
{
string oldBd = Multicad.AplicationServices.McParamManager.GetStringParam(9);//получаем путь к базе текущего приложения
string sMDF = "z:\\BD_SQL\\nana\\std.mdf";//local *.mdf
bool bsetBD = Multicad.AplicationServices.McParamManager.SetParam(sMDF, 9);
string sSQL = "SQL:C-SQLSERVER:mc_spds9";
bsetBD = Multicad.AplicationServices.McParamManager.SetParam(sSQL, 9);
string sPSQL = "pgsql:nspds240";
bsetBD = Multicad.AplicationServices.McParamManager.SetParam(sPSQL, 9);
}
уот так переключает
это тестовый код,
потом можно дооформить, чтобы передавать в класс параметром базу, или открывать файловый диалог..
PS переходи на светлую сторону .NET C#
значительно проще, возможностей и примеров больше чем на басик, питон или лисп
MCAD
28.Июнь.2024 06:51:14
10
Вижу пользователя, который насоздавал своих таблиц и отредактировал под себя и тут добрый волшебник взял и сменил БД без его ведома
Olga94
28.Июнь.2024 07:01:25
11
библиотеки mapimgd.dll и mapibasetypes.dll можете выложить? Хотя они вроде есть в папке с nanoCAD
«Лицо без шрама» или первые шаги в Multicad.NET API 7 (для Nanocad 8.1)
Вижу пользователя, который насоздавал своих таблиц и отредактировал под себя и тут добрый волшебник взял и сменил БД без его ведома
ну зачем жэж волшебник, для большинства пользователей базы темный лес, а где лежит и как подключить вообще космос…
поэтому так
или так
Счастье для всех, даром, и пусть никто не уйдёт обиженный!(с)
MCAD
28.Июнь.2024 07:26:50
14
где лежат и как настроить, пользователю сложно объяснить, вот создать таблицу в Верхнем колонтитуле на 50 строк , сохранив в базу перезаписав с тем де именем - любимое занятие.
А потом - “куда пропали мои таблицы”
в сетевой базе перезапишет только свои объекты, в локальной все объекты его
Право пользователя, проблемы то же его)))
библиотеки mapimgd.dll и mapibasetypes.dll можете выложить? Хотя они вроде есть в папке с nanoCAD
«Лицо без шрама» или первые шаги в Multicad.NET API 7 (для Nanocad 8.1)
вступай в клуб разработчиков, там тебе и SDK со справкой и примерами и форум техподдержки
все необходимые библиотеки есть в нанокаде, единственное при добавлении в проект
копировать локально=false
вот быстрый старт от
Первое приложение NET для nanoCAD 23+ : AutoLISP / VisualLISP
мне показалось несправедливым, что пользователи голой платформы лишены радости переключать базы мультикад из ком строки..
исправляю это недоразумение
changedbmod-nc.zip (4,6 КБ)
загрузить сборку (загприл )
вызов drz_changedb
дальше подставляем путь к mdf (можно с пробелами) - z:\BD SQL
ana\std.mdf
либо базу postgreSQL - pgsql:nspds240
SQL - SQL:C-SQLSERVER:mc_spds9
в спдс и механике может быть излишне там есть (spchangedb, mcchangedb) но который год прошу, чтоб починили баг с пробелом… пришлось чинить самому)))
ссылочка на гит
GitHub - doctorRaz/ChangedbMod: Переключение базы данных MultiCAD
Olga94
01.Июль.2024 10:51:10
18
ChangedbMod_NC.zip Скажите пожалуйста работает во всех версиях NanoCAD 22-24?
ChangedbMod_NC.zip Скажите пожалуйста работает во всех версиях NanoCAD 22-24?
проверил
В 20, 22-24 работает
upd даже в нано20 работает.