#1 Fri 05 August 2011 09:07
- ebiseau
- Participant actif
- Date d'inscription: 6 Sep 2010
- Messages: 98
probleme sql map basic
Bonjour,
j'ai écrit cette sélection sql dans mon mbx :
Select Travail.NOM, Travail.NUMERO, Travail.MO_COLL from Travail, nom where Travail.MO_coll = nom.MO_coll into Selection
et lors de la compilation j'ai le message d'erreur comme quoi la virgule n'est pas reconnue
Pourquoi, pourtant je ne vois pas de faute à mon écriture
Merci vraiment
Hors ligne
#2 Fri 05 August 2011 09:50
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: probleme sql map basic
Salut,
As tu procédé comme ceci:
Code:
Dim cmd as string cmd="Select Travail.NOM, Travail.NUMERO, Travail.MO_COLL from Travail, nom where Travail.MO_coll = nom.MO_coll into Selection" Run command cmd
Tu peux placer aussi un --> Print cmd avant le run pour vérifier ta requête
A+
Joël
Dernière modification par Spacejo (Fri 05 August 2011 09:54)
Hors ligne
#3 Fri 05 August 2011 10:01
- ebiseau
- Participant actif
- Date d'inscription: 6 Sep 2010
- Messages: 98
Re: probleme sql map basic
merci de prendre du temps pour moi,
en fait je crois que le problème vient du fait que la table nom est une variable (un readcontrolvalue) donc peut être remplacer nom par "+chr$(34)+nom+chr$(34)+" Certes cela ne marche pas non plus mais c'est un piste.
Help help :-(
Hors ligne
#4 Fri 05 August 2011 10:12
- ebiseau
- Participant actif
- Date d'inscription: 6 Sep 2010
- Messages: 98
Re: probleme sql map basic
j'ai utilisé commande comme ceci :
Dim cmd as string
cmd="Select Travail.nom, Travail.NUMERO, Travail.MO_COLL from Travail, "+chr$(34)+nom+chr$(34)+" where Travail.MO_coll = "+chr$(34)+nom+chr$(34)+".MO_coll into "+chr$(34)+nom+chr$(34)+"2"
Run command cmd
ça passe à la compilation mais à l'exécution il me dit qu'il n'y a pas de jointure possible entre les 2 tables, que la clause where est défaillante. Pourtant quand je fais le sql directement depuis map info il n'y a pas de soucis.
Cela vient sans aucun doute de ma table nom qui est un readcontrolvalue mais comment faire fonctionner ce sql ?
Merci vraiment
Hors ligne
#5 Fri 05 August 2011 10:22
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: probleme sql map basic
Est ce que ceci t'aide:
--> http://georezo.net/forum/viewtopic.php? … amp;hl=chr
Hors ligne
#6 Fri 05 August 2011 10:24
- ebiseau
- Participant actif
- Date d'inscription: 6 Sep 2010
- Messages: 98
Re: probleme sql map basic
j'ai réécris comme cela :
Dim cmd as string
cmd="Select Travail.nom, Travail.NUMERO, Travail.MO_COLL from Travail, "+chr$(34)+chr$(37)+nom+chr$(37)+chr$(34)+" where Travail.MO_coll = "+chr$(34)+chr$(37)+nom+chr$(37)+chr$(34)+".MO_coll into aigalier2"
Run command cmd
Là ça passe à la compilation et à l'exécution il me dit que le résultat de l'expression n'est pas une table ou une colonne, qu'est ce qui cloche ?
Hors ligne
#7 Fri 05 August 2011 10:30
- ebiseau
- Participant actif
- Date d'inscription: 6 Sep 2010
- Messages: 98
Re: probleme sql map basic
je suis pas loin du vrai mais je ne vois sur quelle partie de ma ligne de cmd porte le message "le résultat de l'expression n'est pas une table ou une colonne"
Par contre j'utilise chr$(34) et chr$(37) sans savoir pourquoi mais on me l'avait donné pour un mbx antérieur et cela semblait fonctionner alors je le remets ici
Hors ligne
#8 Fri 05 August 2011 11:59
- ebiseau
- Participant actif
- Date d'inscription: 6 Sep 2010
- Messages: 98
Re: probleme sql map basic
c'est bon j'ai résolu mes problèmes grâce en partie à ton aide, merci :-)
Hors ligne
#9 Fri 19 August 2011 15:58
- ducroq
- Participant occasionnel
- Lieu: Toulouse
- Date d'inscription: 10 Apr 2007
- Messages: 22
Re: probleme sql map basic
Bonjour,
Tu pourrais tu donner ta solution ebiseau. Elle m' intéresse!
Moi je n'arrive pas a mettre la variable dans le non de la table (après into)
Je m'explique :
Je voudrais réaliser le select en boucle en utilisent une variable qui me permet d'enregistrer les tables avec un nom incrémenté a chaque passa dans le "FOR/ NEX"
dans mon exemple si je remplace
troncon_+chr$(34)+num_tdeux+chr$(34)+
par
troncon_2
tout marche parfaitement
Je me demande si ce n'est pas un problème de déclaration de variable
faut il que num_tdeux soit déclaré en tant que alias pour pouvoir etre intégré au nom de la table
Mais a ce moment là je ne peut plu incrémenter le nom de mes tables avec
For num_tun = 1 to 4
num_tdeux = num_tun + 1
SOS merci
Code:
Include "mapbasic.def" Declare Sub Main dim num_tun as smallint dim num_tdeux as smallint dim sql as string Sub Main () For num_tun = 1 to 4 num_tdeux = num_tun + 1 note "num_tun : "+num_tun note "num_tdeux : "+num_tdeux sql="Select RE10_060_L_HYDR.Id, RE10_060_L_HYDR.Strahler, RE10_060_L_HYDR.troncon from RE10_060_L_HYDR, troncon_1 where RE10_060_L_HYDR.obj Intersects troncon_1.obj And RE10_060_L_HYDR.troncon < 1 into troncon_+chr$(34)+num_tdeux+chr$(34)+" Run command sql Browse * From RE10_060_L_HYDR Browse * From troncon_2 Update troncon_+num_tun Set troncon = 2 next End Sub
Dernière modification par ducroq (Wed 24 August 2011 09:09)
Hors ligne
#10 Mon 29 August 2011 09:38
- ebiseau
- Participant actif
- Date d'inscription: 6 Sep 2010
- Messages: 98
Re: probleme sql map basic
bonjour,
essaie tronçon_"+num_tdeux+"
Cela fonctionne t'il ?
Hors ligne