1. #1
    Membre confirmé
    Homme Profil pro
    Développeur
    Inscrit en
    mai 2002
    Messages
    1 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : mai 2002
    Messages : 1 092
    Points : 506
    Points
    506

    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.

  2. #2
    Rédacteur
    Avatar de SQLpro
    Homme Profil pro
    Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Inscrit en
    mai 2002
    Messages
    17 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 17 125
    Points : 39 752
    Points
    39 752
    Billets dans le blog
    1

    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...
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur
    Inscrit en
    mai 2002
    Messages
    1 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : mai 2002
    Messages : 1 092
    Points : 506
    Points
    506

    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.

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    8 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 8 317
    Points : 19 233
    Points
    19 233
    Billets dans le blog
    4

    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
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
    J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
    Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur
    Inscrit en
    mai 2002
    Messages
    1 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : mai 2002
    Messages : 1 092
    Points : 506
    Points
    506

    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.

  6. #6
    Expert éminent Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    février 2011
    Messages
    2 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    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 : 2 821
    Points : 8 399
    Points
    8 399

    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 confirmé
    Homme Profil pro
    Développeur
    Inscrit en
    mai 2002
    Messages
    1 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : mai 2002
    Messages : 1 092
    Points : 506
    Points
    506

    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

+ 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