powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите найти ошибку в запросе
9 сообщений из 9, страница 1 из 1
Помогите найти ошибку в запросе
    #34625545
Shun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. У меня такая вот проблема. Вроде бы, составлен рабочий запрос, пи сохранении кода ошибок не выдаётся, но вот как только нажимаешь поиск на форме запрос не выполняется...
Дебаггер указывает на последнюю строку то есть "&sqltext"
Подскажите, в чём тут ошибка, и что нужно исправить?
Может в свойствах самой формы что-то не так?

Код запроса
PUBLIC k as Boolean, sqltext as String, sq as String
sq = "SELECT t_gitel.Фамилия, t_gitel.имя, t_gitel.отчество, t_gitel.дата_рожд,t_raion.район, t_ulica.улица, t_adress.номер_дома, t_adress.номер_кв, t_adress.телефон "
sq = sq + "FROM t_gitel INNER JOIN t_projivaet on t_projivaet.id_gitel = t_gitel.id_gitel "
sq = sq + "INNER JOIN t_adress on t_adress.id_adress = t_projivaet.id_adress INNER JOIN t_raion on t_raion.id_raion=t_adress.id_raion INNER JOIN t_ulica on t_ulica.id_ulica = t_adress.id_ulica "
sq = sq + "WHERE"
k = .F.
sqltext = sq
FOR i=1 TO 9
IF flag(i)
IF k
sqltext = sqltext + " and " + usl(i)
ELSE
sqltext = sqltext + usl(i)
k=.T.
ENDIF
ENDIF
ENDFOR
&sqltext
...
Рейтинг: 0 / 0
Помогите найти ошибку в запросе
    #34625606
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В первую очередь проверить содержимое sqltext

Код: plaintext
?sqltext
И скать ошибку в получившемся запросе.
...
Рейтинг: 0 / 0
Помогите найти ошибку в запросе
    #34625641
ShunЗдравствуйте. У меня такая вот проблема. Вроде бы, составлен рабочий запрос, пи сохранении кода ошибок не выдаётся, но вот как только нажимаешь поиск на форме запрос не выполняется...
Дебаггер указывает на последнюю строку то есть "&sqltext"
Подскажите, в чём тут ошибка, и что нужно исправить?
Может в свойствах самой формы что-то не так?

Код запроса
PUBLIC k as Boolean, sqltext as String, sq as String
sq = "SELECT t_gitel.Фамилия, t_gitel.имя, t_gitel.отчество, t_gitel.дата_рожд,t_raion.район, t_ulica.улица, t_adress.номер_дома, t_adress.номер_кв, t_adress.телефон "
sq = sq + "FROM t_gitel INNER JOIN t_projivaet on t_projivaet.id_gitel = t_gitel.id_gitel "
sq = sq + "INNER JOIN t_adress on t_adress.id_adress = t_projivaet.id_adress INNER JOIN t_raion on t_raion.id_raion=t_adress.id_raion INNER JOIN t_ulica on t_ulica.id_ulica = t_adress.id_ulica "
sq = sq + "WHERE"
k = .F.
sqltext = sq
FOR i=1 TO 9
IF flag(i)
IF k
sqltext = sqltext + " and " + usl(i)
ELSE
sqltext = sqltext + usl(i)
k=.T.
ENDIF
ENDIF
ENDFOR
&sqltext
Насчет ошибки все просто - Фокс не может выполнить созданный программой запрос.
Я бы сделал следующее:
- вывел текст запроса на экран и визуально проверил его корректность
- сохранил текст запроса в переменную и попробовал бы его выполнить из командного окна Фокса
- если ошибка все-равно появляется, то переписал бы его "в старой форме", т.е использовал бы не join'ы, а простые "равенства" (where t_adress.id_adress = t_projivaet.id_adress and t_projivaet.id_gitel = t_gitel.id_gitel and ...)
...
Рейтинг: 0 / 0
Помогите найти ошибку в запросе
    #34626014
Shun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Содержимое sqltext пустое..
...
Рейтинг: 0 / 0
Помогите найти ошибку в запросе
    #34626023
Shun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Даже с равенствами не получается. Возможно это всё только из-за того что всё это сохраняется в одну переменную sqltext... А как переписать по-другому-не знаю - я в запросах не понимаю почти ничего
...
Рейтинг: 0 / 0
Помогите найти ошибку в запросе
    #34626027
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну и что Вы хотите от пустого запроса?
...
Рейтинг: 0 / 0
Помогите найти ошибку в запросе
    #34626195
Shun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сам запрос не пуст. Пуста переменная sqltext ..
...
Рейтинг: 0 / 0
Помогите найти ошибку в запросе
    #34626243
Shunсам запрос не пуст. Пуста переменная sqltext ..
Т.е. не сработала команда
Код: plaintext
sqltext=sq
?!
Тогда пропустите эту процедуру через дебаггер и посмотрите где, что и как...
...
Рейтинг: 0 / 0
Помогите найти ошибку в запросе
    #34626360
kolobok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ни фига не пустое!

sq = "SELECT t_gitel.Фамилия, t_gitel.имя, t_gitel.отчество, t_gitel.дата_рожд,t_raion.район, t_ulica.улица, t_adress.номер_дома, t_adress.номер_кв, t_adress.телефон "
sq = sq + "FROM t_gitel INNER JOIN t_projivaet on t_projivaet.id_gitel = t_gitel.id_gitel "
sq = sq + "INNER JOIN t_adress on t_adress.id_adress = t_projivaet.id_adress INNER JOIN t_raion on t_raion.id_raion=t_adress.id_raion INNER JOIN t_ulica on t_ulica.id_ulica = t_adress.id_ulica "
sq = sq + "WHERE"
k = .F.
sqltext = sq

?sqltext

Смотри, как у тебя формируется условие WHERE!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите найти ошибку в запросе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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