IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Firebird : Problème de division avec variable


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 9
    Points : 10
    Points
    10
    Par défaut Firebird : Problème de division avec variable
    Bonjour
    J'ai un petit problème pour récupérer des requêtes BDE sous Firebird
    ci-dessous une requête qui utilise 4 paramètres et qui marche très bien sous Paradox mais plus sous Firebird 2.5.2: (même si je cast les valeurs)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select T.*,
    (((T.PoidsBloc / :SeuilPds        ) - 1) * 100) as PrcntPoids,
    (((T.PresAuto  / :SeuilPression ) - 1) * 100) as PrcntPression
    from Mbloc T
    where (T.Nolot = :Nolot) and (T.NoSpec = :NoSpec)
    /* Error: "Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
    Dynamic SQL Error.
    Expression evaluation not supported.
    Invalid data type for division in dialect 3.
    " */
    Apparemment Firebird n'aime pas les paramètres dans les expressions ?
    Comment contourner simplement ce problème sans avoir à coder le champ calculé ?
    merci pour vos conseils

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 9
    Points : 10
    Points
    10
    Par défaut CAST, cast toujours
    Bonjour,
    Finalement le problème est résolu,
    c'est un peu lourd a écrire mais ça marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT T.*,
    CAST(((T.PoidsBloc / cast(:SeuilPds as Float) - 1) * 100) as DECIMAL(5,2)) AS PrcntPoids,
    CAST(((T.PresAuto  / cast(:SeuilPression as Float) - 1) * 100) as DECIMAL(5,2)) AS PrcntPression
    FROM Mbloc T
    WHERE (T.Nolot = :Nolot) AND (T.NoSpec = :NoSpec)
    c'était simplement un problème de Cast (heureusement sans (e)....)
    c'est surement pour ça que j'ai pas trop eu de conseil !!
    alors je me répond, ça peut toujours servir à quelqu'un
    voili

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de division avec Xcode 4.1
    Par erogan dans le forum Débuter
    Réponses: 4
    Dernier message: 09/11/2011, 00h06
  2. Problème requête web Avec variables
    Par Joe-Rato dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 29/09/2011, 15h58
  3. [MySQL] Problème de syntaxe avec variable utilisée dans fonction PHP et MySQL
    Par redvivi dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 19/03/2008, 21h07
  4. Probléme de recordset avec variable
    Par crovette51101 dans le forum VBA Access
    Réponses: 3
    Dernier message: 11/05/2007, 09h40
  5. problème d'overflow avec variable type double
    Par ben83 dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 15/02/2007, 09h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo