2016-03-10 3 views
0

Я пытаюсь этовыберите запрос в Foxpro

col= thisform.combo4.DisplayValue+SUBSTR(thisform.combo3.DisplayValue,1,3) 
SELECT col as a1 FROM doc WHERE com=thisform.combo1.DisplayValue INTO CURSOR c1 
thisform.text30.Value=c1.a1 

Переменная цв представляет имя столбца в DBF
Это приводит имя столбца не значение, сохраненное в этом столбце

ответ

4
col= thisform.combo4.DisplayValue+SUBSTR(thisform.combo3.DisplayValue,1,3) 

* here I assume col is a correct string that represents an existing column 


SELECT &col as a1 FROM doc ; 
    WHERE com=thisform.combo1.DisplayValue ; 
    INTO CURSOR c1 ; 
    nofilter 
thisform.text30.Value=c1.a1 

IOW, чтобы иметь возможность использовать строку в поле «Выбрать для имени столбца», вам необходимо использовать оператор (макроподстановка).

+0

Или оцените() .... выберите оценку (col) как a1 –

+0

Алан, говоря «вам нужно использовать», вы правильно оцениваете() - это вариант. Я должен был сказать «вы должны использовать». IMHO в SQL select & is the way to go, и это, вероятно, одно из 1 или 2 мест, где & имеет место для использования (отдых не нужен & nor & должен использоваться в других местах, но мы знаем много VFP пользователи злоупотребляют им :) –

+0

Это дает мне ошибку: индекс находится за пределами заданного диапазона – BONIETTE

Смежные вопросы