2010-08-09 20 views
0

Dans FoxPro 2.6 pour MS-DOS existe-t-il un moyen d'utiliser une variable dans une commande SELECT? Par exemple, comment puis-je écrire la requête suivante:Paramètres SQL dans FoxPro 2.6 DOS

SELECT * FROM DBFILE WHERE Ord_no = temp_no 

Étant donné que temp_no est une variable précédemment définie. J'ai essayé d'utiliser "& temp_no" mais cela ne semble pas être la syntaxe correcte.

+1

Qu'est-ce que MS-DOS? Essayez de supprimer le &. On m'a dit SELECT * FROM DBFILE O Ord Ord_no = temp_no devrait fonctionner (j'ai demandé aux développeurs de foxpro, je ne me connais pas.) – nportelli

+0

Qu'est-ce que MS-DOS? Homme, je suis vieux. –

Répondre

1

Votre code semble correct, et vous ne devriez pas avoir besoin de le macro via le "&". Ce qui peut échouer est dû aux types de données. Si votre table "dbfile", colonne "ord_no" est numérique et votre variable "temp_no" est une chaîne de caractères, qui échouerait en raison d'une discordance de type de données ... assurez-vous qu'ils sont le même type de données ... encore, REGARDLESS d'utiliser la macro "&".

MyVarOrd_No = 23

select * from DBFILE où Ord_No = MyVarOrd_No

ou si une colonne basée sur une chaîne/charcter, il suffit de changer

MyVarOrd_No = "23"
Cependant, vous devrez peut-être pad avec des espaces/justifier si c'est difficile.

+0

Il semble qu'un enregistrement vide ait causé le problème. Dans un enregistrement vide, la valeur du champ serait la chaîne nulle qui ne peut pas être comparée à une chaîne. C'était donc un problème de type de données. – rsrobbins