powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Выполнение внешних программ из хранимых процедур
14 сообщений из 14, страница 1 из 1
Выполнение внешних программ из хранимых процедур
    #38606349
Михаил Ш.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Очень хочется получить однозначный ответ, возможно ли выполнить внешнюю программу из ХП Firebird.

Ситуация такая.
- Есть некая Программа, из которой можно выполнять ХП.
- Есть несколько файлов разных форматов с разными данными
- Есть Скрипт (vbs), который парсит все эти файлы и приводит их к одному формату

Требуется загрузить данные из файлов в БД

Сейчас это происходит так
- Запускается Скрипт, который парсит файлы и загружает их во временные таблицы
- Запускается программа (выполняется ХП), которая загружает данные из временных таблиц в основную

Хочется просто запускать Программу (ХП), внутри которой запустился бы скрипт, т.е. делать не два действия, а одно

Пример является почти вымышленным, просто чтобы понять суть вопроса, нет необходимости приводить решения именно этой задачи.
Интересует сама возможность.

В MS SQL это решается xp_cmdshell

Спасибо.
...
Рейтинг: 0 / 0
Выполнение внешних программ из хранимых процедур
    #38606368
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Михаил Ш.> Хочется просто запускать Программу (ХП)

ХП - это не программа, а процедура.
И соответственно, программа это не ХП.

> Пример является почти вымышленным, просто чтобы
> понять суть вопроса, нет необходимости приводить
> решения именно этой задачи. Интересует сама возможность.

Тогда зачем было писать столько выдуманного текста,
для которого, действительно, есть лучшие решения?
Достаточно было одной строчки.

Встроенного аналога xp_cmdshell в FB нет,
такое делается только через UDF.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Выполнение внешних программ из хранимых процедур
    #38606374
Михаил Ш.В MS SQL это решается xp_cmdshell
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
D:\>isql -q
SQL> help;
Frontend commands:
BLOBDUMP <blobid> <file>   -- dump BLOB to a file
BLOBVIEW <blobid>          -- view BLOB in text editor
EDIT     [<filename>]      -- edit SQL script file and execute
EDIT                       -- edit current command buffer and execute
HELP                       -- display this menu
INput    <filename>        -- take input from the named SQL file
OUTput   [<filename>]      -- write output to named file
OUTput                     -- return output to stdout
SET      <option>          -- (Use HELP SET for complete list)
 SHELL    <command>         -- execute Operating System command in sub-shell 
SHOW     <object> [<name>] -- display system information
    <object> = CHECK, COLLATION, DATABASE, DOMAIN, EXCEPTION, FILTER, FUNCTION,
               GENERATOR, GRANT, INDEX, PROCEDURE, ROLE, SQL DIALECT, SYSTEM,
               TABLE, TRIGGER, VERSION, USERS, VIEW
EXIT                       -- exit and commit changes
QUIT                       -- exit and roll back changes

All commands may be abbreviated to letters in CAPitals

Только запускать придется НЕ из рамок PSQL-кода, а "между" ними:
Код: plaintext
1.
2.
3.
4.
. . .
execute procedure p1;
shell dir c:\*.*;
execute procedure p2;
. . .
...
Рейтинг: 0 / 0
Выполнение внешних программ из хранимых процедур
    #38606427
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ваня Сусанин> Только запускать придется НЕ из рамок PSQL-кода

Так это он итак с клиента может делать (и делает).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Выполнение внешних программ из хранимых процедур
    #38606438
Михаил Ш.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов Рустам,

> ХП - это не программа, а процедура.
> И соответственно, программа это не ХП.

Да, это я знаю.
Возможно, не совсем правильно написал.
Я имел ввиду, что Программа умеет выполнять любые ХП. Подразумевается, что в ХП есть код, который запустит скрипт.
...
Рейтинг: 0 / 0
Выполнение внешних программ из хранимых процедур
    #38606441
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Михаил Ш.Подразумевается, что в ХП есть код, который запустит скрипт.
Подразумевается, что сервер БД может позволить запустить патч Бармина. Не, такой глупости
мы немамэ.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Выполнение внешних программ из хранимых процедур
    #38606445
Михаил Ш.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

Спасибо, теперь я знаю, что такое патч Бармина.
...
Рейтинг: 0 / 0
Выполнение внешних программ из хранимых процедур
    #38606446
