|
|
|
Почему SQL-запрос в 6-ом фоксе работает, а в 9-ом выдает ошибку
|
|||
|---|---|---|---|
|
#18+
Господа, подскажите плиз, почему один и тот же запрос: SELECT Base_name, Code_tip INTO ARRAY MasCode FROM klnt_dbf ; WHERE Code_tip = 1 .OR. Code_tip = 2 GROUP BY Base_name ORDER BY Base_name работает в 6-ом фоксе, а в 9-ом не работает. Выдает ошибку, что в GROUP BY ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2007, 14:28 |
|
||
|
Почему SQL-запрос в 6-ом фоксе работает, а в 9-ом выдает ошибку
|
|||
|---|---|---|---|
|
#18+
установи переменную SET ENGINEBEHAVIOR 70 такая штука начиная VFP 8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2007, 14:39 |
|
||
|
Почему SQL-запрос в 6-ом фоксе работает, а в 9-ом выдает ошибку
|
|||
|---|---|---|---|
|
#18+
Спасибо за подсказку - буду пробовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2007, 14:42 |
|
||
|
Почему SQL-запрос в 6-ом фоксе работает, а в 9-ом выдает ошибку
|
|||
|---|---|---|---|
|
#18+
t03Спасибо за подсказку - буду пробовать Лучше SELECT Base_name, Code_tip INTO ARRAY MasCode FROM klnt_dbf ; WHERE Code_tip = 1 .OR. Code_tip = 2 GROUP BY Base_name , Code_tip ORDER BY Base_name или SELECT Base_name, min(Code_tip) as Code_tip INTO ARRAY MasCode FROM klnt_dbf ; WHERE Code_tip = 1 .OR. Code_tip = 2 GROUP BY Base_name ORDER BY Base_name У VFP6 немного свободный подход по сравнению со стандартом SQL, а в 8-9 уже в соответствии. Лучше привыкай писать под 9-кой, а то завтра до SQL-сервера какого доберешься, а там SET ENGINEBEHAVIOR 70 не поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2007, 15:06 |
|
||
|
Почему SQL-запрос в 6-ом фоксе работает, а в 9-ом выдает ошибку
|
|||
|---|---|---|---|
|
#18+
t03Господа, подскажите плиз, почему один и тот же запрос: SELECT Base_name, Code_tip INTO ARRAY MasCode FROM klnt_dbf ; WHERE Code_tip = 1 .OR. Code_tip = 2 GROUP BY Base_name ORDER BY Base_name работает в 6-ом фоксе, а в 9-ом не работает. Выдает ошибку, что в GROUP BY ошибка. Какой смысл в группировки (GROUP BY ), если нет НИ одной агрегатной функции в запросе ?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2007, 16:46 |
|
||
|
Почему SQL-запрос в 6-ом фоксе работает, а в 9-ом выдает ошибку
|
|||
|---|---|---|---|
|
#18+
Aleksey-K Какой смысл в группировки (GROUP BY ), если нет НИ одной агрегатной функции в запросе ?! А если в исходной таблице есть повторяющиеся строки? Груп выдаст таблицу без повторяющихся строк. То же самое, что и distinct. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2007, 17:52 |
|
||
|
Почему SQL-запрос в 6-ом фоксе работает, а в 9-ом выдает ошибку
|
|||
|---|---|---|---|
|
#18+
Именно так - в базе мно повторяющихся записей и "GROUP BY Base_name" используется именно для этого. Интересно, а много еще подводных камней при переводе задачи на 9-ку. Задача пишется с прошлого тысячелетия - с 1995 года, поэтому нужно понимать - сколько будет стоить усилий перевести ее под 9-ку Dima T - спасибо за дельный совет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2007, 18:26 |
|
||
|
Почему SQL-запрос в 6-ом фоксе работает, а в 9-ом выдает ошибку
|
|||
|---|---|---|---|
|
#18+
У меня возникло две. 1. - эта. 2. - печать на принтер по умолчанию (http://]forum.foxclub.ru/read.php?29,181504,181540#msg-181540) надеюсь в понедельник разберусь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2007, 19:05 |
|
||
|
Почему SQL-запрос в 6-ом фоксе работает, а в 9-ом выдает ошибку
|
|||
|---|---|---|---|
|
#18+
О да еще с кодовой страницей. создал файл CONFIG.FPW в каталоге с прогой. SCREEN=On codepage=1251 на VFP 6 без него нормально было ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2007, 19:09 |
|
||
|
Почему SQL-запрос в 6-ом фоксе работает, а в 9-ом выдает ошибку
|
|||
|---|---|---|---|
|
#18+
t03Именно так - в базе мно повторяющихся записей и "GROUP BY Base_name" используется именно для этого. Интересно, а много еще подводных камней при переводе задачи на 9-ку. Задача пишется с прошлого тысячелетия - с 1995 года, поэтому нужно понимать - сколько будет стоить усилий перевести ее под 9-ку Dima T - спасибо за дельный совет. Вот именно DISTINCT, если есть повторяющие строки, то и используете DISTINCT. И работать будет быстрее и код читается легче. Согласитесь, что код: Код: plaintext 1. С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 10:04 |
|
||
|
Почему SQL-запрос в 6-ом фоксе работает, а в 9-ом выдает ошибку
|
|||
|---|---|---|---|
|
#18+
Aleksey-KВот именно DISTINCT, если есть повторяющие строки, то и используете DISTINCT. И работать будет быстрее и код читается легче. Вот как мне помнится, Базиян рекомендует использовать именно group by для ускорения работы. :) Т.к. при использовании distinct фоксу приходится сравнивать все поля исходного набора данных на совпадения, а груп обрабатывает уже результат запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 10:11 |
|
||
|
Почему SQL-запрос в 6-ом фоксе работает, а в 9-ом выдает ошибку
|
|||
|---|---|---|---|
|
#18+
lo-pataВот как мне помнится, Базиян рекомендует использовать именно group by для ускорения работы. :) Т.к. при использовании distinct фоксу приходится сравнивать все поля исходного набора данных на совпадения, а груп обрабатывает уже результат запроса. Все-таки distinct и group by разные инструменты, кроме тех случаев где список выбираемых полей полностью соответствует списку в group by, что в данном случае distinct не подходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 11:58 |
|
||
|
Почему SQL-запрос в 6-ом фоксе работает, а в 9-ом выдает ошибку
|
|||
|---|---|---|---|
|
#18+
Dima TВсе-таки distinct и group by разные инструменты, кроме тех случаев где список выбираемых полей полностью соответствует списку в group by, что в данном случае distinct не подходит. Это может относиться к vfp6, но вот никак не к 8 или 9, т.к. только в 6-ке еще можно было в груп бай вкючить не все поля из запроса. В старших версиях в груп должны быть включены все поля запроса, кроме функций. Так что работа distinct и group by может отличаться только в vfp6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 12:09 |
|
||
|
Почему SQL-запрос в 6-ом фоксе работает, а в 9-ом выдает ошибку
|
|||
|---|---|---|---|
|
#18+
lo-pataЭто может относиться к vfp6, но вот никак не к 8 или 9, т.к. только в 6-ке еще можно было в груп бай вкючить не все поля из запроса. В старших версиях в груп должны быть включены все поля запроса, кроме функций. Так что работа distinct и group by может отличаться только в vfp6. Вот именно, кроме функций. Кто мешает вместо случайного выбора в 6-ке использовать MIN() или MAX() в 9-ке? Поторопился, надо было это для Aleksey-K написать. Возвращаясь к контексту вопроса - в 6-ке работает так: Код: plaintext 1. Более точный аналог для 9-ки: Код: plaintext 1. В варианте: Aleksey-K Код: plaintext 1. Dima TSELECT Base_name, Code_tip INTO ARRAY MasCode FROM klnt_dbf ; WHERE Code_tip = 1 .OR. Code_tip = 2 GROUP BY Base_name , Code_tip ORDER BY Base_name ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2007, 12:41 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=41&tid=1588581]: |
0ms |
get settings: |
8ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
80ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 212ms |
| total: | 411ms |

| 0 / 0 |
