Muito obrigado Chiappa. jlchiappa <[EMAIL PROTECTED]> escreveu: Bem, não sou especialista em DLLs, só as usei um pouco pra chamar APIs prontas, , mas uma coisa que normalmente vejo é o tipo integer ser mapeado nos arqs da função como BINARY_INTEGER, e não como PL_INTEGER. A declaração em si da DLl numa passada superficial me parece correta... O que eu te sugiro é : ** antes de tudo **, siga o setup recomendado no manual citado (na SUA versão de banco!), pra testar faça uma external chamando uma dll ** do sistema operacional **, por exemplo como mostrado em http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:21419917814146 e em http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:2450510349959 (pois aí se vc tiver problemas outras pessoas da lista podem tentar reproduzir), e só então, com ambiente testado e ok, aí sim vá tentar chamar essa dll , que pelo que vejo é específica dum fornecedor... Em http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:9087161189226 , http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:934029542973 e http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:1200435685237 há exemplos chamando DLLs com cabeçalho padrão linguagem C e afora a questão dos datatypes são basicamente idênticas ao que vc mostrou.
[]s Chiappa --- Em oracle_br@yahoogrupos.com.br, Mauricio Françoso <[EMAIL PROTECTED]> escreveu > > Chiappa, > > Este é o metodo na DLL: (Prototipo da Funcao) > > extern "C" __declspec(dllexport) int __stdcall ExecInClientDLL(intID, const char * Parameters, char * Buffer, int Size) > > --- > > Minha duvida é: Para chamar a funcao acima os datatypes da Proc estao corretos ? Da uma olhada abaixo: > > CREATE OR REPLACE PROCEDURE LDAPlps ( > IN_ID IN PLS_INTEGER, > IN_PARAM IN VARCHAR2, > OUT_BUFFER OUT VARCHAR2, > IN_SIZE IN PLS_INTEGER) > AS LANGUAGE C > LIBRARY ldap_microsiga > NAME "ExecInClientDLL" > PARAMETERS ( > IN_ID INT , > IN_PARAM STRING, > OUT_BUFFER BY REFERENCE STRING, > IN_SIZE INT); > > > []s > > > Mauricio > > > > jlchiappa <[EMAIL PROTECTED]> escreveu: > No banco 8i vc está tentando seguir as instruções do 10g, não é meio > estranho isso, deveria ser o manual "Oracle8i Application Developer's > Guide - Fundamentals", cap. 10 - External Routines, online em > http://www.oracle.com/technology/documentation/oracle8i.html. > Nesse cara é especificado que vc tem que fazer alterações no > listener, vc as fez ? parou e subiu o listener de novo após isso ? > sqlnet não é listado, afaik, no documento como sendo necessário > altera (a ref é "1. Set Up the Environment > Your DBA sets up the environment for calling external routines by > adding entries to the files tnsname.ora and listener.ora and by > starting a Listener process exclusively for external routines. > > ", exatamente O QUE vc alterou nele ?? > > []s > > Chiappa > --- Em oracle_br@yahoogrupos.com.br, "mfrancoso" <[EMAIL PROTECTED]> > escreveu > > > > SO = windows 2000 > > ORACLE 8.1.7.4.0 > > > > Pessoal, > > > > Estou tentando executar uma external procedure mas não estou > obtendo > > exito: > > > > Seguem os passos executado. > > > > Esse é o link dos datatypes > > http://www.oracle- > > > 10g.de/oracle_10g_documentation/appdev.101/b10795/adfns_ex.htm#1021379 > > > > > > ---- PARAMETROS DO METODO NA DLL ---- > > > > extern "C" __declspec(dllexport) int __stdcall ExecInClientDLL(int > > ID, const char * Parameters, char * Buffer, int Size) > > > > > > ---- CRIACAO DA LIBRARY PARA A EXTERNAL PROCEDURE ---- > > > > > > CREATE OR REPLACE LIBRARY ldap_microsiga > > AS 'C:\Component_dlls\LDAP\DllProtheus.dll'; > > > > > > ---- CRIACAO DA STORED PROCEDURE MAPEANDO PARA A FUNCAO NA DLL---- > > > > CREATE OR REPLACE PROCEDURE LDAPlps ( > > IN_ID IN PLS_INTEGER, > > IN_PARAM IN VARCHAR2, > > OUT_BUFFER OUT VARCHAR2, > > IN_SIZE IN PLS_INTEGER) > > AS LANGUAGE C > > LIBRARY ldap_microsiga > > NAME "ExecInClientDLL" > > PARAMETERS ( > > IN_ID INT , > > IN_PARAM STRING, > > OUT_BUFFER BY REFERENCE STRING, > > IN_SIZE INT); > > > > > > ---- SCRIPT CHAMANDO NO SQL*PLUS ---- > > > > DECLARE > > v_IN_ID PLS_INTEGER:=1; > > v_IN_PARAM VARCHAR2(100):='mic1|-|[EMAIL PROTECTED]|-|MICROSIGA|- > > |C:\Component_dlls\LDAP\MICROSIGA|-|[EMAIL PROTECTED]'; > > v_OUT_BUFFER VARCHAR2(100); > > v_IN_SIZE PLS_INTEGER:=50; > > > > BEGIN > > > > > > LDAPlps(v_IN_ID, v_IN_PARAM, v_OUT_BUFFER, v_IN_SIZE); > > DBMS_OUTPUT.PUT_LINE('free disk space, megabytes = ' || > > v_OUT_BUFFER); > > > > END; > > > > > > > > > > Chamando a DLL por um EXE dá ok. > > Chamando pelo Oracle dá o erro abaixo: > > > > ORA-28576: lost RPC connection to external procedure agent > > > > O tnsnames ,sqlnet e o listener já foram configurados e estão ok > > mas continuo recebendo o erro acima. > > > > > > obrigado. > > > > > > > > > > -------------------------------------------------------------------------------------------------------------------------- > Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ > --------------------------------------------------------------------------------------------------------------------------__________________________________________________________________ > > Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine > __________________________________________________________________ > O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário. > > > > --------------------------------- > Links do Yahoo! Grupos > > Para visitar o site do seu grupo na web, acesse: > http://br.groups.yahoo.com/group/oracle_br/ > > Para sair deste grupo, envie um e-mail para: > [EMAIL PROTECTED] > > O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!. > > > > > Mauricio do C. Françoso > Liberty Paulista Seguros > Administrador Banco de Dados(DBA ORACLE) > > > --------------------------------- > Yahoo! doce lar. Faça do Yahoo! sua homepage. > > [As partes desta mensagem que não continham texto foram removidas] > -------------------------------------------------------------------------------------------------------------------------- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --------------------------------------------------------------------------------------------------------------------------__________________________________________________________________ Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine __________________________________________________________________ O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário. --------------------------------- Links do Yahoo! Grupos Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!. Mauricio do C. Françoso Liberty Paulista Seguros Administrador Banco de Dados(DBA ORACLE) --------------------------------- Abra sua conta no Yahoo! Mail - 1GB de espaço, alertas de e-mail no celular e anti-spam realmente eficaz. [As partes desta mensagem que não continham texto foram removidas] -------------------------------------------------------------------------------------------------------------------------- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --------------------------------------------------------------------------------------------------------------------------__________________________________________________________________ Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine __________________________________________________________________ O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário. Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html