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

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

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

Postby Kosist on 23 Jul 2019, 14:47

jane_wild wrote:Теперь вот думаю как делать resize фотографий и примерно подгонять под размер, без использования NI Vision

А зачем изменять размер? Чтобы подогнать под размер Picture контрола? Если да, то вот примеры - https://knowledge.ni.com/KnowledgeArtic ... 0019Ko3SAE
Мы делили апельсин - много наших полегло...
User avatar
Kosist
expert
expert
 
Posts: 1009
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 282
CLAD I/O VIP students

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

Postby Artem.spb on 23 Jul 2019, 15:38

1- сами данные
2-таблица цвета
3-ширина
4-высота
5-глубина


Если в базу загнать весь файл целиком то все данные там уже есть. Другое дело, если нужен какой-то поиск по данным. Например, найти все pict шиhиной >100500
Может, автор базы с этой целью доп столбцы создал.
Если же нужна просто картинка, то "строка" читается из базы, пишется обратно в файл, файл читается как jpg, и на выходе есть все параметры.
Artem.spb
expert
expert
 
Posts: 1677
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 266
CLD hardware I/O VIP freelance

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

Postby dadreamer on 23 Jul 2019, 16:18

Artem.spb wrote:пишется обратно в файл, файл читается как jpg

Можно этой дополнительной операции избежать: viewtopic.php?p=79173#p79173
Если файл не в JPEG, а в PNG, то даже проще: viewtopic.php?p=79189#p79189
User avatar
dadreamer
professor
professor
 
Posts: 3338
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 845
I/O VIP vision internet

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

Postby IvanLis on 23 Jul 2019, 22:54

Artem.spb wrote:Дополнение: с вашей базой фокус не прошёл.
IvanLis подскажет, он знает по свежим следам :)


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

Вот Вам нужно выбрать, какого Провайдера использовать, установить интерфейс для СУБД, а уже потом стучаться в БД.
User avatar
IvanLis
professor
professor
 
Posts: 4840
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2015, 2016
Karma: 784
hardware VIP bloggers teachers

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

Postby jane_wild on 24 Jul 2019, 05:54

А зачем изменять размер?

Зачем хранить картинку размером в пару мегабайт, ведь если количество строк будет большим, то размер БД будет огромный. В связи с этим вопрос - будет ли работать в исполняемом файле (*.exe) этот VI? Нашла вот здесь
В общем цель выбрать jpg файл, уменьшить его до 200 x 200 пикселей (мне больше не нужно) и загнать его, как говорил Артем в одно поле базы данных. Что бы потом можно было эту картинку оттуда достать и отобразить на picture control.
Attachments
ZoomPan.vi
(34.4 KiB) Downloaded 24 times
User avatar
jane_wild
advanced
advanced
 
Posts: 165
Joined: 30 Jun 2016, 02:11
LabVIEW Version: 2016
Karma: 8

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

Postby dadreamer on 24 Jul 2019, 11:09

jane_wild wrote:В связи с этим вопрос - будет ли работать в исполняемом файле (*.exe) этот VI? Нашла вот здесь
В общем цель выбрать jpg файл, уменьшить его до 200 x 200 пикселей (мне больше не нужно) и загнать его, как говорил Артем в одно поле базы данных. Что бы потом можно было эту картинку оттуда достать и отобразить на picture control.

В exe должно работать, просто ваше приложение начнёт зависеть от .NET Framework, если до этого не зависело. Ну, и далее по тексту, необходимо вставить Dispose + Close Ref везде, где нужно. Ниже чел попытался это сделать, но пропустил кое какие ссылки, а про Close вообще забыл. :) Кроме того, поток конвертируется в PNG, что может привести к излишнему выделению памяти (и привело, ниже по тексту). Лучше переделать поток на JPG и вместо PNG Data to LV Image VI вставить тот :vi: , о котором я писал выше.
User avatar
dadreamer
professor
professor
 
Posts: 3338
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 845
I/O VIP vision internet

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

Postby Artem.spb on 24 Jul 2019, 12:47

В общем цель выбрать jpg файл, уменьшить его до 200 x 200 пикселей

Как говорится, дёшево и сердито :D
zoom.png

Без всяких .NEt и Vision
Artem.spb
expert
expert
 
Posts: 1677
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 266
CLD hardware I/O VIP freelance

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

Postby dadreamer on 24 Jul 2019, 15:48

Рамка идёт бонусом :) И ещё ей придётся следить, чтобы изображения были квадратные, иначе вот так получится:
Attachments
ertertretet.jpg
User avatar
dadreamer
professor
professor
 
Posts: 3338
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 845
I/O VIP vision internet

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

Postby Artem.spb on 24 Jul 2019, 16:05

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

Это я оставил бонусом для саморазвития.
Когда мне надо было на экране ужимать, я изображение дополнительно в центр смещал, чтобы красиво смотрелось.
Artem.spb
expert
expert
 
