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

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

Проблемы по DBF [D5, dBase, FoxPro]


Marina ©   (2004-09-15 13:28:00) 

Здравствуйте, Мастера!

У меня две проблемы по DBF:

1) В таблице есть поле "Date". Как по нему сделать запрос, если это слово является зарезервированным в SQL? Переименовать поле нельзя.

Делаю запрос в DataBase Desktop: select Date from "Sales.DBF", выдает сообщение: Invalid use of keyword

2) Делаю запрос:

select ListNo, sum(Amount) from "Sales.DBF"
group by ListNo

Выдает сообщение "Operation not applicable". В чем ошибка?

В поле "Amount" находятся суммы, это числовое поле с двумя десятичными знаками. Таблица в формате dBase IV.


Sergey13   (2004-09-15 16:10:00) [1]

Просто мысли вслух, может и фигня.
А нет ли в поле какой нить дряни (залетело при сбое каком нить например)? Если попробовать например индекс по нему создать, что будет?


sniknik   (2004-09-15 16:10:00) [2]

> Что интересно, создала точно такую же таблицу (те же поля, язык, формат), ввела несколько записей - выборка сумм по ListNo работает!
> А из родной таблицы не хочет.
может версия таблицы очень старая (формат)? или банально у нее атрибут ридонли, и дальнейших проверок BDE не делает...
в общем действительно х.з.


Marina   (2004-09-15 16:04:00) [3]


> select ListNo, sum(Amount) from "Sales.DBF" A
> group by A.ListNo

Результат тот же.


> select ListNo, sum(Amount) from "Sales.DBF"
> group by 1

Выдает: "Capability not supported"


> проверь тип ListNo не строка?, и есть ли индекс по этому
> полю. также настройки, куда пишутся темповые файлы (куда
> выборка и временные индексы сохраняются), не заблокирована
> ли директория.

ListNo - числовое поле, индексов в таблице нет. Что интересно, создала точно такую же таблицу (те же поля, язык, формат), ввела несколько записей - выборка сумм по ListNo работает! А из родной таблицы не хочет. Пробовала еще выполнить упаковку таблицы - результат тот же. Какая-то чертовщина...


sniknik   (2004-09-15 15:01:00) [4]

> А как по 2-й проблеме?
х.з. в BDE не шибко разбираюсь
но можеш проверить

select ListNo, sum(Amount) from "Sales.DBF" A
group by A.ListNo

select ListNo, sum(Amount) from "Sales.DBF"
group by 1

проверь тип ListNo не строка?, и есть ли индекс по этому полю. также настройки, куда пишутся темповые файлы (куда выборка и временные индексы сохраняются), не заблокирована ли директория.


Marina   (2004-09-15 14:41:00) [5]


> select "Sales.DBF"."Date" from "Sales.DBF"

Да, работает, спасибо!

А как по 2-й проблеме? Попробовала сделать простой запрос:

select sum(Amount) from "Sales.DBF" - работает.


sniknik   (2004-09-15 14:14:00) [6]

select "Sales.DBF"."Date" from "Sales.DBF"
раз у тебя BDE, предупреждать кстати надо.


Marina   (2004-09-15 14:09:00) [7]


> - переименовать Date, или


Переименовать, к сожалению, нельзя.


> - select [Date] from "Sales.DBF"


Все равно DataBase Desktop выдает ошибку.


Rem   (2004-09-15 14:00:00) [8]

>>Делаю запрос в DataBase Desktop: select Date from "Sales.DBF", выдает сообщение: Invalid use of keyword

- переименовать Date, или
- select [Date] from "Sales.DBF"


Наверх

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