Параметры 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