|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2004 Messages : 41 ![]() |
Nouveau Problème.
Si je rentre la donnée :'1800000080F21828' directement dans le champs 'Nom' varchar(16) de la base avec laquelle je travaille, il n'y a pas de problème. Si je veux récupérer l'index 'IDXCAPT' à l'aide de la procédure stockée suivante et par l'intermédiaire de IBStoreProc de Delphi fournissant le Nom '1800000080F21828' au paramByName('NOMCAPT') FireBird déclanche une erreur de conversion de données: CREATE PROCEDURE CHERCHE_IDX ( NOMCAPT VARCHAR(16)) RETURNS ( IDXCAPT BIGINT) AS begin /* Procedure Text */ SELECT IDENT_CAPTEURS.INDEXCAPT FROM IDENT_CAPTEURS WHERE IDENT_CAPTEURS.IDENTIFIANT = :NOMCAPT INTO :IDXCAPT; suspend; end^ Je progresse lamentablement sur ce coup là. Si quelqu'un voit la faille ... Merci d'avance. |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
je ne connais rien à FireBird, mais je pense que tu devrais placer ton INTO à la fin du SELECT et donc juste avant le FROM.
|
|
|
00
|
|
|
#3 | ||||
|
Membre régulier
![]() Inscription : février 2005 Messages : 100 ![]() |
Ah bas non le INTO est bien placé.
Par contre le problème doit provenir de IDENT_CAPTEURS.INDEXCAPT car il doit s'agit d'un bigint sinon ton erreur s'explique. Si c'est forcément un entier, alors préfère utiliser la requête suivante Code :
Code :
|
||||
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2004 Messages : 41 ![]() |
Merci à SillyCoder,
C'était bien la bonne réponse à peu de choses près. La fonction delphi transmettait une chaine de 16 caractères plus les guillemets de part et d'autre soit 18 caractères vers la procédure stockée pour un champ de 16 caractères. le fait de supprimer les guillemets de la chaine a résolu le problème de la variable entrante. Cette procédure devait retourner un bigint à la fonction Delphi qui était définie comme un Integer (trop petit). Si J'avais fait attention au libellé de l'erreur renvoyée qui changeait à chaque fois que j'essayai de résoudre la transmission du premier paramètre, j'aurai pu supposer que ce modification était la conséquence du transfert de la deuxième valeur et non pas d'une mauvaise interprétation de ma première valeur corrigée. Merci les gars de votre aide. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com