Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.07;
Скачать: CL | DM;

Вниз

ADOTable + фильтр + одинаковые строки = лажа   Найти похожие ветки 

 
slydiman ©   (2003-03-17 23:13) [0]

Таблица dBASE (DBF файл) без индексов.
Задача: все строки с одинаковым полем A объединить в одну суммировав значения поля B.
Создал 2 копии ADOTable, перебираю первую таблицу (интересует значение поля A). При этом во второй таблице задаю фильтр A="XXX". Во второй таблице считаю сумму поля B и удаляю все строки кроме первой. Затем эту сумму заношу в оставшиюся первую строку.

Проблема: если встречаются 2 абсолютно одинаковые строки, то ADOTable ругается и на Delete и на Post (после редактирования). Сообщение об ошибке непереводимо :), нихватает ему каких-то данных для выполнения операции.

Help!!! Заранее спасибо.


 
ЮЮ ©   (2003-03-18 04:54) [1]

>если встречаются 2 абсолютно одинаковые строки
Нельзя иметь в таблице 2 абсолютно одинаковые строки: их, действительно нельзя редактировать, а удалить можно только все скопом, отдельным запросом. Потому и следует вводить в таблице поля с уникальными значениями.


 
sniknik ©   (2003-03-18 08:27) [2]

немного не так,
> иметь в таблице 2 абсолютно одинаковые строки
можно, но не в этом случае, возврашайся на BDE, Fox, либо на какой нибудь локальный движок, и у тебя не будет с этим проблем. (для локальных актуален еще и номер записи так что они работают с одинаковыми строками)

другое дело ADO (ты его используеш значит и его привила должен принять), ADO "заточен" под клиент/серверную технологию где номер записи не имеет значения (даже если в частном случае его можно получить (Visual Foxpro Driver к примеру)) а идентификация идет по значениям самой записи/уникальному ключу если есть, и в этом случае "2 абсолютно одинаковые строки" никак не идентифицируются (нет отличий - неясно к какой обращение). В общем в этом случае единственный выход добавить ключевое уникальное поле. (ну можео еще провайдера поменять попытатся но вряд ли найдеш такого который совмещает клиент/сервер и локал технологии, VFD скорее исключение и у него свои "тараканы" )


 
Anatoly Podgoretsky ©   (2003-03-18 10:04) [3]

Проблема: если встречаются 2 абсолютно одинаковые строки, то ADOTable ругается и на Delete и на Post (после редактирования). Сообщение об ошибке непереводимо :), нихватает ему каких-то данных для выполнения операции.

А ты не переводи а приведи, но одинаковые строки разруха в голове


 
D   (2003-03-18 10:09) [4]

Это точно, никакой нормализации в таблице.

А если нужно суммировать зн-е поля В у строк с одинак.полем А, то исп-йте группировку (select A, sum(B) from Table1 group by A ...)



Страницы: 1 вся ветка

Текущий архив: 2003.04.07;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
1-19599
Vavan
2003-03-28 16:56
2003.04.07
dbGrid


14-19868
weak
2003-03-17 15:57
2003.04.07
Enterprise Manager для MSDE


7-19895
Герасимов
2003-02-06 23:04
2003.04.07
ShutDoun в win 2000


1-19623
ksa3003
2003-03-25 13:03
2003.04.07
Если кто работал c StringGird в QuickReport !!! Help Me!!!!!!


1-19662
Glusha
2003-03-26 02:47
2003.04.07
Поиск индекса элемента в списке TList