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

Sybase Discussion :

[ASE][11]Driver Sybase System 11 tronque des valeurs


Sujet :

Sybase

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut [ASE][11]Driver Sybase System 11 tronque des valeurs
    Bonjour,
    Dans un script VB, j'essaye d'accéder à une vue d'une base de données SYBASE.
    Je réalise pour cela une connexion ADODB puis après avoir créé mon recordset je récupère les données de chaque colonne. Jusque là tout est classique.

    Je n'utilise pas le même driver ODBC suivant ce que dispose l'ordinateur du client : soir "Sybase System 11" soit "Sybase ASE ODBC Driver". Tout fonctionne pour le mieux lorsque j'utilise le driver "Sybase ASE ODBC Driver".
    Alors que pour le driver "Sybase System 11", certaines données sont tronquées. Lorsque je récupère un numéro de dossier, les numéro terminant par un zéro sont tronqués.
    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    Set rstTable = New ADODB.Recordset
     
    'Requête SQL récupérant les éléments engagés dont les dossiers ne sont pas clos et dont
    'les actions sont fixes
    str_sql = "select distinct DOSCTE_CDN, ELT_ENGA_RFA from V_CTRL_ELENGA" _
        & " where ETAT_DOSS_RFA='V' and ACT_FIX_RFA='F' and CTE_EFFET_DT<'" & _
        Annee_element & "/01/01'"
     
    'Execution de la requête
    rstTable.Open str_sql, cnx
     
    nb_objets = 0
    While Not (rstTable.EOF)
      resultat = resultat & rstTable("DOSCTE_CDN").Value & "/" & rstTable("ELT_ENGA_RFA").Value & ";"
      rstTable.MoveNext
      nb_objets = nb_objets + 1
    Wend
     
    Liste_objets = resultat
    ======> "rstTable("DOSCTE_CDN").Value" me renvoie par exemple "3007" au lieu de "30070".

    Merci de votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 566
    Points
    19 566
    Billets dans le blog
    25
    Par défaut
    Quelle est la version du serveur Sybase ? 11 ou >= 11.5 ?

    Un ODBC 11 n'est pas compatible (en tout cas pas supporté) pour accéder à une version serveur supérieure à 11.0.3.3

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    La version de mon serveur Sybase est 12.5. Je viens de discuter avec le responsable du serveur et il m'a parlé de la taille du buffer qui ne serait pas interpréter pareil entre le pilote odbc 11 et 12...

    Mais on s'est rendu compte que cela n'agissait que sur les champs de types numériques. Pour les champs de type caractère, le problème ne semble pas se poser.
    Comme je vais chercher mes résultats dans une vue, un petit "convert(varchar(), "")" va me permettre de contourner le problème.

    Sinon il est toujours possible d'installer le driver version 12 qui semble fonctionner correctement avec le serveur version 12.

    En tout cas merci pour les pistes...

  4. #4
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 566
    Points
    19 566
    Billets dans le blog
    25
    Par défaut
    buffer, mantisse, varchar, int et tout le toutim...

    La question ne se pose pas : le client v.11 n'est pas supporté par la 12.5 ! Vous risquez de créer la panade en continuant de la sorte...

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/08/2009, 09h41
  2. Sybase System 11-ODBC-No Suitable Driver
    Par Tiresia dans le forum JDBC
    Réponses: 1
    Dernier message: 31/01/2008, 11h59
  3. [load] Précision tronquées des valeurs lues
    Par vincent123456 dans le forum MATLAB
    Réponses: 6
    Dernier message: 23/01/2008, 09h25
  4. Affichage tronqué des valeurs
    Par Roy Miro dans le forum Installation
    Réponses: 6
    Dernier message: 30/07/2007, 12h26
  5. Réponses: 5
    Dernier message: 21/06/2006, 14h46

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