Михаил Ш.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е. я так понимаю, без программирования (на Дельфи?) ничего не получится?
...
Рейтинг: 0 / 0
Выполнение внешних программ из хранимых процедур
    #38606449
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Михаил Ш.> Т.е. я так понимаю, без программирования (на Дельфи?) ничего не получится?
IBEScript + cmd|nncron

--
Vladimir A.Bakhvaloff
E-Mail: zirra1969<bark>gmail<dot>com

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Выполнение внешних программ из хранимых процедур
    #38606451
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Михаил Ш.> Т.е. я так понимаю, без программирования (на Дельфи?) ничего не получится?

Во-первых, необязательно на Delphi, если UDF/UDR.
Во-вторых, получится и выше подсказали 2 варианта.
В-третьих, таки сначала подумай зачем - для решения
какой невымышленной задачи ты хочешь это применять.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Выполнение внешних программ из хранимых процедур
    #38606506
Михаил Ш.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу принять к сведению и извинить, если что-то не так пишу/делаю.
Я работаю с FB совсем недавно, ещё полгода нет, потому UDF для меня, это всего лишь 3 заглавные английские буквы, о которых я знаю только то, как они расшифровываются.
Программированием вплотную никогда не занимался, хотя и имею об этом общее, возможно чуть более расширенное представление.
Моя "стихия" - скрипты, если ещё более узко - vbs
Это так, чтобы было понятно, на каком уровне я владею всем предметом в целом.

Задача состоит в том, чтобы из конечный пользователь вместо двух действий, запуск скрипта и нажатие на кнопку в Программе, делал одно, а именно нажатие на кнопку в Программе.
При этом Программа не умеет ничего, кроме "select * from Table" и(или) "Select * from StoredProcedure(Param1, Param2, ..., ParamX)"
Я упрощаю, но смысл именно такой. Программа сама не умеет работать ни с чем кроме БД. (Ну ок, ещё она умеет работать с dll, только я не умею и пока не хочу их писать)

Если изнутри сервера внешний скрипт не запустить, то в принципе тему можно закрыть.

Всем спасибо за ответы.
...
Рейтинг: 0 / 0
Выполнение внешних программ из хранимых процедур
    #38606512
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Михаил Ш.Задача состоит в том, чтобы из конечный пользователь вместо двух действий,
запуск скрипта и нажатие на кнопку в Программе, делал одно, а именно нажатие на кнопку в
Программе.
А почему не "только запуск скрипта"? Скрипты на vbs тоже умеют же обращаться к БД и
запускать ХП...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Выполнение внешних программ из хранимых процедур
    #38606515
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Михаил Ш.> Задача состоит в том, чтобы из конечный пользователь
Михаил Ш.> вместо двух действий, запуск скрипта и <запуск процедуры>

Из VBSscript можно замечательно работать с SQL-серверами,
в и.ч. FB, в т.ч. запускать ХП и пр. И запускать exe-шники из
VBSscript, в т.ч. с параметрами, тоже можно, конечно же.

> нажатие на кнопку в Программе, делал одно,
> а именно нажатие на кнопку в Программе.

Так почему бы в программе и не делать вызов vbs-скрипта, а
ещё лучше - осуществление необходимых действий напрямую?

> При этом Программа не умеет ничего, кроме "select * from Table"
> и(или) "Select * from StoredProcedure(Param1, Param2, ..., ParamX)"

Странная какая-то программа, глупая. Это и не программа вовсе, а
некий обрубок ISQL, не говоря уже об IBE - они и-то больше умеют.

> Я упрощаю

А зря. Лучше бы описали реальную проблему - вам бы
подсказали решение. Тут народ бывалый, всякое повидал.
Впрочем, дело хозяйское, не настаиваю.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Выполнение внешних программ из хранимых процедур
    #38606899
Коваленко Дмитрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамИз VBSscript можно замечательно работать с SQL-серверами,
в и.ч. FB, в т.ч. запускать ХП и пр. И запускать exe-шники из
VBSscript, в т.ч. с параметрами, тоже можно, конечно же.
...
Вам бы подсказали решение.
Возможно, возможно . Но не уверен :)
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Выполнение внешних программ из хранимых процедур
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]