Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Можно ли из строки шестнадцатиричного формата получить эксель файл ?

Ответить
Настройки темы
VBS/WSH/JS - [решено] Можно ли из строки шестнадцатиричного формата получить эксель файл ?

Пользователь


Сообщения: 79
Благодарности: 2

Профиль | Отправить PM | Цитировать


Всем доброго времени суток.

У меня есть большая строка (8000 символов; это поле BLOB в БД Оракл) в шестнадцатеричном формате, которая в действительности является файлом формата .xlsx. Мне нужно эту строку "превратить" в физический файл экселя на диске. Т.е., этот файл "упакован" в BLOB в Оракле. Мне нужно его "распаковать".

Подскажите, пожалуйста, можно ли это сделать средствами vbscript? Нашел, что на vbs есть возможности для взаимодействия с шестнадцатеричными значениями, но не уверен, что это то, что мне нужно. Заранее благодарен.

Отправлено: 19:47, 25-11-2017

 

Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Iska, конечно, нет - Speach API может не быть в системе (как и CAPICOM, который тоже для этих целей бывает используют)

Отправлено: 09:57, 27-11-2017 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Busla, в системе много чего «может не быть». В том числе может как «ещё не быть» или «уже не быть» — в зависимости от используемой ОС. Но причём тут это?

Отправлено: 11:39, 27-11-2017 | #12


Пользователь


Сообщения: 79
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата Iska:
Неа, нету »
Мне указали на форум, где было сообщение с вот таким кодом:

Код: Выделить весь код
Sub test() 
    Dim conn, rs 
    Dim strSQL As String 
     
    Set conn = CreateObject("ADODB.Connection") 
    With conn 
        .ConnectionString = "Provider=MSDAORA;" & _ 
        "Data Source=ORCL10G;" & _ 
        "User ID=System;Password=oracle;" 
        .Open 
    End With 
     
    Set rs = CreateObject("ADODB.Recordset") 
    strSQL = "select * from scott.emp" 
    rs.Open strSQL, conn, 3, 3 
     
    Range("A1") = rs("ENAME") 
    Range("B1") = rs("JOB") 
     
    rs.Close 
    Set rs = Nothing 
    conn.Close 
    Set conn = Nothing 
End Sub
Но это как я понимаю, VBA?

Цитата Iska:
Вы можете взять здесь: »
Спасибо, попробую запустить.

Iska,

код по ссылке - это VBScript? Т.е. можно ли его двойным щелчком мыши запустить? Можно ли как-то проверить, что к БД проходит коннект?

***
Сейчас пробую подконнектиться к ораклу.

Подскажите, пожалуйста, как посмотреть sid и провайдера?

Последний раз редактировалось Burning Hell, 27-11-2017 в 14:01.


Отправлено: 13:30, 27-11-2017 | #13


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Burning Hell:
Но это как я понимаю, VBA? »
Да. Но этот код Вам не нужен. Я давал выше ссылку на тему с потребным кодом.

Цитата Burning Hell:
код по ссылке - это VBScript? »
Да.

Цитата Burning Hell:
Т.е. можно ли его двойным щелчком мыши запустить? »
Можно. Но лучше в командной строке (а ещё лучше — из-под Far Manager'а ) посредством «cscript.exe» — так проще его отлаживать.

Цитата Burning Hell:
Можно ли как-то проверить, что к БД проходит коннект? »
Если коннект не пройдёт — сразу увидите. Естественно, строка подключения (connection string) должна соответствовать Вашему драйверу и базе данных, запрос должен соответствовать таблице и полям Вашей базы данных.

Цитата Burning Hell:
Подскажите, пожалуйста, как посмотреть sid и провайдера? »
SID? Зачем Вам SID? Разве там, в коде, есть где-то SID?! Есть «User ID». Провайдер, повторю, должен соответствовать Вашей базе данных. Если не знаете (я-то точно не знаю) — можете поэкспериментировать с этими данными: Oracle Provider for OLE DB connection strings.

Отправлено: 14:23, 27-11-2017 | #14


Пользователь


Сообщения: 79
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата Iska:
Разве там, в коде, есть где-то SID?! »
Ну да, судя по именам переменных тут нужен и sid, и провайдер.

Цитата Iska:
с этими данными »
спасибо, буду пробовать...

UPD:
sid нашел в файле tnsnames.ora. Осталось найти провайдера.

UPD:
Что-то не то с провайдером, пишет, что не может найти его.

Последний раз редактировалось Burning Hell, 27-11-2017 в 15:08.


Отправлено: 14:28, 27-11-2017 | #15


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Burning Hell, да нет там SID'а. Это:
Код: Выделить весь код
Const C_ORA_SID = "XE"
имя соединения.

Отправлено: 15:10, 27-11-2017 | #16


Пользователь


Сообщения: 79
Благодарности: 2

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: jpg tns_error.jpg
(16.7 Kb, 1 просмотров)

Цитата Iska:
имя соединения. »
Я не очень понимаю, что там должно быть в итоге: Data Source или SID? В коде в ConnectionString присутствует наименование Data Source и среди источников данных у меня нет XE. Когда я подставил свой источник данных и провайдер (я нашел его), при проверке тестового соединения система выдала мне сообщение (см. скрин tns_error). Когда запускаю скрипт в командной строке, получаю следующее сообщение:

Код: Выделить весь код
another_var.vbs(17, 1) ADODB.Connection: Provider cannot be found. It may not be properly installed.
Я так понимаю, что тут надо к оракловым админам обращаться.

Отправлено: 16:15, 27-11-2017 | #17


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Burning Hell:
Я не очень понимаю, что там должно быть в итоге: Data Source или SID? »
Источник данных.

Цитата Burning Hell:
и среди источников данных у меня нет XE. »
http://www.oracle.com/technetwork/de...xe-095131.html

Цитата Burning Hell:
Я так понимаю, что тут надо к оракловым админам обращаться. »
Это будет самым правильным выбором.
Это сообщение посчитали полезным следующие участники:

Отправлено: 05:15, 28-11-2017 | #18


Пользователь


Сообщения: 79
Благодарности: 2

Профиль | Отправить PM | Цитировать


Вообщем, проблему удалось-таки решить средствами самого оракла) Оказывается, там есть такой пакет UTL_FILE, который умеет проворачивать такие штуки как распаковка блоба в файл, причем в принципе в любой, какой укажешь. Пришлось, правда, шаманить прикинувшись dba в SQL*Plus.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:41, 28-11-2017 | #19


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Burning Hell, .

Отправлено: 14:49, 28-11-2017 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Можно ли из строки шестнадцатиричного формата получить эксель файл ?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Как создать BMP файл из командной строки. Как работать с графикой из командной строки MKN Хочу все знать 22 23-03-2016 11:03
FreeBSD - Можно ли отредактировать файл на HDD из LiveCD FreeBSD?.. znak-ognya Общий по FreeBSD 5 29-08-2015 00:28
Доступ - Как получить права на файл или реестр из командной строки и вернуть всё как было hb860 Microsoft Windows 7 9 25-02-2013 14:03
CMD/BAT - Как из for получить значение из одной строки смещаясь на 1 при каждом проходе Voodooman Скриптовые языки администрирования Windows 18 28-08-2011 05:54
CMD/BAT - [решено] Можно ли записывать голос из командной строки? Alex.Devil.LX Скриптовые языки администрирования Windows 1 28-07-2011 23:08




 
Переход