powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Как вызвать внешний скрипт (DLL) из триггера или процедуры Sybase
7 сообщений из 7, страница 1 из 1
Как вызвать внешний скрипт (DLL) из триггера или процедуры Sybase
    #32380058
sibircev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема заключается в следующем:
Допустим нужно вызвать из триггера или процедуры внешний скрипт (DLL), то есть программу никакого отношения к Sybase не имеющую. Как это сделать?
...
Рейтинг: 0 / 0
Как вызвать внешний скрипт (DLL) из триггера или процедуры Sybase
    #32380201
Andyn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем понятно. Если нужно вызвать именно программу , то надо использовать системную процедуру xp_cmdshell .

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Example:

The following statement lists the files in the current directory in the file c:\temp.txt

xp_cmdshell('dir > c:\\temp.txt')

The following statement carries out the same operation, but does so without displaying a command window.

xp_cmdshell('dir > c:\\temp.txt', 'no_output' )


Если нужна функция, описанная в какой-либо DLL, то надо создать процедуру для вызова внешней функции. Подробнее в главе "Creating procedures and functions with external calls".
...
Рейтинг: 0 / 0
Как вызвать внешний скрипт (DLL) из триггера или процедуры Sybase
    #32380504
sibircev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
За системную процедуру спасибо. Попробую.
У меня версия Sybase 11.5 стоит на Windows 2000.
По вызову внешних процедур вопрос:
1. Имя процедуры в DLL должно совподать или нет с именем объявленной процедуры в Sybase. Если нет, то как узнать какую процедуру из DLL вызывать.
2. Появляется ошибка при попытки запуска внешний процедуры:
Server Message: Number 11018, Severity 16
Procedure 'TestDLL', Line 1:
XP Server must be up for ESP to execute.
(return status = -6)
Как я понял нужно поднять сервис XP Server. Он установлен по умолчанию с Sybase или нет?
...
Рейтинг: 0 / 0
Как вызвать внешний скрипт (DLL) из триггера или процедуры Sybase
    #32381140
Andyn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как говорит наш модератор - указывайте версию и название базы. :)

Я ответил касательно ASA, с ASE работаю гораздо меньше и, соответственно, знаю меньше. Спрошу у своих администраторов.
...
Рейтинг: 0 / 0
Как вызвать внешний скрипт (DLL) из триггера или процедуры Sybase
    #32381231
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sibircev
DLL из xp_cmdcshell не вызовешь, так как она вызывает командный процессор ОС. Для подключения DLL читайте в BOL главы, посвященные Extended Stored Procedure . Сразу хочу сказать, что любую DLL подцепить нельзя - она должна совпадать с принятыми форматами вызовов и передачи параметров СУБД.

P.S. А зачем Вам это понадобилось ? Может быть задачу можно решить без таких решений ?
...
Рейтинг: 0 / 0
Как вызвать внешний скрипт (DLL) из триггера или процедуры Sybase
    #32405250
AndreiVG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишешь dll-ку
потом из ASA, например в функции, делаешь таким образом:
returns тип external name 'название_функции@название_dll.dll'

Насколько я помню, делал так и работало
...
Рейтинг: 0 / 0
Как вызвать внешний скрипт (DLL) из триггера или процедуры Sybase
    #32406746
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привожу конкретный пример.
использование функции GetComputerName из kernel32.dll

1.обьявляем внешную процедуру

Сreate procedure getComputername(inout ComputerName char(32), inout BuuferLength integer) external name 'WindowsNT:GetComputerName@kernel32'

2. Как использовать
create procedure procTemp()
begin
declare skey char(255);
declare ikey integer;
set skey=space(254);
set ikey=254;
call getComputerName(skey,ikey);
set skey =trim(skey);
set ikey=legth(skey);
select skey,ikey
end
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Как вызвать внешний скрипт (DLL) из триггера или процедуры Sybase
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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