Après windows pour les nuls, voici PB pour les bons (ou presque).

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 20-08-2007 07:24:19

ossarc  
Membre Geek
Date d'inscription: 17-08-2007
Messages: 32
Pépites: 145
Banque: 0

[RESOLU] Conversion Oracle / Powerbuilder

Voilà, j'ai une procédure stockée sous oarcle qui me renvoie une donnée de type Number.
Mon Problème est que sous PB, je ne récupère pas la valeur exacte. Est-ce qu'il existe une solution.

Exemple: Sous Oracle je trouve 56212.51 et sous Pb je récuère 56212.50

Merci

Hors ligne

 

#2 20-08-2007 07:41:17

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Conversion Oracle / Powerbuilder

ossarc a écrit:

Voilà, j'ai une procédure stockée sous oarcle qui me renvoie une donnée de type Number.
Mon Problème est que sous PB, je ne récupère pas la valeur exacte. Est-ce qu'il existe une solution.

Exemple: Sous Oracle je trouve 56212.51 et sous Pb je récuère 56212.50

Merci

As-tu déclaré un float ou un decimal ?


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#3 20-08-2007 07:45:56

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Conversion Oracle / Powerbuilder

Il y a un bug en pb des fois 56212.51 est recuperé
56212.50999999999999999999999999999998
Tu peux verifier ?


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#4 20-08-2007 10:16:43

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: [RESOLU] Conversion Oracle / Powerbuilder

1) http://www.gnurou.org/documents/smart-questions-fr.html

2) Number (x, y) : que valent x et y ?
"Number" tout seul ça ne veut rien dire pour moi

3) Donne ton script PB qui lance la proc et récupère les valeurs

4) Versions de PB et d'Oracle, driver utilisé


never let people work on more than one thing at once.

Hors ligne

 

#5 20-08-2007 10:59:34

ossarc  
Membre Geek
Date d'inscription: 17-08-2007
Messages: 32
Pépites: 145
Banque: 0

Re: [RESOLU] Conversion Oracle / Powerbuilder

J'ai déclaré un Number 15.2 au niveau de la base et un decimal sou pb

Hors ligne

 

#6 20-08-2007 11:01:40

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Conversion Oracle / Powerbuilder

Decimal ou dec{2} ??


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#7 20-08-2007 11:15:51

ossarc  
Membre Geek
Date d'inscription: 17-08-2007
Messages: 32
Pépites: 145
Banque: 0

Re: [RESOLU] Conversion Oracle / Powerbuilder

un Dec {2}.
Ensuite la proc renvoie un number.
Voici le code sous ORACLE

Code: sql

CREATE OR REPLACE FUNCTION "FS_CALC_MNT_PROP_DOSSIER"   
(p_ann_dossier varchar2, p_num_dossier varchar2)
  return number is
  integrity_error exception;
  errno           integer;
  errmsg          char(200);
  sann            varchar2(4);
  snum            varchar2(6);
  r_mnt_prop_dossier    number(15, 2);
  sidf_comp        varchar2(3);
  sidf_nat varchar2(6);
  smnt_max number(15,2);
  smnt_retenu_ventil number(15,2) :=0;
begin
smnt_retenu_ventil:=fs_calc_mnt_ventil_sum(p_ann_dossier ,p_num_dossier);
select gide.regles.idf_compet,
       gide.regles.idf_nattrav,
       gide.dossier.ann_dossier,
       gide.dossier.num_dossier,
       gide.regles.mnt_max_paye
  into
  sidf_comp,
  sidf_nat,
  sann,
  snum,
  smnt_max
  from gide.regles, gide.dossier
  where
  gide.regles.idf_compet = gide.dossier.idf_compet
  and gide.regles.idf_nattrav = gide.dossier.idf_nattrav 
  and gide.dossier.ann_dossier=p_ann_dossier
  and gide.dossier.num_dossier=p_num_dossier; 
  if smnt_max is not null and smnt_retenu_ventil>smnt_max then
  r_mnt_prop_dossier:=smnt_max;
  else
  r_mnt_prop_dossier:=smnt_retenu_ventil;
  end if;
  return r_mnt_prop_dossier;

EXCEPTION
  WHEN NO_DATA_FOUND then
    errno  := -20005;
    errmsg := 'PAS D ENREGISTREMENT TROUVE POUR CES CRITERES';
    raise_application_error(errno, errmsg);
end;



Sous PB, je le récupère comme celà:

Code: pb

dec{2} ldec_mnt_prop_dossier

//Appel fonction stockée lb_ret =FS_CALC_MNT_PROP_DOSSIER (as_identifiant,as_annee) -- A coder
Declare fs_calc_mnt_prop_dossier Procedure For FS_CALC_MNT_PROP_DOSSIER(:as_annee,&
                                                                                                 :as_identifiant) using sqlca;
  
  execute fs_calc_mnt_prop_dossier;
  
  FETCH  fs_calc_mnt_prop_dossier INTO :ldec_mnt_prop_dossier;
    CLOSE fs_calc_mnt_prop_dossier;


Voilà

Dernière modification par JCZ (26-08-2007 15:06:44)

Hors ligne

 

#8 20-08-2007 11:29:16

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Conversion Oracle / Powerbuilder

JCZ a écrit:

Il y a un bug en pb des fois 56212.51 est recuperé
56212.50999999999999999999999999999998

ossarc a écrit:

un Dec {2}.
Ensuite la proc renvoie un number.

Voilà

1. voici une bidouille
Tu recuperes dans un decimal et fais un round( '' ,2)

2. Tu peux aussi essayer de faire un retour de type : table.colonne%TYPE
avec table.colonne de type number(15,2)

Dernière modification par JCZ (20-08-2007 11:34:55)


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#9 26-08-2007 15:03:57

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Conversion Oracle / Powerbuilder

--------------------------------------------------------------------
Bonjour, peut-on considérer que le problème est Résolu ?
--------------------------------------------------------------------


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#10 31-08-2007 06:18:28

ossarc  
Membre Geek
Date d'inscription: 17-08-2007
Messages: 32
Pépites: 145
Banque: 0

Re: [RESOLU] Conversion Oracle / Powerbuilder

oui le problème a été résolu  en récupérant une chaine de caractère au lieu d'un number.
Concernant la base64, le problème est résolu aussi car finalement on a opté pour la solution de crypt32.dll

Merci pour votre aide

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22