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

Простейшие вопросы в области инженерной разработки
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

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

Сообщение Kosist »

jane_wild писал(а):Теперь вот думаю как делать resize фотографий и примерно подгонять под размер, без использования NI Vision
А зачем изменять размер? Чтобы подогнать под размер Picture контрола? Если да, то вот примеры - https://knowledge.ni.com/KnowledgeArtic ... 0019Ko3SAE
Мы делили апельсин - много наших полегло...
Artem.spb

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

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

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

1- сами данные
2-таблица цвета
3-ширина
4-высота
5-глубина
Если в базу загнать весь файл целиком то все данные там уже есть. Другое дело, если нужен какой-то поиск по данным. Например, найти все pict шиhиной >100500
Может, автор базы с этой целью доп столбцы создал.
Если же нужна просто картинка, то "строка" читается из базы, пишется обратно в файл, файл читается как jpg, и на выходе есть все параметры.
Аватара пользователя
dadreamer

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

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

Сообщение dadreamer »

Artem.spb писал(а):пишется обратно в файл, файл читается как jpg
Можно этой дополнительной операции избежать: http://labviewportal.org/viewtopic.php?p=79173#p79173
Если файл не в JPEG, а в PNG, то даже проще: http://labviewportal.org/viewtopic.php?p=79189#p79189
Аватара пользователя
IvanLis

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

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

Сообщение IvanLis »

Artem.spb писал(а):Дополнение: с вашей базой фокус не прошёл.
IvanLis подскажет, он знает по свежим следам :)
Сейчас не имею возможности проверить, да и искать с телефона не очень.
Вы должны понять, что БД это не файл, а некоторая сущность - СУБД ну и целый набор файлов (они могут быть неявно, а скрыты).
Для подключения к этой сущности, как и к железке, нужен интерфейс (в строке подключения - Провайдер), который может уже выступает в качестве прослойки между БД и Вашей прогой.
Разработчики СУБД стараются делать интерфейсы для популярных библиотек доступа типа ADO (ее наверное все поддерживают).

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

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

Сообщение jane_wild »

А зачем изменять размер?
Зачем хранить картинку размером в пару мегабайт, ведь если количество строк будет большим, то размер БД будет огромный. В связи с этим вопрос - будет ли работать в исполняемом файле (*.exe) этот VI? Нашла вот здесь
В общем цель выбрать jpg файл, уменьшить его до 200 x 200 пикселей (мне больше не нужно) и загнать его, как говорил Артем в одно поле базы данных. Что бы потом можно было эту картинку оттуда достать и отобразить на picture control.
Вложения
ZoomPan.vi
(34.4 КБ) 81 скачивание
Аватара пользователя
dadreamer

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

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

Сообщение dadreamer »

jane_wild писал(а):В связи с этим вопрос - будет ли работать в исполняемом файле (*.exe) этот VI? Нашла вот здесь
В общем цель выбрать jpg файл, уменьшить его до 200 x 200 пикселей (мне больше не нужно) и загнать его, как говорил Артем в одно поле базы данных. Что бы потом можно было эту картинку оттуда достать и отобразить на picture control.
В exe должно работать, просто ваше приложение начнёт зависеть от .NET Framework, если до этого не зависело. Ну, и далее по тексту, необходимо вставить Dispose + Close Ref везде, где нужно. Ниже чел попытался это сделать, но пропустил кое какие ссылки, а про Close вообще забыл. :) Кроме того, поток конвертируется в PNG, что может привести к излишнему выделению памяти (и привело, ниже по тексту). Лучше переделать поток на JPG и вместо PNG Data to LV Image VI вставить тот :vi: , о котором я писал выше.
Artem.spb

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

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

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

В общем цель выбрать jpg файл, уменьшить его до 200 x 200 пикселей
Как говорится, дёшево и сердито :D
zoom.png
Без всяких .NEt и Vision
Аватара пользователя
dadreamer

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

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

Сообщение dadreamer »

Рамка идёт бонусом :) И ещё ей придётся следить, чтобы изображения были квадратные, иначе вот так получится:
Вложения
ertertretet.jpg
Artem.spb

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

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

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

