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

HyperFileSQL Discussion :

Requête SQL sur rubrique photo [HF19]


Sujet :

HyperFileSQL

  1. #1
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut Requête SQL sur rubrique photo
    Bonjour,

    depuis le centre de contrôle HFSQL, j'essaye tout bêtement de lister les clients ayant une photo (type Mémo binaire classique).
    Or les simples requêtes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT * FROM T_client WHERE photo<>'';
    SELECT id, nom, prenom, photo FROM T_client WHERE photo='';
    SELECT * FROM [T_client.FIC] WHERE (photo<>'');
    indiquent l'erreur : Impossible de transformer la donnée dans le type de la rubrique <ALIAS_5.photo>.

    Pourriez-vous SVP me dire comment faire pour manipuler cette rubrique photo ?

    Merci !!!

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Pour moi 2 pistes :
    - Utiliser les fonctions H car le SQL HFCS n'a pas l'air doué avec les mémos...
    - Si tu veux rester en SQL : Ajouter un booléen dans ta base. A vrai lorsque tu ajoutes une image dans le mémo.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  3. #3
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    Bonjour et merci pour votre aide,

    Pour le moment je ne fait que de la maintenance sur la base via le centre de contrôle... donc pas de code avec fonctions H.
    Pour ce qui est d'ajouter une rubrique booléenne... je n'y tiens pas.

    Je vais essayer de contacter le support.


  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Points : 812
    Points
    812
    Par défaut
    Bonjour à tous,

    Une suggestion, à tout hasard..

    Tu pourrais essayer d'utiliser la fonction SQL LEN.

    Par exemple LEN(photo) permettrait (peut-être) de connaître la "taille des données" contenues dans cette rubrique.

    En principe LEN() ne devrait s'appliquer qu'à des rubriques texte et mémo texte, mais on ne sait jamais.
    http://doc.pcsoft.fr/fr-FR/?2034005&...iteur#NOTE2_17

  5. #5
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    et la réponse (tardive... désolé) est : ça ne marche pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id, nom, prenom, LEN(photo) FROM T_client
    ne retourne que des 0 (photo ou pas)


  6. #6
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id, nom, prenom, photo FROM T_client WHERE photo IS NOT NULL;

  7. #7
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Merveilleux
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  8. #8
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    ouais mais en faite ça ne marche pas à 100%...
    ...certains clients sont listés alors qu'ils n'ont pas de photo
    en faisant F2 sur ces clients je constate que le champ photo n'est pas vide alors que la taille est de 0 octet !!!!


  9. #9
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    A toi de mettre en place au choix :
    1 - Dans ton fichier, un booléen qui sera à vrai s'il y a une photo (à mettre à jour à chaque ajout/suppression de photo).
    2 - Une moulinette qui va "scanner" ton mémo afin de voir s'il y a réellement une photo (hinfomemo va t'aider pour cela).

    Ce que je ferais, c'est d'abord d'ajouter ce booléen dans mon fichier, puis vérifier la "consistance" du mémo. Puis de modifier ma partie ajout / suppression de photo.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2020
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Bonjour moi j'ai trouvé une autre manière et qui fonctionne. Je convertis la colonne d'image avec le CAST en CHAINE je verifie si c'est vide. En faite quand il convertis avec du texte qui veux rien dire si il y a une image et quand il y a pas d'image il n'y a pas de texte. Voici un exemple de requête HFSQL windev :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select cast(le_nom_de_la_table.Le_nom_de_la_colonne_de_l_image as VARCHAR(9999)) as image_en_varchar  from le_nom_de_la_table where  image_en_varchar= ''

  11. #11
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Bonjour,

    C'est marrant de voir remonter un si vieux sujet (+ de 6 ans)...

    Pas mal ton histoire mais tu ne testes pas le NULL. Dans le cas présenté, la rubrique valait potentiellement NULL.

    Je ne sais pas en quelle version tu es mais à l'époque, je ne suis même pas sûr que c'était un Windev 18/19 qui avait été utilisé. Si je me souviens bien, il y a eu une grosse amélioration du SQL en WD17. Alors, imagine un peu si c'était en WD16, ta requête aurait sûrement planté.

    en tout cas, je plussoie ton intervention.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2020
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Re bonjour
    Je j'ai fait le test en version 26 de windev et il n'y a toujours rien en hfsql qui permet de dire tout bêtement si null enfin ce que je veux dire il y a bien l'option null en hfsql mais cela ne fonctionne pas sur les colonnes memo(image,...). J'ai fait beaucoup d'essais en sql pour juste trouver si oui ou non il y a une image mais rien ne fonctionne correctement le 'null' ne fonctionne pas et le length() ne fonctionne pas dans cette condition car il retourne toujours 0 (Image ou pas d'image). Je n'avais pas envie de créer un colonne booléen qui dit oui ou non quand on ajoute une image. Donc j'ai fait un test de la requete faisant le cast en varchar pour voir comment réagis hfsql car c'est un détournement de la chose. Et bien cela fonctionne et meme si en l’occurrence d'un ligne la colonne image ou il y a pas d'image donc c'est une zone null vide et bien je convertis en varchar donc null = vide. Donc cela fonctionne très bien
    La photo que j'ai mis voici ce qu'affiche la colonne quand il y a des images en cast en varchar et quand la c'est null.
    Je sais que cela fait des années mais aujourd'hui je devais codé dans ce langage et ne trouvons rien sur le web ni sur le support windev que je me suis dit que cela pourra aider d'autres personnes meme aujourd'hui.
    Bonne journée
    Images attachées Images attachées  

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/01/2006, 18h35
  2. requêtes sql sur plusieurs tables
    Par zahiton dans le forum Langage SQL
    Réponses: 4
    Dernier message: 25/11/2005, 10h59
  3. [SQL] requêtes SQL sur plusieurs tables
    Par zahiton dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/11/2005, 16h32
  4. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 16h26

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