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

Работа с файлами и базами данных
Ответить
rt5yhd
beginner
beginner
Сообщения: 32
Зарегистрирован: 29 апр 2015, 16:22
Версия LabVIEW: 2015
Контактная информация:

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

Сообщение rt5yhd »

Здравствуйте, помогите пожалуйста. Мне нужно в базу данных вставить файл с расширением exe, vi для соединения к базе я сделал (рис.jpg). Делаю insert с помощью DB Tools Insert Data.vi, формирую кластер Data. Как значения integer и string вставлять знаю, а как вставить exe-шник в поле типа BLOB ?
Вложения
рис.JPG
Аватара пользователя
dadreamer

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

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

Сообщение dadreamer »

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

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

Сообщение rt5yhd »

Здравствуйте, помогите пожалуйста решить проблему. Не запускается приложение exe из labview (open.jpg).
Возникает ошибка "Labview: Memory is full".
Файл program.exe весит 50 Мбт.
Вложения
open.JPG
Аватара пользователя
dadreamer

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

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

Сообщение dadreamer »

Или путь неверный, или такого файла по указанному пути не существует.
Пример вызова :vi: :
Вложения
2015-09-04_17-35-41.jpg
2015-09-04_17-35-41.jpg (21.61 КБ) 15778 просмотров
2015-09-04_17-36-28.jpg
2015-09-04_17-36-28.jpg (21.9 КБ) 15778 просмотров
rt5yhd
beginner
beginner
Сообщения: 32
Зарегистрирован: 29 апр 2015, 16:22
Версия LabVIEW: 2015
Контактная информация:

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

Сообщение rt5yhd »

dadreamer писал(а):Никогда с этим не работал, но рискну предположить, что файл сперва нужно считать с помощью Read from Binary File, а затем бинарные данные записать в БД.
BLOB (англ. Binary Large OBject — двоичный большой объект) — массив двоичных данных.
Сделал запись бинарных данных в БД, но теперь возникла другая проблема: как запустить exe файл из базы данных, т.е. делаю select запрос и что с этими бинарными данными делать, чтобы запустился exe файл.
Аватара пользователя
dadreamer

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

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

Сообщение dadreamer »

rt5yhd, очевидно, что вам нужно записать эти данные в файл с помощью Write to Binary File, а затем запустить файл с помощью System Exec.
P.S. Передавать через сервер файлы с помощью базы данных - оригинально, я бы не додумался. :D
Аватара пользователя
dadreamer

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

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

Сообщение dadreamer »

rt5yhd писал(а):Возникает ошибка "Labview: Memory is full".
Кстати говоря, System Exec возвращает не внутреннюю ошибку :labview: , а ошибку ОС, т.е. Windows. Ошибки WinAPI описаны в MSDN, но на практике обычно пользуются функцией FormatMessage для получения описания ошибки в текущей локали. Я у себя давно держу вот такой :vi: :
Get Win32 Error Message.vi
lv2011
(16.37 КБ) 256 скачиваний
И вот пример случая как у автора:
2015-09-04_21-43-50.jpg
2015-09-04_21-43-50.jpg (13.33 КБ) 15755 просмотров
Описание ошибки будет содержать текст "Не удается найти указанный файл." (код ошибки = 2).
AlexanderKonoval
developer
developer
Сообщения: 257
Зарегистрирован: 03 янв 2014, 19:37
Версия LabVIEW: 2016
Откуда: Украина, Киев
Контактная информация:

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

Сообщение AlexanderKonoval »

загружать в базу экзешник - как-то это похоже на какие-то не очень хорошие действия.
колдооооовствооооо! (С)
rt5yhd
beginner
beginner
Сообщения: 32
Зарегистрирован: 29 апр 2015, 16:22
Версия LabVIEW: 2015
Контактная информация:

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

Сообщение rt5yhd »

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

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

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

Сообщение dadreamer »

rt5yhd, а разрешение на доступ к файлу есть? Программа из-под админа запущена? И что возвращает :vi: Check If File Or Folder Exists?
AlexanderKonoval писал(а):загружать в базу экзешник - как-то это похоже на какие-то не очень хорошие действия.
На эксплоит это похоже, но ни разу не видел, чтобы такое делали на :labview: , так что наверное это что-то безобидное, типа файлообменника. :wink:
rt5yhd
beginner
beginner
Сообщения: 32
Зарегистрирован: 29 апр 2015, 16:22
Версия LabVIEW: 2015
Контактная информация:

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

Сообщение rt5yhd »

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

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

dadreamer вы писали "Кстати говоря, System Exec возвращает не внутреннюю ошибку , а ошибку ОС, т.е. Windows. Ошибки WinAPI описаны в MSDN". А почему эта ошибка ОС? Я посмотрел в labview help, там ошибка с кодом 2 - "Memory is full". Похоже это всё таки ошибка Labview.
Вложения
рис12.JPG
Borjomy_1

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

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

Сообщение Borjomy_1 »

Хм... а может проблема со стороны антивируса?
Аватара пользователя
dadreamer

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

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

Сообщение dadreamer »

rt5yhd писал(а):А почему эта ошибка ОС? Я посмотрел в 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.
Изображение 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.
rt5yhd
beginner
beginner
Сообщения: 32
Зарегистрирован: 29 апр 2015, 16:22
Версия LabVIEW: 2015
Контактная информация:

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

Сообщение rt5yhd »

Borjomy_1 писал(а):Хм... а может проблема со стороны антивируса?
Антивирус стоит 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
Сообщения: 32
Зарегистрирован: 29 апр 2015, 16:22
Версия LabVIEW: 2015
Контактная информация:

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

Сообщение rt5yhd »

Так что убирайте вход working directory и прописывайте весь путь в command line.
Вот это помогло. Спасибо большое !
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Сохранение данных»