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

SQL Firebird Discussion :

Arithmetic exception, numeric overflow, or string truncation


Sujet :

SQL Firebird

  1. #1
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut Arithmetic exception, numeric overflow, or string truncation
    Bonjour,

    Il y a une chose que je n'ai pas comprise.....
    Lorsqu'on défini dans une table un champ Varchar (30) et que dans une PS lors d'un insert/update ce même champ est de 25 suite à une erreur. Pourquoi FB ne fait pas automatiquement la troncature il me semble que certain SGBD le font, non ? A la place il nous renvoi le message et donc ca reste bloquer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Message: Dynamic SQL Error
    SQL error code = -303
    arithmetic exception, numeric overflow, or string truncation
    string right truncation
    expected length 100, actual 150
    Incompatible column/host variable data type
    GDS Code: 335544569 - SQL Code: -303 - Error Code: 249
    De plus ca n'affiche pas le nom du champ ca aurait été plus simple pour dépister si on avait de nombreux champs de type chaine.

    Merci.
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 756
    Points : 52 531
    Points
    52 531
    Billets dans le blog
    5
    Par défaut
    Qu'attendez vous pour changer de SGBDR ???

    Plus sérieusement, SQL est un langage typé et le type VARCHAR(30) n'est pas égal au type VARCHAR(25). Il en résultera des conversions implicites qui vont pourrir vos performances....

    À vous d'être intelligent !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    Bonsoir,

    Citation Envoyé par SQLpro
    Qu'attendez vous pour changer de SGBDR ???
    Tout à fait juste, soit on accepte soit on change de SGBD et puis c'est une ingratitude pour un gratuit pareil.
    Enfin oui, suffit de faire attention à ce que l'on fait.

    Merci à vous.
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 029
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    [Mode Troll]
    C'est n'est pas forcément de SGBDR qu'il faut changer de la personne qui n'a pas bien documenter la BDD !
    [/Mode]

    Plus sérieusement il faut quand même un minimum de rigueur. C'est vrai, Firebird n'est pas très explicite dans ce type de message. Pourquoi ne pas proposer aux auteurs une modification ? Après tout Firebird est un vrai Open Source !
    @SQLPro oui, PostgresQL aussi mais nous sommes dans le forum Firebird.

    Tout dépend également de l'outil que vous utilisez lorsque vous écrivez une procédure certains permettent de les tester en mode debug.

    Mais, à mon avis, la rigueur+la documentation sont les maitres mots
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    Bonjour,

    Citation Envoyé par SergioMaster
    Mais, à mon avis, la rigueur+la documentation sont les maitres mots
    En effet, mais parfois en outre-passe les règles de base dans certaines situations et pour certaines raisons qui ne favorisent guère le developpement.
    En tout cas merci pour vos conseils.
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  6. #6
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 377
    Points : 19 049
    Points
    19 049
    Par défaut
    Salut Freud.

    Citation Envoyé par Freud
    Lorsqu'on défini dans une table un champ Varchar (30) et que dans une PS lors d'un insert/update ce même champ est de 25 suite à une erreur.
    Vous n'avez jamais entendu parlé d'un dictionnaire de données ? Où l'on définit le nom des colonnes ainsi que leur type et leur format dans chaque table !
    C'est ce genre de travail que vous devez faire quand vous créez une base de données.
    Car vous ne serez plus en mesure de deviner le nom, voir le type de la colonne dont vous avez besoin.

    Ce n'est pas un problème de SGBDR car cela retrouve aussi dans des langages de programmation.
    On nomme cela des conversions implicites dont les débutants ne maîtrisent pas du tout leurs effets.
    En d'autre terme, ce n'est pas le SGBDR qui est en cause mais votre manque de rigueur dans vos développements.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  7. #7
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    Bonsoir Artemus,

    Citation Envoyé par Artemus
    Vous n'avez jamais entendu parlé d'un dictionnaire de données ?
    Si, et j'ai perdu cette habitude. Mais c'est comme je l'ai dis plus haut, parfois il y a des situations contraignantes qui ne permettent pas de respecter certaines règles de base et donc on s'appui sur notre intuition et ou mémoire pour se rappeler. Evidemment cela peut être épuisant et, par conséquent, sujet à beaucoup d'erreurs. Le problème est que ca n'en est pas vraiment un, puisque j'arrive à interpréter le message et sais d'où cela provient. C'est enervant si une table contient de nombreux champs qui ne sont pas documenter (ce qui arrive à beaucoup de developpeurs....????)

    Disons que mon post aurait dû être poster chez l’équipe de FB en leurs proposant l'affichage du champ en question ce qui pourrait simplifier les choses pour des jeunes qui débutent avec FB comme leur 1er SGBD.

    Et merci pour vos remarques.
    Bon, alors c'est résolu
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

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

Discussions similaires

  1. arithmetic exception,numeric overflow ..
    Par makaphrodite dans le forum InterBase
    Réponses: 1
    Dernier message: 06/12/2008, 20h06
  2. std::exception: avec ou sans string?
    Par Kurisu dans le forum SL & STL
    Réponses: 2
    Dernier message: 14/07/2008, 15h14
  3. Réponses: 5
    Dernier message: 25/02/2008, 22h28
  4. String truncated
    Par mrttlemonde dans le forum C
    Réponses: 5
    Dernier message: 22/03/2006, 08h49
  5. TRIGGERS - String truncation ou numeric overflow
    Par AlBoLeToNo dans le forum InterBase
    Réponses: 5
    Dernier message: 21/09/2004, 12h58

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