SQL параметри във FoxPro 2.6 DOS

Във FoxPro 2.6 за MS-DOS има ли начин да се използва променлива в команда SELECT? Например, как мога да напиша следната заявка:

SELECT * FROM DBFILE WHERE Ord_no = temp_no

Като се има предвид, че temp_no е предварително дефинирана променлива. Опитах да използвам "&temp_no", но това не изглежда да е правилният синтаксис.


person rsrobbins    schedule 09.08.2010    source източник
comment
Какво е MS-DOS? Опитайте да пуснете &. Казаха ми SELECT * FROM DBFILE WHERE Ord_no = temp_no трябва да работи. (Попитах разработчиците на foxpro, аз самият не знам.)   -  person nportelli    schedule 09.08.2010
comment
Какво е MS-DOS? Човече, стар съм.   -  person Alan B    schedule 10.08.2010


Отговори (2)


Вашият код изглежда правилен и не трябва да го макросирате чрез "&". Това, което може да е неуспешно, се дължи на типове данни. Ако вашата таблица "dbfile", колона "ord_no" е числова и вашата променлива "temp_no" е символен низ, това ще се провали поради несъответствие на тип данни... уверете се, че са от един и същи тип данни... отново, НЕЗАВИСИМО за използване на макроса "&".

MyVarOrd_No = 23

изберете * от DBFile където Ord_No = MyVarOrd_No

или ако колона, базирана на низ/знак, просто променете

MyVarOrd_No = "23"
Въпреки това може да се наложи да добавите интервали/оправдане, ако е придирчиво.

person DRapp    schedule 10.08.2010
comment
Изглежда празен запис е причината за проблема. В празен запис стойността на полето ще бъде нулев низ, който не може да бъде сравнен с низ. Така че това беше проблем с типа данни. - person rsrobbins; 13.08.2010