Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите найти ошибку в запросе / 9 сообщений из 9, страница 1 из 1
28.06.2007, 11:19
    #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
28.06.2007, 11:35
    #34625606
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в запросе
В первую очередь проверить содержимое sqltext

Код: plaintext
?sqltext
И скать ошибку в получившемся запросе.
...
Рейтинг: 0 / 0
28.06.2007, 11:46
    #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
28.06.2007, 13:40
    #34626014
Shun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в запросе
Содержимое sqltext пустое..
...
Рейтинг: 0 / 0
28.06.2007, 13:42
    #34626023
Shun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в запросе
Даже с равенствами не получается. Возможно это всё только из-за того что всё это сохраняется в одну переменную sqltext... А как переписать по-другому-не знаю - я в запросах не понимаю почти ничего
...
Рейтинг: 0 / 0
28.06.2007, 13:43
    #34626027
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в запросе
Ну и что Вы хотите от пустого запроса?
...
Рейтинг: 0 / 0
28.06.2007, 14:25
    #34626195
Shun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в запросе
сам запрос не пуст. Пуста переменная sqltext ..
...
Рейтинг: 0 / 0
28.06.2007, 14:36
    #34626243
Помогите найти ошибку в запросе
Shunсам запрос не пуст. Пуста переменная sqltext ..
Т.е. не сработала команда
Код: plaintext
sqltext=sq
?!
Тогда пропустите эту процедуру через дебаггер и посмотрите где, что и как...
...
Рейтинг: 0 / 0
28.06.2007, 15:08
    #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
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите найти ошибку в запросе / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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