Обновление записи в базе данных

Простейшие вопросы в области инженерной разработки
Artem.spb

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Обновление записи в базе данных

Сообщение Artem.spb »

Именно так я сейчас и сделала, но хотелось бы качества.. Там ведь копируестя весь контрол включая label (если она видна).
что мешает сделать sub, в котором есть котнрол нужного размера и вида?
А уж обрезать по краям пару пикселов - простейшая операция.
Если она вдруг не простейшая, то вот
img.png
img.png (24.16 КБ) 2479 просмотров
...отказаться от MS Access в пользу других БД. ....возможность работы с БД при помощи NI Database Toolkit. Спасибо
Почему именно NI Database Toolkit?
Планируется универсальность и переход от одного движка к другому? А данных и запросов в секунду будет море?
Если нет, и данных не очень много, то мой выбор SQLite. И бесплатно, и сервак поднимать не нужно. Только для работы нужен отдельный тулкит (бесплатно в VIPM)

Если прям сервак хочется, то конкретно советовать и не советовать ничего не буду. И с дельфином работал, и мелкософтом пользовался, и к китайскому алибабе подключался. Глюков катастрофических не замечал
мои робкие попытки убеждить руководство о покупки NI Vision успехом не увенчались :(
платить 4600 за модуль, а потом ещё 500 за рабочую лицензию ради ресайза картинок? :shok: Да у вас богатая контра.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Обновление записи в базе данных

Сообщение Artem.spb »

но малый набор типов данных полей
Как таковых типов данных там вообще нет.
Указывают его исключительно для смотрелок, чтобы они знали, в каком виде показать пользователю эти 0-1-0-1
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Обновление записи в базе данных

Сообщение dadreamer »

jane_wild писал(а):
dadreamer писал(а):До кучи, способ ресайза через WinAPI: https://stackoverflow.com/questions/428 ... stretchblt
За основу можно взять этот :vi: (85% там уже готово): http://labviewportal.org/viewtopic.php?p=64756#p64756 Заменить функцию BitBlt на StretchBlt, возможно создать ещё один доп. контекст (dc), загрузить в него bitmap - в принципе, это всё.
Честно пыталась - ничего не получаестя. Как по прототипу указать правильные параметры, а потом их еще и правильно подсоединить...
Если всё ещё нужно, то вот.
Stretch Image (WinAPI).rar
lv2016
(76.83 КБ) 110 скачиваний
Вложения
2019-07-26_22-29-26.jpg
Аватара пользователя
jane_wild
master
master
Сообщения: 459
Зарегистрирован: 30 июн 2016, 02:11
Версия LabVIEW: 2020
Благодарил (а): 83 раза
Поблагодарили: 15 раз
Контактная информация:

Re: Обновление записи в базе данных

Сообщение jane_wild »

dadreamer, WOW! Определенно в копилку! Огромнейшее спасибо, то что нужно. А так же спасибо что делитесь знаниями без лишних вопросов.
Аватара пользователя
jane_wild
master
master
Сообщения: 459
Зарегистрирован: 30 июн 2016, 02:11
Версия LabVIEW: 2020
Благодарил (а): 83 раза
Поблагодарили: 15 раз
Контактная информация:

Re: Обновление записи в базе данных

Сообщение jane_wild »

А с каких это пор MS Access бесплатной стала?
Данную СУБД в некоторых случаях удобно использовать, в плане переносимости - одним файлом, но по хорошему, для просмотра необходим MS Office.
Дело в том что лицензированный MS Office установлен в каждом компьютере, где планируется использовать БД, но это на случай если LV программа откажется по каким то причинам работать. Поэтому первоначальный выбор пал на Access. Нашла в интернете manual по работе с NI Database toolkit, правда датированный 2008 годом, вот сижу изучаю.
Так как я не IT-шница задам наверное глупый вопрос, и все же... Задача следующая: группа из 10 человек, каждый из своего PC должен иметь доступ к БД, запросы будут редкими, поэтому можно сказать нагрузка будет практически нулевой. Есть сервер. Доступ к расшаренным папкам которого есть у каждого юзера, вот в одной из таких папок и планируется разметить БД. Но буква диска этого сервера отличается у разных компьютеров, поэтому путь к моей БД будет разный. Как поступить в данном случае? Сделать ini файл, хранить в нем этот путь и при запуске ехе приложения считывать его? Либо я чего то не понимаю....
Вложения
DB_Manual.pdf
(681.59 КБ) 190 скачиваний
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: Обновление записи в базе данных

Сообщение IvanLis »

jane_wild писал(а): Есть сервер. Доступ к расшаренным папкам которого есть у каждого юзера, вот в одной из таких папок и планируется разметить БД. Но буква диска этого сервера отличается у разных компьютеров, поэтому путь к моей БД будет разный. Как поступить в данном случае? Сделать ini файл, хранить в нем этот путь и при запуске ехе приложения считывать его? Либо я чего то не понимаю....
Вам на каждом отдельно компьютере нужно создать UDL файл с информацией о подключении (либо прописать их в системе).
См. стр. 3-1 в выложенном руководстве.

Программа при подключении будет брать все настройки из него.
Т.е. программа статична, изменяются только настройки соединения в файле.
ujin
user
user
Сообщения: 94
Зарегистрирован: 28 июл 2019, 13:16
Версия LabVIEW: 19
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

Re: Обновление записи в базе данных

Сообщение ujin »

Есть универсальный способ
1. На сервере поднять Postgresql сервер. Настроить доступы. Создать базу данный с нужными таблицами и полями
2. У клиентов определить набор файлов для работы библиотеки доступа pg_ctl- библиотека доступа к postgresql серверу. Можно просто установить pgsql_odbc и взять необходимые файлы из установленной папки.
3. Воспользоваться библиотеками для Labview с доступом к postgresql серверу через pg_ctl.

Способ универсальный, подходит для WIN_XP - WIN10, Linux. Для любых версий Labview.
Postgresql сервер бесплатный. Библиотеки pg_ctl бесплатные. NI Database Toolkit не нужен. Скорость точно не меньше чем через NI Database Toolkit.
Обновление будет в виде текстового SQL запроса вида UPDATE public."par" SET "value"=0.00000E+0 WHERE "fcode"='H1.EP.BT3' AND "fcodef"='XQ01';

Требуются знания как поднять, настроить, администрировать postgresql сервер, немного знаний как использовать вызовы dll в Labview и немного знания SQL.
Пользуюсь данным способом уже более 3 лет, есть готовые решения. Если заинтересует готов поделиться.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Обновление записи в базе данных

Сообщение Artem.spb »

Есть универсальный способ
1. На сервере поднять Postgresql сервер.
и так вот, ненавязчиво, как бы не всколыхнуть волну споров, каждый продвигает свою любимую СУБД :)
Аватара пользователя
jane_wild
master
master
Сообщения: 459
Зарегистрирован: 30 июн 2016, 02:11
Версия LabVIEW: 2020
Благодарил (а): 83 раза
Поблагодарили: 15 раз
Контактная информация:

Re: Обновление записи в базе данных

Сообщение jane_wild »

Вам на каждом отдельно компьютере нужно создать UDL файл с информацией о подключении (либо прописать их в системе).
Так и сделала на двух PC создала UDL файлы, как описано здесь. При создания UDL нажимала кнопочки test connection, окошко говорило об успешном соединении с БД. Их содержимое получилось одинаковое, за исключением пути Data Source.

Код: Выделить всё

[oledb]
; Everything after this line is an OLE DB initstring
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:\Projects\......\MyDB.accdb;Persist Security Info=False
Но столкнулась с неожиданным поведением - но одном PC (дома) работает на втором (на работе) нет, а конфигурация PC едентичная, за исключением самой ОС . На обоих PC c установленны LabVIEW 2016 а также MS Office 2016, на win10 работает, на win7 нет. Причем там где не работает, если использовать строку для подключения вместо UDL то все Ok . Не могу понять в чем причина. Выскакивает вот эта ошибка
DB_Error.PNG
ADO_Error.PNG
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»