![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка в SQL запросе?! [D5, IB6.x, dBase, FoxPro]
Sava © (2002-02-28 10:52:00)Уважаемы мастера, помогите всю голову разбил уже!
В кратце описываю что у меня есть:
Есть база (dDase), я пишу запрос чтоб получить записи за определенный период, период задается с помощью компонентов RxLib, а именно DateEdit, происходит следующая вещь, когда в результате запроса есть хоть одна запись, все замечательно, но вот когда результат пустой, т.е. условию не удовлетворяет ни одна запись вылетает ошибка, примерно вот такая: Translate Error. Value out of bounds.
Запрос примерно такой:
Select data, sum(kolvo) from prihod
where data between "22.02.2002" and "25.02.2002"
group by data
у меня два подозрения но что делать незнаю. Первое передаю дату как текс, хотя поле Data имеет тип "дата", и второе подозрение связанное с group by. Подскажите что делать????
Я SQL недавно осваивать начал, может я что не знаю?
Заранее благодарен!
Sava (2002-02-28 17:15:00) [21]Жаль что не помогло!!!
Еще идеи есть? Меня сначало это злило, а теперь просто интересно уже!!!
Johnmen (2002-02-28 16:51:00) [22]>Sava © : Из области ненаучного тыка - переименуй поле data - что-то оно мне не нравится...
Если по-прежнему будет плохо - намыль...
Shirson (2002-02-28 16:46:00) [23]Если не секрет и не комерческая тайна, закинте мне свой dbf (в нем храните, если не ошибаюсь?). Посмотреть хоть, что за чудо такое, которое так глючит :)
(мыло под ником)
Sava (2002-02-28 16:18:00) [24]>Shirson
Коллега, мне не приятно это напомитать, но, вопервых, с какой базой я работаю написано в самом первом сообении - это dBase. И там, кстати, дата стоит констанотой, ошибка есть.
А вот за "кверианалайзера" спасибо идея новая, щас попробую что нит найти похожее, вот только интересно найду-ли?
Буду признателен за идеи!!!
Проблема то есть кто не верет намылю кусочик проекта.
Shirson (2002-02-28 16:04:00) [25]Значит нужно рыть с кореней.
С какой базой вы работаете? Что-нибудь типа кверианалайзера там есть? Как sqlw для MSSQL. Вобщем оболочка, где можно писать запросы для базы.
Загоните свой запрос туда и посмотрите результат.
Еще попробуйте в запросе прописать дату константой и попробуйте сгруппировать по дате - ошибка есть?
Sava (2002-02-28 15:29:00) [26]>Shirson
Коллега... К великому сожелению это не имеет значения, и когда определены ошибка и когда не определены тоже ошибка:((( Этот этап был пройден часа два назад :((( У меня идеи кончились подскажите свежую!!!!!!!!!!
Shirson (2002-02-28 15:20:00) [27]Коллега... а в DBGird у вас колонки заранее не определены?
Sava (2002-02-28 15:15:00) [28]>val
Повторяюсь еще раз есть два запроса:
первый:
with query1 do begin
close;
sql.Clear;
sql.Append("select data, mest, kateg, postav, sum(kolvo) from prihod ");
sql.Append("where data between ""+dateedit1.text+"" and ""+ dateedit2.text+""");
sql.Append("group by data, mest, kateg, postav");
и второй запрос:
with query1 do begin
close;
sql.Clear;
sql.Append("select mest, kateg, postav, sum(kolvo) from prihod ");
sql.Append("where data between ""+dateedit1.text+"" and ""+ dateedit2.text+""");
sql.Append("group by mest, kateg, postav");
Разницы между ними чуть, а вот первый выдает ошибку а второй нет? И кто виноват? И самое главное ЧТО ДЕЛАТЬ????
Val (2002-02-28 15:01:00) [29]>Sava
никаких издевок.
если проблема в запросе, то ошибка должна появляться именно на строке Query1.Open
Sava (2002-02-28 14:57:00) [30]> iva
> У кого это "у вас" ?
Это в мой адрес издевка:))
Мда тяжелый случай... водщем проблема осталась нерешенной
iva (2002-02-28 14:54:00) [31]Sava, мне кажется виной всему BDE
Sava (2002-02-28 14:54:00) [32]> Val
Со всем уважением, но не могу сказать что от запроса работоспособность не зависит напрямую!!!!
Тоесть я убираю кое-что из запроса (смотрите выше) и даже пустые строки выводит замечательно, так что не могу сказать, что проблемма не в запросе, вероятно она и не в запросе, но от именно запрос является возбудителем этой ошибки или не согласны?
>iva
Вот и я говорю, что существует..... А что делать уж больно на парадокс переходить не хочется.....
iva (2002-02-28 14:52:00) [33]>Val © (28.02.02 14:47)
>Вы можете сказать нормально, что у вас не работает?
У кого это "у вас" ?
Val (2002-02-28 14:47:00) [34]>Sava © (28.02.02 14:42)
(вобщем далеко от запроса), запрс выдает все нормально пустые записи
Уважаемый, чего тогда мы ваш запрос мусолим?
Вы можете сказать нормально, что у вас не работает?
iva (2002-02-28 14:44:00) [35]Проблема действительно существует.
Попробовал то же самое на базах Парадокса (DB) ошибка исчезла.
iva (2002-02-28 14:44:00) [36]Проблема действительно существует.
Попробовал то же самое на базах Парадокса (DB) ошибка изчезла.
Sava (2002-02-28 14:42:00) [37]> Val
Я уже писал, что ошибку получаю в момент перерисовки DBGrid (вобщем далеко от запроса), запрс выдает все нормально пустые записи, это я позже выяснил не с самого начала, но беда в том что если из выборки убрать дату и соответственно по ней не групировать то ошибок не выдает. Если where ... benween... убираю тоже не ругается.
>Shirson
Еще раз повторяю дату я беру из компонента TDateEdit библиотеке RxLib. И никакие комбинации не позволяют справится с ошибкой.
>alexts
Как я посмотрю есть записи или нет до запроса? Вообще они есть но вот удовлетворяющие условию отсутствуют, и что делать, вообще я наверно щас на дату забью, это не дело принципа это пожелание видеть именно такую выборку, причем желане к сожалению не мое.
Val (2002-02-28 14:27:00) [38]Sava © (28.02.02 14:11)
это (Shirson © (28.02.02 14:00))должно работать!(попробуйте еще АsDateTime), на какой строке все-таки получаете ошибку?
Shirson (2002-02-28 14:24:00) [39]>Sava
Проверь, есть ли такие записи вообще.
Выведи полностью сформированный sql.text например в кэпшн и посмотри, нет ли там ошибок.
Посмотри в каком виде вводится дата. Вообще даты лучше брать с датапикеров.
alexts (2002-02-28 14:21:00) [40]>Sava ты чисто из-за принципа хочешь разобраться в чем дело?
А то может сначала проверить есть записи или нет, а потом свой запрос