Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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

 

Pied de page des forums

Powered by FluxBB