cs_CecileH
Messages postés9Date d'inscriptionjeudi 22 janvier 2004StatutMembreDernière intervention12 septembre 2006
-
2 sept. 2005 à 10:45
cs_CecileH
Messages postés9Date d'inscriptionjeudi 22 janvier 2004StatutMembreDernière intervention12 septembre 2006
-
2 sept. 2005 à 16:39
Bonjour
Je lance une requête sur une table foxpro en passant par le driver Microsoft Visual FoxPro Driver.La requête contient une sous-requête. Quand je la teste sous foxpro, elle fonctionne mais si je la lance depuis vb .net jai un message : ERROR [42S22][Microsoft][ODBC Visual Foxpro Driver]SQL Column indice' is not found.
Voici la requête :
cmdODBC.commandtext = "select distinct * from table1 a
where trim(a.indice) in
(select left(trim(b.indice),len(trim(a.indice))) from table2 b where b.valide=.T.)"
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 2 sept. 2005 à 16:26
Salut
Compliquée cette requète.
Quel est l'intérêt du left(trim(b.indice),len(trim(a.indice))) de la sous-requète ?
Cette fonction donne le même résultat que Trim(b.indice) qui suffit largement :
where trim(a.indice) in
(select trim(b.indice) from table2 b where b.valide=.T.)"
D'autre part, si tu compares b.valide avec .T. , il s'agit de texte, donc encadrement avec ' obligatoire :
(select trim(b.indice) from table2 b where b.valide = '.T.')"
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
cs_CecileH
Messages postés9Date d'inscriptionjeudi 22 janvier 2004StatutMembreDernière intervention12 septembre 20061 2 sept. 2005 à 16:39
Salut,
b.valide est un booléen. Sous foxpro, les booléens ont la valeur .F. ou .T..
Pour expliquer ma requête, la colonne indice contient des chaînes de type :
02
02.05
02.05.15
04.05, etc...
Celle-ci me permet de créer une arborescence paramètrable. Je veux par la requête, trouver les lignes avec b.valide à .T. ainsi que les lignes "parentes" (si l'indice 02.05.15 est à .T., je veux trouver les lignes 02 et 02.05. D'où ma requête un peu complexe...