Форум: "Базы";
Текущий архив: 2003.04.07;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c