|
|
|
Проблемы с SQL
|
|||
|---|---|---|---|
|
#18+
Всем доброго времени суток ! в методе я использую вот этот код: SELECT DISTINCT ; a.ID, ; a.QArr, ; a.Date, ; a.Type, ; a.Name, ; a.Price, ; a.MPrice, ; a.SPrice, ; SUM(b.R_Col) AS QSale ; FROM tmp2 a , &_Dir.re b ; WHERE a.ID=b.r_cod AND b.R_dat>=_Date1 AND b.R_dat<=_Date2 ; GROUP BY a.ID ; INTO TABLE tmp3 В Фоксе этот СКЛЬ срабатывает красиво, но в EXE он работать не хочет, - и никаких сообщений об ошибках нет. Кто подскажет в чем же дело ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 15:08 |
|
||
|
Проблемы с SQL
|
|||
|---|---|---|---|
|
#18+
а почему решили что не срабатывает SELECT DISTINCT ; a.ID, ; a.QArr, ; a.Date, ; a.Type, ; a.Name, ; a.Price, ; a.MPrice, ; a.SPrice, ; SUM(b.R_Col) AS QSale ; FROM tmp2 a , & _Dir.re b ; WHERE a.ID=b.r_cod AND b.R_dat>=_Date1 AND b.R_dat<=_Date2 ; GROUP BY 1,2,3,4,5,6,7,8; INTO TABLE tmp3 что за штука ? не описка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 15:21 |
|
||
|
Проблемы с SQL
|
|||
|---|---|---|---|
|
#18+
я про макроподстановку если не описка то скорее всего не правильно надо по другому кажеться точечку еще добавить или в переменную загнать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 15:24 |
|
||
|
Проблемы с SQL
|
|||
|---|---|---|---|
|
#18+
leafа почему решили что не срабатывает - потому, как следующий запрос использует этот tmp3, а его физически нет. теперь макро - думаю, он здесь нипричем. Вот пример кода, который работает, как швейцарские часы: SELECT ; a.Code AS ID, ; FROM &_Dir.FDB a , tmp1 b ; WHERE a.Code=b.ID ; GROUP BY a.N_Cod ; INTO TABLE tmp2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 15:32 |
|
||
|
Проблемы с SQL
|
|||
|---|---|---|---|
|
#18+
...пардон ! опечатка: Group By a.N_Cod - тут лишнее ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 15:35 |
|
||
|
Проблемы с SQL
|
|||
|---|---|---|---|
|
#18+
его не будет физически если вы его физически закроете если есть ошибки в запросе то будет ругань вообще макро в полном синтаксисе оканчиваеться точкой вот воши точки мне и не внушают доверия как осторожному человеку точнее их количество а так я больше ничего плохого не вижу за исключением не правильной группировки но в фоксе 6 или 7 это не повод поставте сразу после запроса browse normal тогда посмотрим только сразу следующим оператором ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 15:41 |
|
||
|
Проблемы с SQL
|
|||
|---|---|---|---|
|
#18+
to leaf: ну хоть в области то он должет быть ) а его и физ нет и в области он не висит - функцией dbf() проверял. а физически нет, потому как следующий запрос ругается, потому что не находит файл tmp3. Поставил Browse Normal - в итоге показывает файл, который был сформирован до этого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 15:52 |
|
||
|
Проблемы с SQL
|
|||
|---|---|---|---|
|
#18+
уберите макро и не мучтесь остальное на вскидку правильно пропишите явно таблицу и посмотрим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 16:02 |
|
||
|
Проблемы с SQL
|
|||
|---|---|---|---|
|
#18+
leafа если &_Dir.re b. Нет, не так. Попробуйте: Padre = '20' _Dir = 'Pad' ?&_Dir.re Так что все сработает, как надо, если именно так было задумано ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 16:24 |
|
||
|
Проблемы с SQL
|
|||
|---|---|---|---|
|
#18+
Попробуйте также Попробуйте: create cursor pad (re c(2)) insert into pad values ('30') _Dir = 'Pad' ?&_Dir..re ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 16:26 |
|
||
|
Проблемы с SQL
|
|||
|---|---|---|---|
|
#18+
Еще Вариант: Попробуйте: create cursor pad (re c(2)) insert into pad values ('ss') ss = '40' _Dir = 'Pad' ?&_Dir->re. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 16:28 |
|
||
|
Проблемы с SQL
|
|||
|---|---|---|---|
|
#18+
Пардон, здесь заврался. имел в виду: create cursor pad (re c(2)) insert into pad values ('ss') ss = '40' ?&Pad->re. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 16:30 |
|
||
|
Проблемы с SQL
|
|||
|---|---|---|---|
|
#18+
урри тебе не штанга там на голову случайно упала шутка просто фильм один вспомнил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2005, 17:05 |
|
||
|
Проблемы с SQL
|
|||
|---|---|---|---|
|
#18+
Возможно неработающий select оформлен как строка (т.е &_Dir.re внутри кавычек и не воспринимается как макро), тогда надо 'select ... ' + &_Dir.re b + 'where ... ' или 'select ... ' + _Dir.re b + 'where ... ' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2005, 06:37 |
|
||
|
Проблемы с SQL
|
|||
|---|---|---|---|
|
#18+
Hi Евгений! И в exe и в среде исполняется один и тот-же программный модуль, или ты просто выдернул SQL из программы и проверил его? Просто иногда бывает, что в запарке забывают про особенности комментирования программ Скажем эта конструкция исполнит запрос Код: plaintext 1. Код: plaintext 1. Кроме того для проверки ОБЯЗАТЕЛЬНО нужно знать содержимое переменной _Dir - с точностью до символа! Может там путь с пробелами (это естественно развалит SQL команду, хотя по идее и ошибку тогда должно показать). P.S. Про логическую некорректность этого запроса тебе уже намекнули - В VFP8 и старше он вызовет синтаксическую ошибку - нельзя группировать только по части "свободных" полей - либо группируй по всем свободным, либо все кроме группировочного заворачивай в агрегирующие функции (например MAX() или MIN()). Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2005, 02:10 |
|
||
|
Проблемы с SQL
|
|||
|---|---|---|---|
|
#18+
to Golsa : to Urri: макро тут ни причем - см выше. я давно дружу с макро. ) to Igor K: выдергивать..зачем ?! ..просто иногда я пишу на SQL'е ) комменты: я понял, что по Вашей версии СУБД выполняла соседний закоментированный код.. - Я правильно понял? Рядом нет комментариев. Содержимое проверял дебуггером - все правильно. В общем, загвоздка была в переменных : _Date1 и _Date2. в дебугере они типа Date, впрочем, как само поле....НО!!! не тут то было. в общем, причина была в лишней функции - CTOD()..но, Фокс ничего не сказал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 15:35 |
|
||
|
Проблемы с SQL
|
|||
|---|---|---|---|
|
#18+
если подробно: в форме в INIT вписал это ...Text1.VALUE=CTOD(DATE()) потом в методе _DATE1=CTOD(...Text1.Value) и к тому ещё в свойствах Text1 вписал тип D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 15:44 |
|
||
|
Проблемы с SQL
|
|||
|---|---|---|---|
|
#18+
ну Вам и сказали что запрос правильный ... в основном ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 15:51 |
|
||
|
Проблемы с SQL
|
|||
|---|---|---|---|
|
#18+
to leaf: просто в процессе "общения" с фоксом создался такой стереотип..типа, о парадоксальных ошибках.. ) вот, например, только сегодня убил час-два времени на это: SELECT 0 USE &_Dir.DB SHARED ALIAS DB - это я в ИНИТ пишу. потом, когда в методе обращаюсь к DB SELECT DB ..он ругается - алиас не найден. а, если по-новой создавать - не хочет ! говорит, что такой уже есть.. но командой SET его не показывает. пришлось тогда вот это писать....после повторного обращения в методе : SELECT 0 USE &_Dir.DB SHARED AGAIN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 17:55 |
|
||
|
Проблемы с SQL
|
|||
|---|---|---|---|
|
#18+
ну что вам сказать порядок основа математики и лучше попроще без сложностей не к добру это ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 18:29 |
|
||
|
Проблемы с SQL
|
|||
|---|---|---|---|
|
#18+
Бунин Евгенийto leaf: просто в процессе "общения" с фоксом создался такой стереотип..типа, о парадоксальных ошибках.. ) вот, например, только сегодня убил час-два времени на это: SELECT 0 USE &_Dir.DB SHARED ALIAS DB - это я в ИНИТ пишу. потом, когда в методе обращаюсь к DB SELECT DB ..он ругается - алиас не найден. а, если по-новой создавать - не хочет ! говорит, что такой уже есть.. но командой SET его не показывает. пришлось тогда вот это писать....после повторного обращения в методе : SELECT 0 USE &_Dir.DB SHARED AGAINКстати, я припоминаю, что были у одной моей коллеги в FPD проблемы, когда она писала в запросах нечто вроде Код: plaintext Ну а вообще вышеописанную конструкцию надо заменять или на Код: plaintext 1. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2005, 02:32 |
|
||
|
Проблемы с SQL
|
|||
|---|---|---|---|
|
#18+
2 Urri Странное предположение: select не умеет делать again. Запускаем фокс. Выполняем Код: plaintext 1. Еще раз выполняем Код: plaintext 1. Посвежее просто под руками нет. SELECT открывает алиас, если он еще не открыт, а если уже есть открытый с таким именем, просто использует его. Вот другие проблемы могут возникнуть. Вернее, сами их можем себе организовать. Допустим, нашу TXXX.DBF нам присылают в виде 10042005.DBF Код: plaintext 1. Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 2 Бунин Евгений По поводу AGAIN - может быть, сделать процедуру для открытия DBF с проверкой: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. где TXXX - имя таблицы, TXXXIDX - опционально имя тэга, если надо включить индекс Естественно, схема упрощена - потом захочется открывать не только .dbf, но и, напр., .scx, упрятать обработку ошибки в общий обработчик ошибок задачи - дык фантазия безгранична, тогда проверять, есть ли в значении Alias точка и т.д. и т.п. Не идеально с точки зрения лишней проверки на существование файла, зато универсально. Когда-то на о-очень медленных винтах и процессорах во времена FoxBase 1.x + DOS 3.30 этим стоило озаботиться, сейчас ИМХО уже наплевать при огромадных размерах файлового кэша ОС. Типа я надеюсь, что ОС каталоги тоже кэширует :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2005, 03:33 |
|
||
|
Проблемы с SQL
|
|||
|---|---|---|---|
|
#18+
Нет, Юрий, не Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2005, 08:10 |
|
||
|
|

start [/forum/topic.php?all=1&fid=41&tid=1594211]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
205ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
77ms |
get tp. blocked users: |
2ms |
| others: | 238ms |
| total: | 574ms |

| 0 / 0 |
