Bonjour,
J'utilise HyperFile C/S "linké" avec ODBC à l'aide du driver 11.
Les champs de plus de 200 caractères sont tronqué (position finale aléatoire).
Avez vous eu ce problème si oui, comment le résoudre?
Merci d'avance
Bonjour,
J'utilise HyperFile C/S "linké" avec ODBC à l'aide du driver 11.
Les champs de plus de 200 caractères sont tronqué (position finale aléatoire).
Avez vous eu ce problème si oui, comment le résoudre?
Merci d'avance
Oups, petit oubli : je travaille en .Net ce qui fait que j'ai bien besoin d'une liaison ODBC.
A moins qu'il existe un pilote Natif HF/.Net que PCSoft m'ai caché, mais sa m'étonnerai bien.
A savoir que mon code .Net est totalement générique et moulte fois testé dans d'autres solutions.
Si je comprends bien tu utilises une base Hyper File depuis un logiciel .Net via une connexion ODBC ?
Et les champs de plus de 200 caractères sont tronqués.
À mon sens, ce n'est pas un problème Hyper File, mais ODBC.
Une remarque : dans l'aide de Windev 9 :
On ne parle pas de base Hyper File C/S, mais de Hyper File Classic.Le driver ODBC sur Hyper File Classic (monoposte ou réseau) permet d'accéder à une base de données Hyper File Classic depuis un logiciel de base de données externe, gérant les accès par ODBC.
Afin d'éviter que d'autres programmes ne modifient intempestivement vos données Hyper File, le pilote est en lecture seulement.
Le driver ODBC sur Hyper File Classic est un driver ODBC de niveau 2. Pour plus d'informations, consultez un manuel spécialisé sur ODBC.
As-tu vérifié que ta version permet de gérer HF C/S ?
Oui la version 11 gère HF CS, elle permet même l'écriture.
Je suppose que tu as vérifié le type et la taille des rubriques de ton ficheir HF ?
Et celle des champs et des variables de ton logiciel ?
Justement j'ai un doute du coté HF, j'ai des champs de type "Mémo Texte" qui ont pour taille 8 octet (Données obtenu dans le centre de controle HF) alors que le texte est long, environ 800 caractères.(Il s'affiche très bien du coté windev)
Est ce normal? (J'ai pas de maitrise sur HF)
Les rubriques (champs) "Mémo" sont des rubriques particulières.
Il est possible de leur attacher des fichiers binaires (images, sons, etc.)
Quelques extraits de l'aide WD
HAttacheMémo ()
Permet d'associer un fichier (ou une requête) à une rubrique de type mémo binaire ou d'annuler l'attachement existant entre un fichier binaire (ou un requête) et une rubrique.
Le fichier sera lu et ajouté au mémo uniquement lors de l'ajout ou de la modification de l'enregistrement (fonction HAjoute ou HModifie , HEcrit ).HExtraitMémo ()
Extrait le contenu d'une rubrique de type mémo binaire d'un fichier Hyper File, d'une requête ou d'une vue Hyper File dans un fichier physique (sur le disque).HInfoMemo ()
Informations sur le mémo binaire. Si le mémo est vide, correspond à une chaîne vide ("").
Les informations sont séparées par le caractère TAB. Ces informations sont les suivantes :
Type+TAB+NOM+TAB+Taille+TAB+Date+TAB+Heure+TAB+Info
Type Type du mémo. Ce paramètre peut prendre pour valeur "IMG", "WAV", "OLE", "BIN" ou "BAD" (indique que le mémo binaire est incorrectement stocké)
Nom Nom du fichier d'origine tel qu'il a été donné dans HAttacheMemo
Taille Taille du fichier d'origine en octets
Date Date du fichier d'origine au format "AAAAMMJJ"
Heure Heure du fichier d'origine au format "HHMMSS"
Info Information utilisateur telle qu'elle a été donnée dans HAttacheMemoSQLLitMémo ()
Récupère le contenu d'une colonne de type Mémo dans le résultat de la requête, pour la ligne en cours.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SQLExec("SELECT NOM, PRENOM, POSTE, PHOTO FROM CLIENT", "REQ1") SQLAvance("REQ1") // Ou SQLFetch("REQ1") // Récupérer les données NOM = SQLLitCol("REQ1", 1) PRENOM = SQLLitCol("REQ1", 2) POSTE = SQLLitCol("REQ1", 3) // Lire le mémo binaire et le stocker dans un fichier // photo du produit HExtraitMemo( SQLLitMémo ("REQ1", 4),"Produit.BMP") SQLFerme("REQ1")
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 // Récupération d'un mémo binaire SQLExec("SELECT NOM, MORCEAU FROM MUSIQUE", "REQ1") Son( SQLLitMémo ("REQ1", 2)) // Joue le mémo binaire
Le probleme c'est que je suis .Net donc j'ai que les fonctions SQL normales
Je n'ai aucune idée de solution SQL, je n'utilise les bases HF que sous Windev.
Par contre, en cas de "gestion externe" on parle beaucoup de SQLManagerX
Pour SQLManagerX, j'arrive pas trop à comprendre si il sert pour les developpeur WD ou les autres.
Sa prend du temps de passer de l'utilisation d'une base HF CS à l'utilisation de MySQL dans une application Windev ? (Est ce que c'est fait en quelque clic?)
Pour ceux qui utilisent une base HF depuis une application non WD
Pour utiliser HF sous WD, il n'y a (heureusement) aucun problème
Pour le passage HF --> MySQL, amha, tout dépend de l'application et des fonctions utilisées. Si elle est écrite en W-langage avec les fonctions HF, je suppose qu'il faudra réécrire ce qui concerne la gestion de la base.
Quoique... ?
Mais pour cela, il serait préférable d'attendre l'avis de quelqu'un de plus compétentAccès Natif MySQL : Programmation à l'aide des fonctions Hyper File
Différences par rapport à la programmation SQL :
Pour manipuler les données MySQL, les requêtes ne sont pas obligatoires. En effet, vous pouvez directement utiliser les fonctions Hyper File pour lire vos données, effectuer des recherches, des filtres, ...
Cependant, il est nécessaire d'importer la structure des fichiers MySQL dans l'analyse WinDev ou WebDev.
Remarque : les requêtes exécutées avecHExecuteRequête etHExecuteRequeteSQL sont automatiquement "corrigées" pour être compatibles avec MySQL.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager