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 !
----- Original Message -----
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
?
-----
Original Message -----
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
|
--
|
Erasmo Bispo de
Oliveira Junior Gerente de Pesquisa e Desenvolvimento
|
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 )
|