Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Фильтрация  [new]
trinity
Member

Откуда:
Сообщений: 50
Есть листринг результатов запроса.
Нужно отфильтровать это по значению поля, на котром находится курсор.
Сделала так :

LOCAL tt, client
..............
tt = thisform.GRID1.column5.ControlSource
client = &tt
= SQLEXEC(nsql,"select * from doksw where c_name_sfirma = '" + client+ "' AND s_regdate_doks >= '" + DTOC(m.dat1) + "' AND s_regdate_doks <= '" + DTOC(m.dat2) + "' AND summa_dok > 0 AND (fpred = 2 OR b_avans_doks = 1) AND oplata > 0 AND oplata IS NOT NULL",'doks2')
SELECT doks2
.............

Запрос не срабатывает, но не могу найти причину.
Думаю, что неправильно вытягиваю значение, но как по другому это можно сделать - не знаю.
Помогите разобраться.
19 апр 05, 16:22    [1480073]     Ответить | Цитировать Сообщить модератору
 Re: Фильтрация  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Для передачи параметров лучше использовать символ вопросительного знака:

LOCAL lcString
lcString = "select * from doksw where c_name_sfirma = ?m.client" + ;
" AND s_regdate_doks >= ?m.dat1 "+;
" AND s_regdate_doks <= ?m.dat2 "+;
" AND summa_dok > 0 AND (fpred = 2 OR b_avans_doks = 1) "+;
" AND oplata > 0 AND oplata IS NOT NULL"

IF SQLExec(m.nsql,m.lcString,'doks2') < 0
	LOCAL laError(1)
	AERROR(laError)
	* Анализ содержимого массива laError на предмет причины ошибки
ELSE
	select doks2
	BROWSE NOWAIT
ENDIF

Ради спортивного интереса проблема может быть в некорректном переводе параметров в символьный вид. Точнее, перевод их в такой вид, который не воспринимает сервер.
19 апр 05, 16:37    [1480193]     Ответить | Цитировать Сообщить модератору
 Re: Фильтрация  [new]
trinity
Member

Откуда:
Сообщений: 50
Похоже ты прав, результат запроса нулевой :(
20 апр 05, 10:09    [1481443]     Ответить | Цитировать Сообщить модератору
 Re: Фильтрация  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Как правило, корректность запроса MS SQL проверят напрямую в Query Analizer. Мало-ли что упустил в коде FoxPro. А тут все сразу ясно.
20 апр 05, 11:33    [1481810]     Ответить | Цитировать Сообщить модератору
 Re: Фильтрация  [new]
trinity
Member

Откуда:
Сообщений: 50
Да, затык был в запросе :)
Все работает, спасибо!!
20 апр 05, 13:11    [1482341]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить