Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.019 c
14-19817
reticon
2003-03-19 19:56
2003.04.07
установка приложения


14-19748
Fishka
2003-03-18 14:46
2003.04.07
Remote Administrator


1-19585
Tornado
2003-03-28 14:14
2003.04.07
Memo


7-19880
alexsandri
2002-12-20 17:31
2003.04.07
Возможно полные бредни ,но все же


3-19452
БАА
2003-03-15 17:50
2003.04.07
Выборка единственной строки из многих....




   Наверх