PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → CONCATENATION DANS UNE REQUETE SQL
CONCATENATION DANS UNE REQUETE SQL
Started by Cyril JALA, Aug., 02 2006 1:41 PM - 13 replies
Posted on August, 02 2006 - 1:41 PM
Bonjour,

Lorsque que je fais une concaténation dans une requête sql, cela ne me donne pas une concaténation mais une somme.

Voici ma requête :
SELECT (NUMERO_CORRESPONDANT + ' ' + NUMERO_SINISTRE_1) AS IDENTIFIANT FROM HONORAIRE WHERE HONORAIRE<0

Pour info, j'ai la dernière version de Windev.
Posted on August, 02 2006 - 3:45 PM
Cyril JALA a exposé le 2/08/2006 :
Bonjour,

Lorsque que je fais une concaténation dans une requête sql, cela ne me donne
pas une concaténation mais une somme.

Voici ma requête :
SELECT (NUMERO_CORRESPONDANT + ' ' + NUMERO_SINISTRE_1) AS IDENTIFIANT FROM
HONORAIRE WHERE HONORAIRE<0

Pour info, j'ai la dernière version de Windev.


Tu peux peut-être construire ta requete dans une une chaine de
caractères et passer cette chaine à hExecuteCommandeSQL :

MaRequete est une chaine = "SELECT (" + NUMERO_CORRESPONDANT + " " +
NUMERO_SINISTRE_1 + ") AS IDENTIFIANT FROM HONORAIRE WHERE HONORAIRE<0"

hExecuteRequeteSQL(SourceDonnées, MaRequete)

Bon dev,
Bruno

--
Posted on August, 02 2006 - 3:46 PM
Cyril JALA a formulé la demande :
Bonjour,

Lorsque que je fais une concaténation dans une requête sql, cela ne me donne
pas une concaténation mais une somme.

Voici ma requête :
SELECT (NUMERO_CORRESPONDANT + ' ' + NUMERO_SINISTRE_1) AS IDENTIFIANT FROM
HONORAIRE WHERE HONORAIRE<0

Pour info, j'ai la dernière version de Windev.


voir ici :
http://sql.developpez.com/sqlaz/fonctions/…

--
Cordialement JeAn-PhI
Posted on August, 02 2006 - 3:47 PM
SELECT (TO_CHAR(NUMERO_CORRESPONDANT) + ' ' + TO_CHAR(NUMERO_SINISTRE_1)) AS IDENTIFIANT FROM HONORAIRE WHERE HONORAIRE<0
Posted on August, 02 2006 - 5:14 PM
str__requete est une chaine
str__requete = [
SELECT (NUMERO_CORRESPONDANT + ' ' + NUMERO_SINISTRE_1) AS IDENTIFIANT
FROM HONORAIRE
WHERE HONORAIRE<0;
]
Posted on August, 03 2006 - 10:15 AM
Bonjour,

Et merci de m'avoir répondu.
Je n'ai toujours pas de solution à ce problème.

Voici un récapitulatif de vos solutions ainsi que les erreurs remontées.

1 - Solution de Lallemand Bruno
Message d'erreur : Identificateur inconnu ou inaccessible

