Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с SQL-запросами. Виснут. [D6, dBase, FoxPro]


Новичок ©   (2003-10-24 06:22:00) 

Здраствуйте уважаемые Мастера.

Проблема состоит в следующем:
Через компонент TQuery пытаюсь выполнить следующий запрос:
select sum(svod.summa) as Result from "c:\zarplata\zar_dbf\svod.dbf"
as svod where sh_zatrat="+dm.TShablon.FieldByName("sh_zatrat").AsString
+" and Cast(kds as integer) < 800 and kds<>"ПФО" and
Cast(kds as integer) not in ("+dm.TShablon.FieldByName("kds").AsString
+")

В результате чего Delphi 6.0 виснет.
Пробовал через Database/Explorer, этот же запрос да и запросы попроще,
виснет через раз.
Дельфи переустанавливал раз пять.
Винду переставлял (ставил и Вин2000 и Вин98).
Формат таблиц DBase IV, другой нельзя.
В таблицах ошибок нет.

Ничего не помогает. :-(

ПОМОГИТЕ ПОЖАЛУЙСТА
Заранее благодарен.


Reindeer Moss Eater   (2003-10-24 10:12:00) [1]

А я и не говорил, что это правильно.
Я про фичу рассказал.


bushmen   (2003-10-24 10:09:00) [2]

>Например из "123-A" получается 123

Я считаю, не корректно так проектировать базу, чтобы приходилось отрабатывать "and Cast(kds as integer) < 800 and kds<>"ПФО"


Reindeer Moss Eater   (2003-10-24 10:04:00) [3]

Странно, что у тебя еще ошибки преобразования типов не вылехает :)

Это фича LocalSQL.
Символьных поля кастятся в числа без эксепшенов.
Например из "123-A" получается 123


bushmen   (2003-10-24 09:41:00) [4]

Странно, что у тебя еще ошибки преобразования типов не вылехает :)


ЮЮ   (2003-10-24 09:29:00) [5]

and Cast( kds as integer) < 800 and kds<>"ПФО"

Т.е. текстовое поле kds может содержать значения типа "ПФО" и при этом его хотим конвертировать в целое ?


Кщд   (2003-10-24 08:51:00) [6]

Cast(kds as integer) not in ("+dm.TShablon.FieldByName("kds").AsString
смысл?
в консерватории надо что-то менять, однозначно...


Denis   (2003-10-24 08:45:00) [7]

Странно, я такой синтаксис SQL никогда не видел... Ты по каким книгам учился? :)
Тут проблема не в Делфи и не в Винде.
Ты когда-нибудь слышал о параметрических запросах?


Наверх

Титульная страница Поиск, карта сайта Написать письмо