запись файла с расширением exe в базу данных

Работа с файлами и базами данных

запись файла с расширением exe в базу данных

Postby rt5yhd on 03 Sep 2015, 18:25

Здравствуйте, помогите пожалуйста. Мне нужно в базу данных вставить файл с расширением exe, vi для соединения к базе я сделал (рис.jpg). Делаю insert с помощью DB Tools Insert Data.vi, формирую кластер Data. Как значения integer и string вставлять знаю, а как вставить exe-шник в поле типа BLOB ?
Attachments
рис.JPG
rt5yhd
beginner
beginner
 
Posts: 32
Joined: 29 Apr 2015, 16:22
LabVIEW Version: 2015
Karma: 0

Re: запись файла с расширением exe в базу данных

Postby dadreamer on 03 Sep 2015, 18:29

Никогда с этим не работал, но рискну предположить, что файл сперва нужно считать с помощью Read from Binary File, а затем бинарные данные записать в БД.
BLOB (англ. Binary Large OBject — двоичный большой объект) — массив двоичных данных.
User avatar
dadreamer
professor
professor
 
Posts: 3058
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 760
I/O VIP vision internet

Проблема с запуском exe файла из Labview

Postby rt5yhd on 04 Sep 2015, 15:24

Здравствуйте, помогите пожалуйста решить проблему. Не запускается приложение exe из labview (open.jpg).
Возникает ошибка "Labview: Memory is full".
Файл program.exe весит 50 Мбт.
Attachments
open.JPG
rt5yhd
beginner
beginner
 
Posts: 32
Joined: 29 Apr 2015, 16:22
LabVIEW Version: 2015
Karma: 0

Re: Проблема с запуском exe файла из Labview

Postby dadreamer on 04 Sep 2015, 15:38

Или путь неверный, или такого файла по указанному пути не существует.
Пример вызова :vi: :
Attachments
2015-09-04_17-35-41.jpg
2015-09-04_17-35-41.jpg (21.61 KiB) Viewed 9010 times
2015-09-04_17-36-28.jpg
2015-09-04_17-36-28.jpg (21.9 KiB) Viewed 9010 times
User avatar
dadreamer
professor
professor
 
Posts: 3058
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 760
I/O VIP vision internet

Re: запись файла с расширением exe в базу данных

Postby rt5yhd on 04 Sep 2015, 15:49

dadreamer wrote:Никогда с этим не работал, но рискну предположить, что файл сперва нужно считать с помощью Read from Binary File, а затем бинарные данные записать в БД.
BLOB (англ. Binary Large OBject — двоичный большой объект) — массив двоичных данных.
Сделал запись бинарных данных в БД, но теперь возникла другая проблема: как запустить exe файл из базы данных, т.е. делаю select запрос и что с этими бинарными данными делать, чтобы запустился exe файл.
rt5yhd
beginner
beginner
 
Posts: 32
Joined: 29 Apr 2015, 16:22
LabVIEW Version: 2015
Karma: 0

Re: запись файла с расширением exe в базу данных

Postby dadreamer on 04 Sep 2015, 15:53

rt5yhd, очевидно, что вам нужно записать эти данные в файл с помощью Write to Binary File, а затем запустить файл с помощью System Exec.
P.S. Передавать через сервер файлы с помощью базы данных - оригинально, я бы не додумался. :D
User avatar
dadreamer
professor
professor
 
Posts: 3058
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 760
I/O VIP vision internet

Re: Проблема с запуском exe файла из Labview

Postby dadreamer on 04 Sep 2015, 19:46

rt5yhd wrote:Возникает ошибка "Labview: Memory is full".

Кстати говоря, System Exec возвращает не внутреннюю ошибку :labview: , а ошибку ОС, т.е. Windows. Ошибки WinAPI описаны в MSDN, но на практике обычно пользуются функцией FormatMessage для получения описания ошибки в текущей локали. Я у себя давно держу вот такой :vi: :
Get Win32 Error Message.vi
lv2011
(16.37 KiB) Downloaded 123 times

И вот пример случая как у автора:
2015-09-04_21-43-50.jpg
2015-09-04_21-43-50.jpg (13.33 KiB) Viewed 8987 times

Описание ошибки будет содержать текст "Не удается найти указанный файл." (код ошибки = 2).
User avatar
dadreamer
professor
professor
 
Posts: 3058
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 760
I/O VIP vision internet

Re: запись файла с расширением exe в базу данных

Postby AlexanderKonoval on 08 Sep 2015, 11:20

загружать в базу экзешник - как-то это похоже на какие-то не очень хорошие действия.
колдооооовствооооо! (С)
AlexanderKonoval
developer
developer
 
Posts: 255
Joined: 03 Jan 2014, 19:37
Location: Украина, Киев
LabVIEW Version: 2016
Karma: 53

Re: запись файла с расширением exe в базу данных

Postby rt5yhd on 08 Sep 2015, 22:37

