Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / В чём моя ошибка? / 7 сообщений из 7, страница 1 из 1
26.02.2010, 10:52
    #36489534
ping_09
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чём моя ошибка?
Здравствуйте.Впервые столкнулся с такой ситуацией.
Есть форма,на ней кнопка.
Command.Click:
SELECT pole1,pole2,pole3 as summ;
FROM Table1;
into cursor cur1 readwrite;
GROUP BY pole1,pole2

Как результат:
pole1 pole2 summ
a a 20
b b 20

Но!
Если делать выборку из таблицы,не используя форму,получаем:
pole1 pole2 summ
a a 10
b b 10

Т.е. результат выборки при выполнении кода кнопки почему-то увеличивается в два раза.
может я чего-то не знаю.Объясните.
...
Рейтинг: 0 / 0
26.02.2010, 11:05
    #36489570
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чём моя ошибка?
ping_09,

В обоих вариантах непосредственно перед выполнением запроса сделайте
Код: plaintext
1.
2.
select myTable1
browse
...
Рейтинг: 0 / 0
26.02.2010, 11:11
    #36489589
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чём моя ошибка?
Потому что Ваш запрос содержит неопределенность (не однозначность) вычисления значения поля summ. Подробнее здесь

Запрос с GROUP BY выдает сообщение о синтаксической ошибке
...
Рейтинг: 0 / 0
26.02.2010, 11:23
    #36489626
ping_09
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чём моя ошибка?
Ой,извините,недочёт получился.
Command.Click:
SELECT pole1,pole2,sum(pole3) as summ;
FROM Table1;
into cursor cur1 readwrite;
GROUP BY pole1,pole2
...
Рейтинг: 0 / 0
26.02.2010, 11:31
    #36489657
ping_09
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чём моя ошибка?
Кстати VFP не ругается,но результат выборок отличается.
...
Рейтинг: 0 / 0
26.02.2010, 11:33
    #36489665
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чём моя ошибка?
Когда Вы используете синтаксис вида

Код: plaintext
SELECT ... FROM Table1 ...

То FoxPro сначала ищет рабочую область с алиасом "Table1". В текущей DataSession. И только если такого алиаса не найдено, выполняется поиск таблицы с указанным именем.

Поиск таблицы начинается с поиска в текущей базе данных (DBC), затем текущая директория, затем по путям указанным в SET PATH.

Другими словами, возможно в форме Вы обращаетесь к одной таблице, а вне формы - к другой.

Проверить это можно при помощи функции

Код: plaintext
?DBF("Table1")

Посмотрите, что возвращает эта функция в форме и вне формы.
...
Рейтинг: 0 / 0
26.02.2010, 11:41
    #36489697
ping_09
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В чём моя ошибка?
ВладимирМ,спасибо.
Причина крылась именно в этом.
Буду внимательнее.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / В чём моя ошибка? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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