Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
J'ai migré une application PB 7 et Sql Anywhere 5.5.0.5 en PB 11.5.1 Build 4608 et Sql Anywhere 11.0.1.
Pour pouvoir transférer les données des clients, j'execute une série de Pipeline en me connectant à la base source avec Sql Anywhere 8.0.3 et à la base destination avec Sql Anywhere 11.0.1.
Nous avons du nous connecter à la base source qui est initialisé en 5.5.0.5 avec Sql Anywhere 8.0.3 car la 5.5.0.5 n'est pas compatible avec les OS 64bits.
Lorsque je me connecte à la base source avec Sql Anywhere 8.0.3 alors les accents sont mal interprétés et après transfert dans une base en Sql Anywhere 11.0.1 alors le mot "référentiel" est devenu "rùfùrentiel".
Lorsque je me connecte dans le database Painter de PB7 à ma base source avec Sql Anywhere 8.0.3 alors pas de soucis d'accent
Lorsque je me connecte dans le database Painter de PB11.5.1 à ma base source avec Sql Anywhere 8.0.3 alors j'ai des soucis d'accent
Je pense que mon soucis vient du fait que la base source a une Collation Sequence = cp850 qui n'est plus le standard d'encodage. Puisque pour la France désormais, il s'agit du Windows-1252.
Nous nous connectons via odbc avec la version runtime du moteur rtengxx.exe
Quelqu'un aurait-il une solution pour que je puisse me connecter à ma base en forçant l'encodage et ainsi pouvoir retrouver mes accents ?
Merci d'avance
Dernière modification par Amélie (23-10-2015 09:44:22)
Hors ligne
Bonjour,
J'utilise aujourd'hui une application en PB 11.2 et SQL Anywhere 8.0.3 (Windows-1252).
J'ai migré de SQL Anywhere 5.5 vers SQL Anywhere 7.0 (puis 8.0) il y a déjà quelques années (~2002), ton problème me rappelle de vieux souvenir.
A chaque fois, j'ai migré selon la procédure sybase DBUNLOAD/RELOAD pour obtenir une base nativement dans la nouvelle version (dbupgrad n'est pas suffisant pour obtenir une base dans la nouvelle version avec toutes les fonctionnalités de la nouvelle version).
Pour solutionner ton problème, j'essayerai d'utiliser le convertisseur (Bouton choisir un convertisseur) dans le paramétrage ODBC => SQL Anywhere 11.0 Translator.
Hors ligne
Merci pour la réponse mais quand je sélectionne le convertisseur alors j'ai un message :
Les routines d'installation du convertisseur ODBC SQL Anywhere 11 Translator ne peuvent être chargées. Il se peut que la mémoire soit insuffisante et que vous ayez besoin de quitter quelques applications.
Quand tu parles de DBUNLOAD/RELOAD, il s'agit de dbunload.exe.
Cela veut dire qu'il va falloir que je diffuse sur le terrain dbunload.exe, que je lui fasse décharger mes tables et que je les recharge dans une base vide ?
Merci d'avance
Hors ligne
Amélie a écrit:
Cela veut dire qu'il va falloir que je diffuse sur le terrain dbunload.exe, que je lui fasse décharger mes tables et que je les recharge dans une base vide ?
Merci d'avance
tu peux imaginer de faire un petit EXE (ou un BATCH) qui fera ce travail
pour changer l'encodage : http://www.ianywhere.com/developer/prod … tlang.html
Hors ligne
Il n'y a donc pas de moyen de forcer la conversion avec une option dans la chaine de connexion.
Hors ligne
Bonjour,
De souvenir, j'ai procédé comme dans le lien donné par erasorz.
Je ne veux pas te faire peur. Nous n'avons jamais pu automatiser le processus.
Lors du déchargement le script sql est généré pour récréer la nouvelle cible et le rechargement automatique des données. Nous avons du intervenir manuellement à chaque fois dans le script sql pour recharger la base correctement (de souvenir le plus gros problème : ordre de rechargement des données incorrectes ne respectant pas les contraintes d'intégrité).
Pour info, j'ai fait l'essai pour le SQL Translator, j'ai le même message d'erreur ( à approfondir).
Hors ligne
Merci de vos réponses
Je vais creuser et je verrais si j'arrive à automatiser car cette conversion peut toucher plus de 1000 clients
Hors ligne