Рамка идёт бонусом :) И ещё ей придётся следить, чтобы изображения были квадратные
Это я оставил бонусом для саморазвития.
Когда мне надо было на экране ужимать, я изображение дополнительно в центр смещал, чтобы красиво смотрелось.
Аватара пользователя
dadreamer

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

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

Сообщение dadreamer »

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

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

Сообщение jane_wild »

Извиняюсь за молчание - была в отъезде. Возращаясь к вопросу о resize
Artem.spb писал(а):
В общем цель выбрать jpg файл, уменьшить его до 200 x 200 пикселей
Как говорится, дёшево и сердито :D
zoom.png
Без всяких .NEt и Vision
Именно так я сейчас и сделала, но хотелось бы качества.. Там ведь копируестя весь контрол включая label (если она видна).
dadreamer писал(а):До кучи, способ ресайза через WinAPI: https://stackoverflow.com/questions/428 ... stretchblt
За основу можно взять этот :vi: (85% там уже готово): http://labviewportal.org/viewtopic.php?p=64756#p64756 Заменить функцию BitBlt на StretchBlt, возможно создать ещё один доп. контекст (dc), загрузить в него bitmap - в принципе, это всё.
Честно пыталась - ничего не получаестя. Как по прототипу указать правильные параметры, а потом их еще и правильно подсоединить... мои робкие попытки убеждить руководство о покупки NI Vision успехом не увенчались :(
Загнать картинку в одно поле также не получаестя. Какой тип данных я должна присвоить полю в MS Access, при создании таблицы, где планируестся хранить картинку? OLE Object? Attachment? String? Memo? Вообщем вопросов много - ответов мало, но как говориться "дорогу осилит идущий"
В любом случае ребята спасибо за помощь.
Аватара пользователя
IvanLis

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

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

Сообщение IvanLis »

jane_wild писал(а):Загнать картинку в одно поле также не получаестя. Какой тип данных я должна присвоить полю в MS Access, при создании таблицы, где планируестся хранить картинку? OLE Object? Attachment? String? Memo?
В Long String не войдет, там ограничение 64000, а у Вас получается 200*200*4=160000 byte.
Берите BLOB поле, это универсальный стандарт загнать в него можно пару Gbyte, к тому же он универсален и поддерживается большинством СУБД. Работать с ним нужно как с набором byte, т.е. фактически это как бинарный файл внутри БД.
Аватара пользователя
jane_wild
master
master
Сообщения: 459
Зарегистрирован: 30 июн 2016, 02:11
Версия LabVIEW: 2020
Благодарил (а): 83 раза
Поблагодарили: 15 раз
Контактная информация:

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

Сообщение jane_wild »

IvanLis, Спасибо за информацию. Я тут подумала может пока не поздно стоит отказаться от MS Access в пользу других БД. Кто что посоветует? Требований два: Наличие бесплатного инструмента для просмотра/редактирования БД, возможность работы с БД при помощи NI Database Toolkit. Спасибо
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

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

Сообщение Borjomy_1 »

jane_wild, вы тут на холивар нас подписываете? )))
Мое первое предложение - MySQL. В принципе, даже есть библиотека (открытая, с исходниками) для работы с ней напрямую. Но и через NI Database Toolkit, при наличии установленных драйверов, работает. Только ставить надо драйвера той разрядности, какая Labview.
Аватара пользователя
IvanLis

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

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

Сообщение IvanLis »

jane_wild писал(а):Я тут подумала может пока не поздно стоит отказаться от MS Access в пользу других БД. Кто что посоветует? Требований два: Наличие бесплатного инструмента для просмотра/редактирования БД, возможность работы с БД при помощи NI Database Toolkit. Спасибо
А с каких это пор MS Access бесплатной стала?
Данную СУБД в некоторых случаях удобно использовать, в плане переносимости - одним файлом, но по хорошему, для просмотра необходим MS Office.

БД необходимо выбирать исходя из поставленных целей, т.к. например некоторые при установке тянут много пакетов, но достаточно функциональны (MySQL, PostgreSQL).
А вот SQLite не требует установки, хранится все в одном файле, но малый набор типов данных полей (в принципе легко обходится), проблемы с блокировками при многопользовательском доступе по причине некоторой пароноидальности по поводу целостности данных и при хранении больших объемов тормознутость.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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