Или путь неверный, или такого файла по указанному пути не существует.

Путь верный и файл существует
rt5yhd
beginner
beginner
 
Posts: 32
Joined: 29 Apr 2015, 16:22
LabVIEW Version: 2015
Karma: 0

Re: запись файла с расширением exe в базу данных

Postby dadreamer on 09 Sep 2015, 08:09

rt5yhd, а разрешение на доступ к файлу есть? Программа из-под админа запущена? И что возвращает :vi: Check If File Or Folder Exists?
AlexanderKonoval wrote:загружать в базу экзешник - как-то это похоже на какие-то не очень хорошие действия.

На эксплоит это похоже, но ни разу не видел, чтобы такое делали на :labview: , так что наверное это что-то безобидное, типа файлообменника. :wink:
User avatar
dadreamer
professor
professor
 
Posts: 3058
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 760
I/O VIP vision internet

Re: запись файла с расширением exe в базу данных

Postby rt5yhd on 09 Sep 2015, 11:12

dadreamer wrote:rt5yhd, а разрешение на доступ к файлу есть? Программа из-под админа запущена? И что возвращает :vi: Check If File Or Folder Exists?
AlexanderKonoval wrote:загружать в базу экзешник - как-то это похоже на какие-то не очень хорошие действия.

На эксплоит это похоже, но ни разу не видел, чтобы такое делали на :labview: , так что наверное это что-то безобидное, типа файлообменника. :wink:
Разрешение на доступ к файлу есть, программа из-под админа и Check if File Or Folder Exists возвращает true.

Это нужно для того, чтобы делать обновления клиентам. Новую версию ПО (файл exe) загружаем в базу данных на сервере. Клиентское приложение смотрит наличие обновлений и если они есть, то предлагает обновиться.

dadreamer вы писали "Кстати говоря, System Exec возвращает не внутреннюю ошибку , а ошибку ОС, т.е. Windows. Ошибки WinAPI описаны в MSDN". А почему эта ошибка ОС? Я посмотрел в labview help, там ошибка с кодом 2 - "Memory is full". Похоже это всё таки ошибка Labview.
Attachments
рис12.JPG
rt5yhd
beginner
beginner
 
Posts: 32
Joined: 29 Apr 2015, 16:22
LabVIEW Version: 2015
Karma: 0

Re: запись файла с расширением exe в базу данных

Postby Borjomy_1 on 09 Sep 2015, 11:15

Хм... а может проблема со стороны антивируса?
Borjomy_1
expert
expert
 
Posts: 1786
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 310
VIP

Re: запись файла с расширением exe в базу данных

Postby dadreamer on 09 Sep 2015, 11:33

rt5yhd wrote:А почему эта ошибка ОС? Я посмотрел в labview help, там ошибка с кодом 2 - "Memory is full". Похоже это всё таки ошибка Labview.

Потому что в хэлпе написано:
System Exec Error Codes
The System Exec VI can return either Windows or LabVIEW error codes. Windows and LabVIEW error codes also can use the same identifying numbers. For example, the System Exec VI can return Windows system error code 2, File_not_Found, in addition to LabVIEW error code 2.

И при запуске экзешника он никак не может (и не должен) загружаться в память процесса :labview: , это не библиотека. Плюс, 50 мегабайт - маловато, чтобы съесть всю память на компе.

А решение вашей проблемы прямым текстом прописано в хэлпе:
working directory is the file system directory from which you want to execute the command. You do not have to set working directory.
Image Note Do not use working directory to locate the executable you want to run. working directory applies to the executable only after it launches.

Так что убирайте вход working directory и прописывайте весь путь в command line.
User avatar
dadreamer
professor
professor
 
Posts: 3058
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 760
I/O VIP vision internet

Re: запись файла с расширением exe в базу данных

Postby rt5yhd on 09 Sep 2015, 11:54

Borjomy_1 wrote:Хм... а может проблема со стороны антивируса?
Антивирус стоит Avast. Антивирус отключил, службу Avast Antivirus остановил - таже ошибка. Если я в папку с:\Users\User\Documents\Labview Data скопирую calc.exe, odbcad32.exe или другую программу из system32, то ошибки не возникает, а если запускать например opera_setup.exe или notepad++.exe и т.д. не из system32, то получаю "Memory is full".
rt5yhd
beginner
beginner
 
Posts: 32
Joined: 29 Apr 2015, 16:22
LabVIEW Version: 2015
Karma: 0

Re: запись файла с расширением exe в базу данных

Postby rt5yhd on 09 Sep 2015, 12:02

Так что убирайте вход working directory и прописывайте весь путь в command line.


Вот это помогло. Спасибо большое !
rt5yhd
beginner
beginner
 
Posts: 32
Joined: 29 Apr 2015, 16:22
LabVIEW Version: 2015
Karma: 0


Return to Сохранение данных

Who is online

Users browsing this forum: No registered users and 2 guests

cron