Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / select / 9 сообщений из 9, страница 1 из 1
19.07.2019, 14:55
    #39839262
deleteant
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select
Помогите, уважаемые! Не могу справиться с простейшим SELECT'ом.

SELECT nar.n_nar,nar.nz,vd.nz FROM nar JOIN vd ON nar.nz=vd.nz WHERE nar.n_nar=='9000094'

выбирает, как и прошу, одну запись, а если помещаю '9000094' в переменную -- пустая выборка:

sNNar='9000094'
SELECT nar.n_nar,nar.nz,vd.nz FROM nar JOIN vd ON nar.nz=vd.nz WHERE nar.n_nar==sNNar

В таблице nar есть запись с полем nar.n_nar='9000094' без лишних пробелов. Переменная sNNar из этого поля и получена.
...
Рейтинг: 0 / 0
19.07.2019, 15:02
    #39839270
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select
Чудес не бывает, значение sNNar где-то меняется. Посмотри отладчиком что в sNNar в момент выполнения запроса.
...
Рейтинг: 0 / 0
19.07.2019, 15:28
    #39839300
deleteant
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select
Перед запросом ставлю SET STEP ON, проверяю содержимое поля и переменной -- всё норм. Смоделировал ситуацию в командной строке. Такая ж фигня.
...
Рейтинг: 0 / 0
19.07.2019, 15:31
    #39839302
deleteant
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select
Понял, что фатальных глупостей в моём коде нет. Пойду дальше плясать с бубном.
...
Рейтинг: 0 / 0
19.07.2019, 15:33
    #39839306
deleteant
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select
Да, забыл сказать: таблицы формата FOXPRO 2.XX.
...
Рейтинг: 0 / 0
19.07.2019, 15:43
    #39839320
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select
Может в sNNar пробелы убрались случайно? поле n_nar должно быть c(7)
Может поле есть sNNar у текущей БД?
Может в разные БД запрос делаешь?

Поставь перед запросом:
Код: sql
1.
MessageBox('*' + sNNar + '*')



У меня все работает
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
close Databases all
create Cursor nar (nz i, n_nar c(7))
insert into nar (nz, n_nar) values (1, '9000094')
create Cursor vd (nz i)
insert into vd (nz) values (1)

sNNar='9000094'
SELECT nar.n_nar,nar.nz,vd.nz FROM nar JOIN vd ON nar.nz=vd.nz WHERE nar.n_nar==sNNar


Если уверен что косяк именно тут, то будь добр дать пример исходных данных, на которых проблема воспроизводится.
...
Рейтинг: 0 / 0
19.07.2019, 15:47
    #39839326
deleteant
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select
Спасибо за помощь!
Попробовал изменить имя переменной на sNar -- всё сработало. Может, snnar имя какой-то системной переменной Фокса.
...
Рейтинг: 0 / 0
19.07.2019, 15:49
    #39839333
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select
deleteantСпасибо за помощь!
Попробовал изменить имя переменной на sNar -- всё сработало. Может, snnar имя какой-то системной переменной Фокса.
Это скорее всего имя поля текущей таблицы. Чтобы не пересекались одноименные переменные и поля надо использовать префикс m.
Код: sql
1.
2.
m.sNNar='9000094'
SELECT nar.n_nar,nar.nz,vd.nz FROM nar JOIN vd ON nar.nz=vd.nz WHERE nar.n_nar==m.sNNar
...
Рейтинг: 0 / 0
19.07.2019, 22:02
    #39839505
deleteant
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
select
Так и есть, в таблице есть такое поле. Угробил целый день по глупости. Еще раз спасибо за помощь!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / select / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]