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

 Firebird Discussion :

Perte du contenu des blobs


Sujet :

Firebird

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 109
    Points : 78
    Points
    78
    Par défaut Perte du contenu des blobs
    Bonsoir,

    Lors d'une conversion de tables paradox vers interbase, peut-on récupérer les champs blobs ET leurs contenus (image ou memo) en respectant bien sûr le paramétrage des sub_types sans provoquer d'erreurs ?

    Où perd-on définitivement leurs contenus ?

    Merci d'avance pour vos réponses.

  2. #2
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Oui sous interbase il existe le type BLOB et il y a des sous-types pour préciser si c'est de type mémo, binaire, user, ...


    Donc je ne vois pas pourquoi on ne pourrait pas récupérer les info de paradox pour les injecter sous interbase.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 109
    Points : 78
    Points
    78
    Par défaut
    Merci de m'avoir répondu.
    Je ne comprends pas, si je vide ma table interbase de ses données cela bugge quand même. Cela voudrait dire que la syntaxe ci-dessous est mauvaise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE "BUGS"
    (
      "NUM"	INTEGER,
      "ANOMALIES"	VARCHAR(255),
      "CODE"	BLOB SUB_TYPE TEXT SEGMENT SIZE 80,
      "CIBLE"	VARCHAR(50),
      "LOCALISATION"	VARCHAR(255),
      "VUE"	BLOB SUB_TYPE 0 SEGMENT SIZE 80,
      );
    A l'execution de l'appli, l'erreur suivante est générée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets".
    J'ai cherché sur le site de borland, je n'ai rien trouvé.
    Savez-vous à quoi cela peut-il être dû ?

  4. #4
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE "BUGS"
    (
      "NUM"	INTEGER,
      "ANOMALIES"	VARCHAR(255),
      "CODE"	BLOB SUB_TYPE TEXT SEGMENT SIZE 80,
      "CIBLE"	VARCHAR(50),
      "LOCALISATION"	VARCHAR(255),
      "VUE"	BLOB SUB_TYPE 0 SEGMENT SIZE 80,
      );
    si ta table ne se crée pas c'est que ton code ci dessus est faux.
    Essaye d'enlever la derniere virgule et ca devrait marcher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE "BUGS"
    (
      "NUM"	INTEGER,
      "ANOMALIES"	VARCHAR(255),
      "CODE"	BLOB SUB_TYPE TEXT SEGMENT SIZE 80,
      "CIBLE"	VARCHAR(50),
      "LOCALISATION"	VARCHAR(255),
      "VUE"	BLOB SUB_TYPE 0 SEGMENT SIZE 80
      );

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 109
    Points : 78
    Points
    78
    Par défaut
    Pardon, erreur de frappe sur la virgule finale lors du post.
    La table se crée parfaitement mais compilation impossible car erreur renvoyée:
    Justement, c'est ce que je ne comprends pas. La table est créée, la requête semble correcte, pourtant je ne peux pas compiler.
    Qu'est-ce que ce message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets".

  6. #6
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Je m'en doutais que c etait une erreur de frappe (ou plutot de copier/coller) mais en fait je ne comprend pas bien ou et quand tu as ce message d'erreur ?

    Tu parles de compilation d'un programme C++ ? Delphi ? autre ?

    De plus ce message est celui qui est donné lorsqu'on essaye d'insérer des caractères non autorisé par le charactere set dans un char ou varchar (ou blob de type memo...)

    Ensuite je le rappel au cas où, car je ne sais pas du tout si c'est ton cas vu qu'a part le message d'erreur on ne sais pas trop ce que essaye de faire et comment... : On ne peux pas faire des insert ou update de colonne de type blob rien qu avec un ordre SQL.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 109
    Points : 78
    Points
    78
    Par défaut
    Le langage utilisé est Delphi.
    Grâce à tes explications, je crois comprendre que l'erreur vient des types de champ possible sous paradoxe (comme l'incrémentation automatique, entre autres...) et non transférables par du SQL sous Interbase.

    Ce que j'essaie de faire, c'est de porter une application qui tourne depuis 3 ans sous paradoxe vers Interbase.
    Je souhaitais récupérer tous les champs de mes tables et si possible, mais cela paraît utopique, leurs contenus.

    Je crains d'avoir à réécrire toutes mes tables, leurs contenus et par voie de conséquence, l'ensemble de mon appli. Ce qui me paraît fou.

    Peux-tu me confirmer qu'il n'y a donc pas de portabilité "réelle" de Paradox vers Interbase ?

  8. #8
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    je ne sais pas comment tu essayes de convertir tes données Paradox vers Interbase...
    Si tu rencontres des problèmes c'est que tu utilises un outils de transfert...

    Ce qui est certain c'est qu'en faisant un programme Delphi tu pourra facilement transferer tes données de Paradox vers Interbase...

    Si tu nous en disait plus sur comment tu procèdes, on pourra mieux te conseiller...

    De plus je suis de plus en plus persuadé que tu as un probleme de définition du character Set de ta base interbase ce qui explique ton message d erreur ...

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 109
    Points : 78
    Points
    78
    Par défaut
    J'ai tenté de les convertir en utilisant deux méthodes : IBPUMP et Le module de Données de delphi.
    Pour certaines tables cela a marché parfaitement.
    Mais pas du tout pour celles qui contiennent des blobs ou encore des index secondaires (et mon appli est truffée d'index secondaires).

    Je vais donc essayer de faire un prog delphi de transfert pour y parvenir.

    Pour ce qui est du "character Set", ma base interbase est en ISO8859_1.
    Le Dialect est 3.

    Merci de me consacrer du temps en essayant de m'aider.

  10. #10
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Lorsque tu as déclaré la connexion à Interbase as tu précisé que tu voulais utiliser la character Set ISO8859_1 ?

    Car sinon il va considérer que tu n'en utilise pas. Ca va marcher tant que tu n'essayera pas d'insérer des données avec des caractères accentués par exemple.
    Dans ce cas il va y avoir un message d'erreur car ta base est en iso8859_1 mais pas ta connection....

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 109
    Points : 78
    Points
    78
    Par défaut
    Tout d'abord merci à toi Barbidulle et merci à ce forum d'exister.
    Mon appli fonctionne parfaitement avec la table (la plus conflictuelle) ... sous Interbase.
    Je viens de migrer cette fameuse table avec des blobs de toutes sortes.

    Voila ce qui s'est passé, lorsque j'ai migré mes tables paradox, par IBPUMP, j'avais beau les paramétrer en SQL Dialect 3 et en Character Set ISO8859_1, le résultat donnait malgré tout après la migration un Dialect 1 et un character set par défaut.
    Ce qui renvoyait le message d'erreur que j'ai indiqué et des données présentes mais inaccessibles.
    Ayant pris le soin de bien faire attention à ces 2 paramètres, je ne pensais pas du tout que cela pouvait venir de là.

    Barbidulle m'a montré où pouvait se situer l'erreur par ses conseils.
    J'ai donc converti tables et récupéré mes données par IBPUMP.
    Puis j'ai utilisé IBADMIN et j'ai forcé la déclaration du Dialect SQL et du Character Set.
    Bilan : cela fonctionne. Merci encore.

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

Discussions similaires

  1. Normalisation du contenu des emails ?
    Par Lachessis dans le forum E-Mailing
    Réponses: 5
    Dernier message: 08/06/2005, 12h35
  2. Comment séparer le contenu des pages de leur structure?
    Par djodjo dans le forum Général Conception Web
    Réponses: 7
    Dernier message: 06/05/2005, 14h48
  3. Contenu des variables...
    Par jula dans le forum Linux
    Réponses: 5
    Dernier message: 13/04/2005, 17h44
  4. [JTable]Aligner le contenu des cellules
    Par )3lade dans le forum Composants
    Réponses: 2
    Dernier message: 09/03/2004, 13h24
  5. insertion des blob avec LOAD DATA...
    Par orli1x51 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 27/10/2003, 18h05

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