#1 Mon 05 August 2013 15:02
- Yulahop
- Participant occasionnel
- Lieu: Nouméa Nouvelle-Calédonie
- Date d'inscription: 22 Jun 2006
- Messages: 18
argument de la fonction tableinfo()
Bonjour à tous,
Mon soucis concerne l'utilisation l'utilisation du choix fait dans un control popupmenu dans une fonction tableinfo().
J'explique:
j'ai créé une fenêtre contenant deux popupmenu dans lesquels je liste les différentes tables ouvertes.
L'utilisateur est invité à choisir une table dans chacun des popupmenu avant le lancement d'un traitement
Jusque là, pas de problème, j'arrive à créer la liste et a récupérer le nom tables choisies dans chacun des popupmenu
(grâce aux indications trouvées dans document de J Paris Dialog et Controls).
Ensuite, je voudrais commencer mon traitement en faisant une sélection :
select * from TABLE where ....
C'est la que je coince : la commande attend le nom d'une table et non pas une variable contenant un nom.
Ca ne marche pas si j'indique une variable string contenant le nom de la table.
Ca ne marche pas non plus en utilisant la fonction tableinfo(), l'argument table_id attendu est soit une
chaine correspondant au nom de la table soit un entier mais ne peut pas être une variable.
La solution que j'envisage est de fermer la table pour la réouvrir sous un alias que j’appellerais ensuite.
Du coup, question subsidiaire : est il possible "d'aliasser" une table déjà ouverte ?
Yael
Yaël
Hors ligne
#2 Mon 05 August 2013 15:55
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: argument de la fonction tableinfo()
Salut,
Est ce que ceci ne répondrait pas à ton problème:
Code:
Dim cmd as string Dim TaVariableTable as string Cmd = "select * from" & TaVariableTable & "where....." Run Command cmd
A+
Joël
Dernière modification par Spacejo (Mon 05 August 2013 16:03)
Hors ligne
#3 Thu 08 August 2013 14:29
- Yulahop
- Participant occasionnel
- Lieu: Nouméa Nouvelle-Calédonie
- Date d'inscription: 22 Jun 2006
- Messages: 18
Re: argument de la fonction tableinfo()
Salut Joel
C'est bon, j'arrive a faire ma sélection avec cette méthode, merci pour l'astuce.
Ceci dit il ne me semble pas possible de faire une sélection avec un critère portant sur un champ texte.
En effet si je construis la chaine cmd de cette façon :
Cmd = "select * from" & TaVariableTable & "where CHAMP_TEXTE = "TEXTE""
mapbasic ne reconnait pas la valeur "TEXTE" puisque le premier " de l'expression "TEXTE" est interprété comme une fin de chaine
impossibilité de mettre "TEXTE" entre deux "
A+
Yael
Yaël
Hors ligne
#4 Thu 08 August 2013 14:54
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: argument de la fonction tableinfo()
A essayer -->
Code:
Cmd = "select * from" & TaVariableTable & "where CHAMP_TEXTE = " & "chr$(34)TEXTEchr$(34)"
Dernière modification par Spacejo (Thu 08 August 2013 15:22)
Hors ligne
#5 Thu 08 August 2013 19:56
- Yulahop
- Participant occasionnel
- Lieu: Nouméa Nouvelle-Calédonie
- Date d'inscription: 22 Jun 2006
- Messages: 18
Re: argument de la fonction tableinfo()
Évidemment !
merci pour le chr$(34) !
Yaël
Hors ligne