Posts: 1677
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 266
CLD hardware I/O VIP freelance

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

Postby dadreamer on 24 Jul 2019, 20:01

До кучи, способ ресайза через WinAPI: https://stackoverflow.com/questions/428 ... stretchblt
За основу можно взять этот :vi: (85% там уже готово): viewtopic.php?p=64756#p64756 Заменить функцию BitBlt на StretchBlt, возможно создать ещё один доп. контекст (dc), загрузить в него bitmap - в принципе, это всё.
User avatar
dadreamer
professor
professor
 
Posts: 3338
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2019
Karma: 845
I/O VIP vision internet

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

Postby jane_wild on 25 Jul 2019, 21:45

Извиняюсь за молчание - была в отъезде. Возращаясь к вопросу о resize
Artem.spb wrote:
В общем цель выбрать jpg файл, уменьшить его до 200 x 200 пикселей

Как говорится, дёшево и сердито :D
zoom.png

Без всяких .NEt и Vision

Именно так я сейчас и сделала, но хотелось бы качества.. Там ведь копируестя весь контрол включая label (если она видна).
dadreamer wrote:До кучи, способ ресайза через WinAPI: https://stackoverflow.com/questions/428 ... stretchblt
За основу можно взять этот :vi: (85% там уже готово): viewtopic.php?p=64756#p64756 Заменить функцию BitBlt на StretchBlt, возможно создать ещё один доп. контекст (dc), загрузить в него bitmap - в принципе, это всё.

Честно пыталась - ничего не получаестя. Как по прототипу указать правильные параметры, а потом их еще и правильно подсоединить... мои робкие попытки убеждить руководство о покупки NI Vision успехом не увенчались :(
Загнать картинку в одно поле также не получаестя. Какой тип данных я должна присвоить полю в MS Access, при создании таблицы, где планируестся хранить картинку? OLE Object? Attachment? String? Memo? Вообщем вопросов много - ответов мало, но как говориться "дорогу осилит идущий"
В любом случае ребята спасибо за помощь.
User avatar
jane_wild
advanced
advanced
 
Posts: 165
Joined: 30 Jun 2016, 02:11
LabVIEW Version: 2016
Karma: 8

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

Postby IvanLis on 26 Jul 2019, 13:48

jane_wild wrote:Загнать картинку в одно поле также не получаестя. Какой тип данных я должна присвоить полю в MS Access, при создании таблицы, где планируестся хранить картинку? OLE Object? Attachment? String? Memo?


В Long String не войдет, там ограничение 64000, а у Вас получается 200*200*4=160000 byte.
Берите BLOB поле, это универсальный стандарт загнать в него можно пару Gbyte, к тому же он универсален и поддерживается большинством СУБД. Работать с ним нужно как с набором byte, т.е. фактически это как бинарный файл внутри БД.
User avatar
IvanLis
professor
professor
 
Posts: 4840
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2015, 2016
Karma: 784
hardware VIP bloggers teachers

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

Postby jane_wild on 26 Jul 2019, 14:11

IvanLis, Спасибо за информацию. Я тут подумала может пока не поздно стоит отказаться от MS Access в пользу других БД. Кто что посоветует? Требований два: Наличие бесплатного инструмента для просмотра/редактирования БД, возможность работы с БД при помощи NI Database Toolkit. Спасибо
User avatar
jane_wild
advanced
advanced
 
Posts: 165
Joined: 30 Jun 2016, 02:11
LabVIEW Version: 2016
Karma: 8

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

Postby Borjomy_1 on 26 Jul 2019, 14:26

jane_wild, вы тут на холивар нас подписываете? )))
Мое первое предложение - MySQL. В принципе, даже есть библиотека (открытая, с исходниками) для работы с ней напрямую. Но и через NI Database Toolkit, при наличии установленных драйверов, работает. Только ставить надо драйвера той разрядности, какая Labview.
Borjomy_1
expert
expert
 
Posts: 1905
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 332
VIP

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

Postby IvanLis on 26 Jul 2019, 15:57

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


А с каких это пор MS Access бесплатной стала?
Данную СУБД в некоторых случаях удобно использовать, в плане переносимости - одним файлом, но по хорошему, для просмотра необходим MS Office.

БД необходимо выбирать исходя из поставленных целей, т.к. например некоторые при установке тянут много пакетов, но достаточно функциональны (MySQL, PostgreSQL).
А вот SQLite не требует установки, хранится все в одном файле, но малый набор типов данных полей (в принципе легко обходится), проблемы с блокировками при многопользовательском доступе по причине некоторой пароноидальности по поводу целостности данных и при хранении больших объемов тормознутость.
User avatar
IvanLis
professor
professor
 
Posts: 4840
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2015, 2016
Karma: 784
hardware VIP bloggers teachers

PreviousNext

Return to Для чайников

Who is online

Users browsing this forum: No registered users and 1 guest

cron