powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / select
9 сообщений из 9, страница 1 из 1
select
    #39839262
deleteant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите, уважаемые! Не могу справиться с простейшим 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
select
    #39839270
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чудес не бывает, значение sNNar где-то меняется. Посмотри отладчиком что в sNNar в момент выполнения запроса.
...
Рейтинг: 0 / 0
select
    #39839300
deleteant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Перед запросом ставлю SET STEP ON, проверяю содержимое поля и переменной -- всё норм. Смоделировал ситуацию в командной строке. Такая ж фигня.
...
Рейтинг: 0 / 0
select
    #39839302
deleteant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понял, что фатальных глупостей в моём коде нет. Пойду дальше плясать с бубном.
...
Рейтинг: 0 / 0
select
    #39839306
deleteant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, забыл сказать: таблицы формата FOXPRO 2.XX.
...
Рейтинг: 0 / 0
select
    #39839320
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может в 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
select
    #39839326
deleteant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за помощь!
Попробовал изменить имя переменной на sNar -- всё сработало. Может, snnar имя какой-то системной переменной Фокса.
...
Рейтинг: 0 / 0
select
    #39839333
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
select
    #39839505
deleteant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так и есть, в таблице есть такое поле. Угробил целый день по глупости. Еще раз спасибо за помощь!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / select
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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