Здравствуйте, wildwind, Вы писали:
W>Здравствуйте, developer.cpp, Вы писали:
d>> я посмотрел, в sqlite3 rownum не работает + подумал, что когда пользователь работает со справочником перестроить справочник при редком удалении строк совсем не заметно. А вот что то вычислять вдобавок к итак трудоемкому алгоритму не стал.
W>Зачем rownum? В приложении, получив очередную строку, сделать i++ сложно что ли?
после select с порцией строк заполение многомерного массива происходит так:
Здравствуйте, wildwind, Вы писали:
W>Здравствуйте, developer.cpp, Вы писали:
d>> у меня много индексов i1, i2, i3, i4 --- при получении новой строки неизвестно какому делать ++ ...
W>А какой из них ты хочешь перенумеровать?
все, каждыйиндекс из своего справочника, справочники однотипные
Здравствуйте, developer.cpp, Вы писали:
d> d>> у меня много индексов i1, i2, i3, i4 --- при получении новой строки неизвестно какому делать ++ ... d> W>А какой из них ты хочешь перенумеровать? d> все, каждыйиндекс из своего справочника, справочники однотипные
Так еще и справочников много, и все нужно перенумеровывать? Извини, я окончательно запутался, и без понимания исходной задачи вряд ли смогу посоветовать что-то еще.
Здравствуйте, developer.cpp, Вы писали:
W>>2. Если данные не в справочниках, а в других таблицах, то что в данном справочнике? Только номера, а в других таблицах FK ссылки на него?
DC>данные для обработки в других таблицах. Средствами СУБД их анализировать накладно, анализ делает специализированная числодробилка на C++.
DC>данные вытаскиваются в многомерный массив u[i1][i2][i3][i4][i5], представляющий собой интерфейс к одномерному массиву. i1 --- номер из первого спраочника, i2 --- номер из второго справочника ...
DC>Если i1 --- это индекс из "бездырочной нумерации" то по этому индексу запись делается сразу же в нужный участок памяти, и если i1 первичный ключ из множества DC>с дырками, то нужно вычислять что же это за элемент массива u
Ну, тут налицо ошибка в проектировании твоей программы на С++.
Тебе надо использовать не массив, а std::map или его аналоги.
БД тут ни при чём.
Ещё раз -- нельзя накладывать на поля PK никакие доп. требования из предметной области, кроме уникальности.