Erasmo, eu já tinha até apelado para o uso de stored procedure e a coisa estava funcionando bem, entretanto, com esse exemplo, consegui fazer a minha function funcionar...segue abaixo o código que eu adaptei em cima do seu:
 
If SqlOraPLSQLPrepare( hSqlBase, '
declare
      bRetorno boolean;
begin
      bRetorno := Pkg_ATD.Inserir_atd(:dfNro_Serie_Inicial,:dfFabr_ID,:dfNro_Elementos,:dfLocal_ID,
                              :dfArea_ID,:dfModelo,:dfTensaoNominal,:vg_sTemp);
      if bRetorno then
         :vg_bOk := 1;
      else
         :vg_bOk := 0;
      end if;  
end;' ) 
 If SqlOraPLSQLExecute( hSqlBase )
  If vg_bOk    
  Call SalMessageBox( vg_sTemp, 'Atenção', 0 )
O incrível é que eu já havia codificado dessa forma e não deu certo. Mas agora a function tá redondinha isso é que importa. 
 
Valeu amigo !
 
André Couto
Analista de Sistemas Sênior - Manaus Energia
[EMAIL PROTECTED] - 621-1230
----- Original Message -----
From: Erasmo
Sent: Tuesday, August 10, 2004 2:35 PM
Subject: Re: [sqlwin] Como executar uma package.function do Oracle8i no Centura 1.1.1. ?

Andre,

Segue anexo um exemplo bem simples que fiz aqui, verifique se o exemplo funciona aí, é só trocar as informações de conexão (SqlDatabase, SqlUser e SqlPassword). Utilize o SQL.INI da sua aplicação atual.

Sds,
Erasmo

Andre Luiz Pereira do Couto wrote:
Erasmo,
 
Usei, de acordo com suas instruções, o código abaixo:

If SqlOraPLSQLPrepare( hSqlBase, '
  Declare
    Retorno Boolean;
  Begin
   Retorno := Pkg_ATD.Inserir(:dfNro_Serie_Inicial,:dfFabr_ID,:dfNro_Elementos,:dfLocal_ID,
                              :dfArea_ID,:dfModelo,:dfTensaoNominal,:vg_sTemp);
   if Retorno then
     :w_b_Retorno := 1;
   else
     :w_b_Retorno := 0
   end if;
  end;')
Call SqlOraPLSQLExecute( hSqlBase )
 
Recebo a seguinte mensagem de erro: "Erro: SQL Error 26550, not found in ERROR.SQL file."
Estou pesquisando esse erro mas ainda não encontrei o seu significado.
 
A minha versão do Centura é: 1.1.1
O meu oracle é: 8.1.7.1.0
Meu OS é: Windows 2000 Server
 
Quando uso SqlPLSQLCommand ele, como vc já havia dito,  conflita com os tipos do Oracle e diz que os parãmetros tem um tipo de dado ilegal.      Resumindo: será que isso pode ser algum conflito ou problema de configuração ?
 
André Couto
Analista de Sistemas Sênior - Manaus Energia
[EMAIL PROTECTED] - 621-1230
----- Original Message -----
From: Erasmo
Sent: Monday, August 09, 2004 8:10 AM
Subject: Re: [sqlwin] Como executar uma package.function do Oracle8i no Centura 1.1.1. ?

Andre,

Lembre-se, todas as referências a Centura dentro do comando deve ter dois pontos antes (:), nesse caso deveria ser assim:

Set vg_sATD_Sql = '
Declare 
  Retorno Boolean; 
Begin
 Retorno := Pkg_ATD.Inserir(:vg_nNro_Serie_Inicial,:vg_nFabr_ID,:vg_nNro_Elementos,:vg_sLocal_ID,
                            :vg_sArea_ID,:vg_sModelo,:vg_nTensao_Nominal,:vg_sTemp);
 -- Faltou retornar para o Centura
 if Retorno then
   :w_b_Retorno := 1;
 else
   :w_b_Retorno := 0
 end if; 
end;'
    

Outra coisa, não é preciso passar os campos para variáveis, pode-se utilizar diretamente os data_fields.

Sds,
Erasmo

Andre Luiz Pereira do Couto wrote:
Erasmo,

segui o seu exemplo e recebi a seguinte mensagem: "Erro: SQL Error 26550,
not found in ERROR.SQL file."

o que pode ser isso ? onde eu posso ter errado ?

segue, abaixo o código:

   If SalIsNull( dfNro_Serie_Final )
    Set vg_nNro_Serie_Inicial = dfNro_Serie_Inicial
    Set vg_sArea_ID = dfArea_ID
    Set vg_sLocal_ID = dfLocal_ID
    Set vg_nFabr_ID = dfFabr_ID
    Set vg_nNro_Elementos = dfNro_Elementos
    Set vg_sModelo = dfModelo
    Set vg_nTensao_Nominal = dfTensaoNominal
    Set vg_sATD_Sql = 'Declare Retorno Boolean; Begin  Retorno :=
Pkg_ATD.Inserir(vg_nNro_Serie_Inicial,vg_nFabr_ID,vg_nNro_Elementos,vg_sLoca
l_ID,vg_sArea_ID,vg_sModelo,vg_nTensao_Nominal,vg_sTemp); end;'
    If SqlOraPLSQLPrepare( hSqlBase, vg_sATD_Sql)
     Call SqlOraPLSQLExecute( hSqlBase )


André Couto
Analista de Sistemas Sênior - Manaus Energia
[EMAIL PROTECTED] - 621-1230
----- Original Message ----- 
From: "Erasmo Bispo de Oliveira Junior" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, August 05, 2004 3:16 PM
Subject: Re: [sqlwin] Como executar uma package.function do Oracle8i no
Centura 1.1.1. ?


  
André,

Os tipos boolean do Oracle e do Centura são diferentes, portanto não é
possível utilizar uma variável do centura diretamente. Faça da seguinte
forma:

if SqlOraPLSQLPrepare( hsql, "
declare
x boolean;
begin
  package.function(x);
  if x then -- Seta variavel do centura para TRUE
    :w_b_Centura := 1;
  else -- Seta a Variavel do centura para FALSE
    :w_b_Centura := 0;
end;
")
  Call SqlOraPLSQLExecute( hsql );

Sds,
Erasmo

    
Amigos,

Sou iniciante no Centura e estou precisando executar, no Centura 1.1.1.,
uma function contida em uma package no Oracle8i. Essa function tem um
parâmetro OUT e retorna boolean.

Gostaria de saber se alguém tem alguma dica de como executar tal
function ou então algum exemplo pronto.

Att.

André Couto
Analista de Sistemas Sênior - Manaus Energia
[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>  - 621-1230

      
==============================================
Lista de Centura SQLWindows
Administrador : [EMAIL PROTECTED]
[ http://www.centuraexplorer.com ]
Para sair desta lista mande mensagem para:
[EMAIL PROTECTED] sem nada no Subject e
com o comando a seguir no corpo da msg:
"unsubscribe sqlwin" (sem as aspas)
==============================================
    
==============================================
Lista de Centura SQLWindows
Administrador : [EMAIL PROTECTED]
[ http://www.centuraexplorer.com ]
Para sair desta lista mande mensagem para:
[EMAIL PROTECTED] sem nada no Subject e
com o comando a seguir no corpo da msg:
"unsubscribe sqlwin" (sem as aspas)
==============================================

  

--
 

Erasmo Bispo de Oliveira Junior
Gerente de Projetos

Softway - SoftComex Informatica Ltda.

Web: http://www.softcomex.com.br
Email:
[EMAIL PROTECTED]
Fone: +55 (19) 3739-9241
Fax: +55 (19) 3739-9240




--
 

Erasmo Bispo de Oliveira Junior
Gerente de Pesquisa e Desenvolvimento

Softway - SoftComex Informatica Ltda.

Web: http://www.softcomex.com.br
Email:
[EMAIL PROTECTED]
Fone: +55 (19) 3739-9241
Fax: +55 (19) 3739-9240




Application Description: Centura SQLWindows/32 Standard Application Template
Outline Version - 4.0.27
Design-time Settings
.data VIEWINFO
0000: 6F00000001000000 FFFF01000D004347 5458566965775374 6174650400010000
0020: 0000000000A50000 002C000000020000 0003000000FFFFFF FFFFFFFFFFFCFFFF
0040: FFE9FFFFFFFFFFFF FF000000007C0200 004D010000010000 0001000000010000
0060: 000F4170706C6963 6174696F6E497465 6D00000000
.enddata
Outline Window State: Normal
Outline Window Location and Size
.data VIEWINFO
0000: 6600040003002D00 0000000000000000 0000B71E5D0E0500 1D00FFFF4D61696E
0020: 0000000000000000 0000000000000000 0000003B00010000 00000000000000E9
0040: 1E800A00008600FF FF496E7465726E61 6C2046756E637469 6F6E730000000000
0060: 0000000000000000 0000000000003200 0100000000000000 0000E91E800A0000
0080: DF00FFFF56617269 61626C6573000000 0000000000000000 0000000000000000
00A0: 3000010000000000 00000000F51E100D 0000F400FFFF436C 6173736573000000
00C0: 0000000000000000 0000000000000000
.enddata
.data VIEWSIZE
0000: D000
.enddata
Left: -0.013"
Top:    0.0"
Width:  8.013"
Height: 4.969"
Options Box Location
.data VIEWINFO
0000: D4180909B80B1A00
.enddata
.data VIEWSIZE
0000: 0800
.enddata
Visible? Yes
Left: 4.15"
Top:    1.885"
Width:  3.8"
Height: 2.073"
Class Editor Location
Visible? No
Left: 0.575"
Top:    0.094"
Width:  5.063"
Height: 2.719"
Tool Palette Location
Visible? No
Left: 6.388"
Top:    0.729"
Fully Qualified External References? Yes
Reject Multiple Window Instances? No
Enable Runtime Checks Of External References? Yes
Use Release 4.0 Scope Rules? No
Libraries
Global Declarations
Window Defaults
Tool Bar
Display Style? Etched
Font Name: MS Sans Serif
Font Size: 8
Font Enhancement: System Default
Text Color: System Default
Background Color: System Default
Form Window
Display Style? Etched
Font Name: MS Sans Serif
Font Size: 8
Font Enhancement: System Default
Text Color: System Default
Background Color: System Default
Dialog Box
Display Style? Etched
Font Name: MS Sans Serif
Font Size: 8
Font Enhancement: System Default
Text Color: System Default
Background Color: System Default
Top Level Table Window
Font Name: MS Sans Serif
Font Size: 8
Font Enhancement: System Default
Text Color: System Default
Background Color: System Default
Data Field
Font Name: Use Parent
Font Size: Use Parent
Font Enhancement: Use Parent
Text Color: Use Parent
Background Color: Use Parent
Multiline Field
Font Name: Use Parent
Font Size: Use Parent
Font Enhancement: Use Parent
Text Color: Use Parent
Background Color: Use Parent
Spin Field
Font Name: Use Parent
Font Size: Use Parent
Font Enhancement: Use Parent
Text Color: Use Parent
Background Color: Use Parent
Background Text
Font Name: Use Parent
Font Size: Use Parent
Font Enhancement: Use Parent
Text Color: Use Parent
Background Color: Use Parent
Pushbutton
Font Name: Use Parent
Font Size: Use Parent
Font Enhancement: Use Parent
Radio Button
Font Name: Use Parent
Font Size: Use Parent
Font Enhancement: Use Parent
Text Color: Use Parent
Background Color: Use Parent
Check Box
Font Name: Use Parent
Font Size: Use Parent
Font Enhancement: Use Parent
Text Color: Use Parent
Background Color: Use Parent
Option Button
Font Name: Use Parent
Font Size: Use Parent
Font Enhancement: Use Parent
Group Box
Font Name: Use Parent
Font Size: Use Parent
Font Enhancement: Use Parent
Text Color: Use Parent
Background Color: Use Parent
Child Table Window
Font Name: Use Parent
Font Size: Use Parent
Font Enhancement: Use Parent
Text Color: Use Parent
Background Color: Use Parent
List Box
Font Name: Use Parent
Font Size: Use Parent
Font Enhancement: Use Parent
Text Color: Use Parent
Background Color: Use Parent
Combo Box
Font Name: Use Parent
Font Size: Use Parent
Font Enhancement: Use Parent
Text Color: Use Parent
Background Color: Use Parent
Line
Line Color: Use Parent
Frame
Border Color: Use Parent
Background Color: 3D Face Color
Picture
Border Color: Use Parent
Background Color: Use Parent
Formats
Number: 0'%'
Number: #0
Number: ###000
Number: ###000;'($'###000')'
Date/Time: hh:mm:ss AMPM
Date/Time: M/d/yy
Date/Time: MM-dd-yy
Date/Time: dd-MMM-yyyy
Date/Time: MMM d, yyyy
Date/Time: MMM d, yyyy hh:mm AMPM
Date/Time: MMMM d, yyyy hh:mm AMPM
External Functions
Constants
.data CCDATA
0000: 3000000000000000 0000000000000000 00000000
.enddata
.data CCSIZE
0000: 1400
.enddata
System
User
Resources
Variables
Sql Handle: hSql
Boolean: b_Resultado
Internal Functions
Named Menus
Class Definitions
Default Classes
MDI Window: cBaseMDI
Form Window:
Dialog Box:
Table Window:
Quest Window:
Data Field:
Spin Field:
Multiline Field:
Pushbutton:
Radio Button:
Option Button:
Check Box:
Child Table:
Quest Child Window: cQuickDatabase
List Box:
Combo Box:
Picture:
Vertical Scroll Bar:
Horizontal Scroll Bar:
Column:
Background Text:
Group Box:
Line:
Frame:
Custom Control:
ActiveX:
Application Actions
On SAM_AppStartup
Set SqlDatabase = 'oracle'
Set SqlUser = 'erasmo'
Set SqlPassword = 'erasmo'
If SqlConnect( hSql )
If SqlOraPLSQLPrepare( hSql, '

declare
  x boolean;
begin

  -- é só substituir pela função
  x := true;

  if x then
    :b_Resultado := 1;
  else
    :b_Resultado := 0;
  end if;

end;

' )
If SqlOraPLSQLExecute( hSql )
If b_Resultado
Call SalMessageBox( 'Funcionou', 'Atenção', 0 )
Call SqlDisconnect( hSql )

<<image/gif>>

<<Softway.gif>>

Responder a