Страница 21 из 31
Re: Советы по программированию на LabVIEW
Добавлено: 16 авг 2019, 10:57
rsv
База MS SQL Server. Подключаюсь через системный DSN. Для работы с базой использую ВП, имена которых начинаются на DB Tools. Наверное это и есть Database Connectivity Toolkit.
Из Вашего примера понятно как создать ссылку на файл подключения к базе данных. А я хотел создать ссылку на уже состоявшееся подключение что бы использовать его для нескольких выборок.
Пример из вложения у меня работает. Создаётся подключение, возвращает одно поле и закрывает подключение. Теперь я хочу выделенную красным часть кода вынести в ВПП, чтобы использовать в разных местах одно подключение, не закрывая его. Загвоздка в том, что я не понимаю как вернуть из ВПП ссылку на подключение.
Re: Советы по программированию на LabVIEW
Добавлено: 16 авг 2019, 13:57
ujin
У vi Open Connection выделенного Вами есть выход connection reference. Это и есть ссылка для всех последующих блоков. В вынесенном блоке просто ее повторите.
Как создавать vi, добавлять входы выходы, подключать думаю Вы знаете.
Эту ссылку можно использовать по времени столько, сколько позволяют настройки в SQL сервере. Последний vi в этой цепи Close Connection понятно закрывает соединение.
При ошибке от предыдущих блоков (даже если не установилось соединение) лучше закрывать соединение. После закрытия соединения в любом месте по connection reference все остальные vi, использующие ее будут давать ошибку.
Второй вариант открывать еще несколько соединений с этой же базой. Так же в зависимости от настроек количества подключений в базе способ нормально работает. В этом случае можно в разных циклах накидывать данных, а СУБД сама будет с очередью разбираться.
Re: Советы по программированию на LabVIEW
Добавлено: 16 авг 2019, 14:07
ujin
в разных местах одно подключение
Не забудьте после каждого vi EXE поставить FREE, а то будет утечка памяти.
Re: Советы по программированию на LabVIEW
Добавлено: 19 авг 2019, 15:58
rsv
ujin, я обязательно воспользуюсь Вашими советами для развития работы с базой данных, но сейчас у меня элементарные вещи не получаются.
Почему ссылка на соединение при возвращении из ВПП поменяла тип? Что я не так сделал?
Re: Советы по программированию на LabVIEW
Добавлено: 19 авг 2019, 16:30
IvanLis
Ссылка должна быть в единственном экземпляре, зачем Вы инициализацию в массив поместили?
Re: Советы по программированию на LabVIEW
Добавлено: 20 авг 2019, 15:49
rsv
зачем Вы инициализацию в массив поместили?
Вообще-то я просто хотел что бы этот код выполнился только один раз :)
Выкину цикл и попробую соединить...
Re: Советы по программированию на LabVIEW
Добавлено: 21 авг 2019, 09:28
rsv
Ну вот, общими усилиями участников форума удалось получить ссылку на соединение из ВПП и использовать для получения данных в ВП верхнего уровня.
Самым сложным для меня оказалось осмыслить, что для возвращения ссылки на соединение из ВПП надо в этом ВПП создать индикатор, т.к. передать данные из ВПП можно только с помощью индикаторов.
Поправьте, если не прав.
Re: Советы по программированию на LabVIEW
Добавлено: 22 авг 2019, 09:56
rsv
Задался целью получить имя алиаса для подключения к БД из ini-файла. Получилось, если указать абсолютный путь к ini-файлу. Но прописывать в приложение абсолютный путь - это неправильно. Да и не на каждом ПК можно задать любой путь. Как можно в LabVIEW задать относительный путь? Например, относительно главного ВП в проекте?
Re: Советы по программированию на LabVIEW
Добавлено: 22 авг 2019, 11:02
IvanLis
rsv писал(а):Как можно в LabVIEW задать относительный путь? Например, относительно главного ВП в проекте?
В палитре
File Constant:
-
Current VI's Path - относительно VI, но нужно быть аккуратным, т.к. при компиляции путь изменяется и нужно контролировать среду выполнения (
https://knowledge.ni.com/KnowledgeArtic ... AM&l=ru-RU)
-
Application Directory (
http://zone.ni.com/reference/en-XX/help ... directory/) более предпочтителен.
Re: Советы по программированию на LabVIEW
Добавлено: 22 авг 2019, 12:30
Blackman
При разработке ключи будут в labview.ini, в приложении (*.exe) в *.ini приложения.
Re: Советы по программированию на LabVIEW
Добавлено: 22 авг 2019, 13:05
rsv
IvanLis, спасибо. Поэксперементирую с обеими функциями.
в приложении (*.exe) в *.ini приложения.
Собственно, это и планировалось. Application Directory, скорее всего, и вернёт путь, где находится ехе.
Re: Советы по программированию на LabVIEW
Добавлено: 23 авг 2019, 07:32
rsv
Current VI's Path возвращает полный путь с именем файла, а Application Directory - только путь. При выполнении из ЕХЕ пути показывает одинаковые, а из среды в моём случае пути получились разные. С этим понятно.
Интересно другое. Для исполняемого файла LabVIEW создаёт свой ini-файл, совпадающий по имени с исполняемым файлом и записывает в него свои настройки. А если в проект добавить самописный ini-файл, то этот самописный файл полностью заменит файл, созданный LabVIEW и все настройки которые из него пропадают. Я не разбирался с этими настройками, но они, наверное, тоже важны для работы ЕХЕ? Может как-то можно сохранить свои настройки и настройки среды в один файл?
Re: Советы по программированию на LabVIEW
Добавлено: 23 авг 2019, 09:53
IvanLis
rsv писал(а):Может как-то можно сохранить свои настройки и настройки среды в один файл?
Да можно, как раз недавно обсуждалось посмотрите
эту тему
Re: Советы по программированию на LabVIEW
Добавлено: 26 авг 2019, 13:25
rsv
Вот получился ВПП для инициализации приложения. Выполняет следующее:
1. Открывает ini-файл StandCommon.ini;
2. Считывает алиас из секции Database, ключ Alias;
3. Подключается к базе данных и возвращает ссылку на созданное соединение;
Может кому пригодится...
Re: Советы по программированию на LabVIEW
Добавлено: 26 авг 2019, 14:27
Kosist
Стройте путь к файлу проще - не нужно Path конвертировать в String, а потом наоборот.
- Build Path.png (2.17 КБ) 4359 просмотров