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

Langage PHP Discussion :

accès à des données sur le type de champ SQL Null[]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Par défaut accès à des données sur le type de champ SQL Null[]
    Bonjour,

    Je modifie actuellement Dolibarr afin de le synchroniser avec Batigest qui a une base Access (mdb).
    J'accède donc aux données par php et odbc, jusque là tout va bien sauf que j'ai des recordsets qui ne me ramènent pas toutes les données.
    C'est à dire elle va me ramener la plupart des champs et des valeurs vides là où il est censé y avoir du texte.
    En creusant un peu, j'ai remarqué que ces champs était du type SQL Null [].
    J'avoue ne pas connaître ce type de champ, je n'ai rien trouvé sur internet et surtout je ne sais pas comment accéder malgré tout à ces données.

    Quelqu'un aurait une idée de comment faire ?

    Mon code actuel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $sql = "SELECT Code, Libelle, CodeClient, DateDebut, DateFin FROM ChantierDef";
    $rep1=odbc_exec($cnx_batigest,$sql);
     
    if ($rep1){
     
        while(odbc_fetch_row($rep1)){
            $code=odbc_result($rep1,1);
            $libelleproj=odbc_result($rep1,2);
            $codeclient=odbc_result($rep1,3);
            $datedebproj=odbc_result($rep1,4);
            $datefinproj=odbc_result($rep1,5);
            }
    }
    Tout se rempli sauf libelleproj qui est de type SQL Null[] et c'est juste du texte dans la base de données qu'il y a dedans.

    Et voici l'image du type de champs

    Nom : Capture.JPG
Affichages : 84
Taille : 15,3 Ko

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjur,

    et tu n'es pas capable de changer le type dans la BDD ?

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Par défaut
    Malheureusement, j'ai essayé plusieurs fois et le type de champs ne peut être changé, il revient systématiquement sur le type SQL Null[]...

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Par défaut
    J'ouvrais ma base avec open office, n'ayant pas ACCESS sur mon poste principal, j'ai donc trouvé un poste avec ACCESS pour l'ouvrir et là le type est texte court, par contre, quand je fais une requête de sélection, j'ai droit à l'erreur 3008 : la table est déjà ouverte en mode exclusif par un autre utilisateur, ou elle est déjà ouverte par l'interface utilisateur et ne peut être manipulée par programmation.

    Il n'y a pas d'interface directement dans cette base, la base est ouverte en partagée et surtout, j'arrive à accéder à la plupart des tables et même à la plupart des données de cette table depuis php avec odbc_connect.

    Je suppose qu'il y a donc une protection ou quelque chose à faire pour palier à ce problème de mode exclusif, quelqu'un aurait la solution? Même une manière détournée.

    Merci d'avance.

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Par défaut
    Après avoir été plus loin dans mes recherches, je n'ai trouvé qu'une seule solution, c'est créer une table temporaire où je copie les données et à partir de la table qui est en mode exclusif, je peux alors alors consulter ces données correctement.
    Dernier point mais qui n'est pas encore trop gênant, je ne peux pas supprimer la table temporaire à la fin de ma procédure pour des raisons de droit, la table est déjà utilisée alors que je ne fais plus rien dessus.

    Voilà.

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

Discussions similaires

  1. [Débutant] extraction des données sur views avec linq to sql
    Par Lendcap dans le forum Linq
    Réponses: 5
    Dernier message: 02/05/2012, 15h27
  2. Réponses: 2
    Dernier message: 23/08/2006, 16h24
  3. Récupérer des données sur une page HTML
    Par rupeni dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 18/11/2005, 17h22
  4. Temps d'accès à des données dans un fichier
    Par TONIAPEL dans le forum Assembleur
    Réponses: 5
    Dernier message: 28/09/2003, 15h21

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