2010-08-09 1 views
0

В FoxPro 2.6 для MS-DOS есть способ использовать переменную в команде SELECT? Например, как я могу написать следующий запрос:SQL Paramaters в FoxPro 2.6 DOS

SELECT * FROM DBFILE WHERE Ord_no = temp_no 

Учитывая, что temp_no является ранее определенной переменной. Я попытался использовать «& temp_no», но это не похоже на правильный синтаксис.

+1

Что такое MS-DOS? Попробуйте сбросить &. Мне сказали SELECT * FROM DBFILE WHERE Ord_no = temp_no должен работать. (Я спросил у разработчиков foxpro, я сам не знаю). – nportelli

+0

Что такое MS-DOS? Человек, я стар. –

ответ

1

Ваш код выглядит правильно, и вам не нужно его макроса через «&». То, что может быть неудачно, связано с типами данных. Если ваша таблица «dbfile», столбец «ord_no» является числовой, а ваша переменная «temp_no» является символьной строкой, которая потерпит неудачу из-за несоответствия типа данных ... убедитесь, что они являются одним и тем же типом данных ... снова, REGARDLESS использования макроса «&».

MyVarOrd_No = 23

выберите * из DBFILE где Ord_No = MyVarOrd_No

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

MyVarOrd_No = "23"
Однако вам может понадобиться pad с пробелами/оправдывать, если он является разборчивым.

+0

Похоже, что пустая запись вызывала проблему. В пустой записи значение поля будет пустой строкой, которая не может быть сравнена с строкой. Таким образом, это была проблема с типом данных. – rsrobbins