2 - Solution de Julien
Message d'erreur : Problème d'initialisation de la requête <sdMaREQ>.Mot ( inattendu

3 - Solution de Gabriel Hautclocq
Message d'erreur : Erreur de syntaxe sur le mot '.
Si je rajoute des guillemets au début et à la fin de ma chaine : Problème d'initialisation de la requête <sdMaREQ>.Mot inattendu

4 - Solution de Jean-Phi
J'ai essayé d'utiliser les fonctions ||, TO_CHAR. Windev ne reconnait pas la syntaxe.

J'ai lu sur ce forum, que certains avait rencontré ce problème mais je n'ai pas vu de solution.

Cordialement.
Posted on August, 03 2006 - 11:12 AM
Cyril JALA a exposé le 3/08/2006 :
Bonjour,

Et merci de m'avoir répondu.
Je n'ai toujours pas de solution à ce problème.

Voici un récapitulatif de vos solutions ainsi que les erreurs remontées.

1 - Solution de Lallemand Bruno
Message d'erreur : Identificateur inconnu ou inaccessible


Bonjour,

je n'ai pas lu les erreurs pour tous les autres, mais ma solution
semble bien fonctionner.

Mais tu dois juste définir SourceDonnées comme étant une variable de
type "Source de données"

SourceDonnées est une Source de Données
MaRequete est une chaîne = "SELECT (" + NUMERO_CORRESPONDANT + " " +
NUMERO_SINISTRE_1 + ") AS IDENTIFIANT FROM HONORAIRE WHERE HONORAIRE<0"

HExécuteRequêteSQL(SourceDonnées, MaRequete)

Tu as jeté un coup d'oeil dans la documentation sur les fonctions qu'on
t'a cité parce que le but de ce forum, me semble-t-il, n'est pas
d'écrire tout le code à ta place mais bien de te mettre sur la voie ???

Bon dev,

Bruno

--
Posted on August, 03 2006 - 3:47 PM
Cyril JALA a formulé ce jeudi :
Bonjour,

Et merci de m'avoir répondu.
Je n'ai toujours pas de solution à ce problème.

Voici un récapitulatif de vos solutions ainsi que les erreurs remontées.

1 - Solution de Lallemand Bruno
Message d'erreur : Identificateur inconnu ou inaccessible

2 - Solution de Julien
Message d'erreur : Problème d'initialisation de la requête <sdMaREQ>.Mot (
inattendu

3 - Solution de Gabriel Hautclocq
Message d'erreur : Erreur de syntaxe sur le mot '.
Si je rajoute des guillemets au début et à la fin de ma chaine : Problème
d'initialisation de la requête <sdMaREQ>.Mot inattendu

4 - Solution de Jean-Phi
J'ai essayé d'utiliser les fonctions ||, TO_CHAR. Windev ne reconnait pas la
syntaxe.

J'ai lu sur ce forum, que certains avait rencontré ce problème mais je n'ai
pas vu de solution.

Cordialement.


sur quelle BDD travaillez vous car en HF pas toutes les commandes SQL
sont dispo et d'ailleurs la norme n'est pas respecter dans son
intégralité

--
Cordialement JeAn-PhI
Posted on August, 04 2006 - 8:52 AM
Bonjour,

Ma variable de type "source de données" a bien été déclarée.

Pour te répondre, j'ai fais plus que jeter un oeil sur la documentation. J'ai essayé de mettre çà en pratique mais sans succès. (Je ne baisse pas les bras)

Je te signale que ma requête est déjà écrite et que mes variables sont déjà déclarées.Le problème, c'est que je n'ai pas la syntaxe pour effectuer une concaténation. Dans mon cas, la requête me fait une somme algébrique.
Posted on August, 04 2006 - 8:53 AM
Bonjour,

Je travaille sur une base Access 2000.

La méthode que j'utilise actuellement est la méthode 1 du livre de programmation.
1 - Déclaration d'une source de données
2 - Utilisation de la fonction HExécuteRequêteSQL

Je vais essayer la méthode 2, à savoir :

1 - Ouverture d'une connexion avec la fonction HOuvreConnexion
2 - Exécution de la requête avec la fonction HExécuteRequêteSQL
3 - Parcours de résultat de la requête avec les fonctions HLitXXX
4 - Fermeture de la connexion avec la fonction HFermeConnexion

Je vous tiens au courant, si je trouve une solution

Bonne journée.
Posted on August, 04 2006 - 10:47 AM
Cyril JALA a présenté l'énoncé suivant :
Bonjour,

Je travaille sur une base Access 2000.

La méthode que j'utilise actuellement est la méthode 1 du livre de
programmation. 1 - Déclaration d'une source de données
2 - Utilisation de la fonction HExécuteRequêteSQL

Je vais essayer la méthode 2, à savoir :

1 - Ouverture d'une connexion avec la fonction HOuvreConnexion
2 - Exécution de la requête avec la fonction HExécuteRequêteSQL
3 - Parcours de résultat de la requête avec les fonctions HLitXXX
4 - Fermeture de la connexion avec la fonction HFermeConnexion

Je vous tiens au courant, si je trouve une solution

Bonne journée.


avez vous essayer CONCAT (reconnu par Access) en utilisant
HExécuteRequêteSQL ?

--
Cordialement JeAn-PhI
Posted on August, 04 2006 - 10:48 AM
Cyril JALA a écrit :
Bonjour,

Lorsque que je fais une concaténation dans une requête sql, cela ne me donne
pas une concaténation mais une somme.

Voici ma requête :
SELECT (NUMERO_CORRESPONDANT + ' ' + NUMERO_SINISTRE_1) AS IDENTIFIANT FROM
HONORAIRE WHERE HONORAIRE<0

Pour info, j'ai la dernière version de Windev.


salut,
si tu obtiens une somme, c'est que tes champs numero_correspondant et
numero_sinistre son des numériques !
dans ton cas, tu utilises une bdd Acces alors tu dois faire :

SELECT (str(NUMERO_CORRESPONDANT) + ' ' + str(NUMERO_SINISTRE_1)) AS
IDENTIFIANT FROM
HONORAIRE WHERE HONORAIRE<0
de plus sous Windev dans ton hexecuterequetesql, utilises le nom de la
connexion ainsi que le param HrequeteSanscorrection.
ça fonctionne sans souçis !
bon dev's,
@Plus

--
[Bernard Vessiot]
34980 Saint Gély du Fesc
Posted on August, 07 2006 - 3:32 PM
Bonjour,

la solution dans mon cas (J'utilise une base Access2000), c'est de mettre absolument le paramère HrequeteSanscorrection.(Merci encore Mr VESSIOT pour la solution)

Pour la concaténation, j'ai repris la syntaxe d'Access à savoir 'Rubrique1 & Rubrique2 AS ID'.
Néanmoins, la solution str(Rubrique1) + ' ' + str(Rubrique2) fonctionne parfaitement aussi.

Voila
Bon dev !!!
Registered member
26 messages
Posted on January, 21 2017 - 7:26 AM
Cyril JALA a écrit :
Bonjour,

Lorsque que je fais une concaténation dans une requête sql, cela ne me donne pas une concaténation mais une somme.

Voici ma requête :
SELECT (NUMERO_CORRESPONDANT + ' ' + NUMERO_SINISTRE_1) AS IDENTIFIANT FROM HONORAIRE WHERE HONORAIRE<0

Pour info, j'ai la dernière version de Windev.



Tu as essayés :

SELECT
CONCAT(HONORAIRE.NUMERO_CORRESPONDANT,' ',HONORAIRE.NUMERO_SINISTRE_1) AS IDENTIFIANT
FROM HONORAIRE