Здравствуйте, прошу опять Вашей помощи. В связи с тем что я лентяй, хочу попробовать сделать программку которая будет выгружать в файл любого формата, данные отработанного скрипта с базы ORACLE.
Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=MSDAORA.1;Data Source=***;Password=***;User ID=***"
'========================================================================================
OutputFile = "\\Srv\ВашПуть\clients.csv"
sSql = "select * from tbl"
Set Rs = GetRs(sSql, cn)
Call ExportTXT(Rs, OutputFile, ";", vbCrLf)
Rs.Close
Set Rs = Nothing
MsgBox "Готово! Контрагенты выгружены!"
Function GetRs(sstr, cn)
Set rstdata = CreateObject("ADODB.Recordset")
rstdata.Open sstr, cn
Set GetRs = rstdata
Set rstdata = Nothing
End Function
Function ExportTXT(Rs, FileName, DelimCol, DelimRow)
Dim AllText, fld
For Each fld In Rs.Fields
If AllText = "" Then
AllText = fld.Name
Else
AllText = AllText & DelimCol & fld.Name
End If
Next
AllText = AllText & DelimRow
AllText = AllText & Rs.GetString(, , DelimCol, DelimRow)
With CreateObject("Scripting.FileSystemObject").CreateTextFile(FileName, True)
.Write AllText
End With
End Function
И сам вопрос как его запихнуть в .exe? Пробовал через программу VBs To Exe но ничего не работает. Отработал просто в Excel все работает )
Что я делаю: 1) Откорректировал скрипт под себя (Провайдер MSDAORA), путь рабочий стол, логин и пароль ввел свой -Сохраняю всё это дело в .vbs с помощью Notepad++ 2) Запускаю программу Vbs to Exe v2.0.1 -VBS файл указую путь своего .vbs -Сохранить указую путь куда нужно сохранить .exe -В редактор вставлю этот же скрипт .vbs Нажал кнопку "Компилировать" Файл exe есть но ничего не делает (
Не помню как делалось в Vbs to Exe - но какая-то программа при запуске этого exe просто распаковывала этот скрипт в темп и выполняла его оттуда. Т.е. если скрипт работал - должен работать. Но рабочий каталог будет темп, а не каталог где exe.
Зачем вообще компилировать в exe ? Для того что бы пользователи код не видели? Если вам необходимо запускать vbs из планировщика заданий, то он прекрасно запускается, так как vbs является исполняемым файлом.
о стандартном винды, делаете задание по расписанию, указываете какой скрипт исполнить и все (я обычно добавляю формирование лога и отправку его почтой мне в почту), больше ничего делать не надо все работает на автомате.
я в exe не компилировал, да и лишнее это, весь процесс происходит на серваке с ограниченным доступом, пользователям доставляется все почтой, либо обновляются файлы в папке пользователя. ну и нужные данные , курсы индексы и прочая инфа загружается в базу.
(Windows 7 X64 Oracle 10g) связачка не очень, есть очень много проблем между драйверами 32 битной (oracle) и 64 (windows). подружить их совсем не просто.
------------ Мы сделали проще, развернули виртуалку win server 2008 X 32 и все операции повесили там.
const xlsFileName = "D:\task\XLS\Load.xls" ' тута имя xls файла
set fso = createobject("Scripting.FileSystemObject")
set a = createobject("excel.application")
a.visible=false
set b = a.workbooks.open(xlsFileName)
b.Application.Run "test" ' Имя Вашего макроса в excel
b.close true
a.quit
Укажите нужные параметры, сохраните в vbs и назначьте задание на исполнение В excel вставьте код с соответствующим названием процедуры, сохраните и используйте.
да какая разница сколько он будет работать (у меня все процедуры начинают отрабатывать в 5 утра и 6 уже вся нужная инфа у конечных пользователей), вся фишка в том что большой объем данных excel плохо переваривает, за исключением PowerPivot (Хотя это не excel а надстройка к нему), поэтому подготовленный набор данных, выгружаем в сторонний файл хранения данных и уже эти данные используем для расчетов в excel. -------
Я просто как-то пробовал через Xstarter запуск макроса, так оно у меня через 20 мин выдавало ошибку, что нет больше памяти и всё. ) Лично у меня где-то 30 отчётов и только один этот остался который не как не могу закинуть на автомат (