![]() |
|
|
![]()
|
|
| Dementor |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 9.7.2007 Репутация: нет Всего: нет |
В общем имеется база MySQL, состоящая из 2-х таблиц: folder и files. Таблица folder состоит из полей folderid, foldername, idpar, где idpar показывает принадлежность к родителю. Таблица files имеет следущую структуру fileid, filename, groupid, где groupid показываетпринадлежность файла к папке (тобишь groupid = folderid).
В TreeView построено дерево по этим данным. Но я никак не могу понять как организовать удаление узла и информации о нем в базе данных. Я понимаю что можно просто узнать имя родителя, найти его в таблице, узнать его id, потом найти в таблице files соответствующую запись и удалить ее. То же и с удалением папки. Но тут есть проблема - ведь имена папок могут повторяться!!! В общем помоги плиз. Срочно надо!!!! для работы использую dbExpress!!!! Ничего другого прикручивать нельзя!!!! Никаких левых библиотек. Только ее возможности!!!!!! Буду очень благодарен!!!!! |
|||
|
||||
| Dementor |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 9.7.2007 Репутация: нет Всего: нет |
Появилась идея такая. Я не сразу считываю всю базу, а только по мере ее необходимости. И теперь хочу чтоб в базу при считывании записывался обсолютный индекс каждого элемента (типа .AbsoluteIndex).
Вот как я это делаю:
Тут приведен листинг, где абсолютный индекс должен записываться только при чтении таблицы с данными папок. Должен но не записывается. Выдает ошибку синтаксиса update folder set index = :index where folderid = :id . Вроде все правильно.... причем в ошибке идет не с названиями переменных а с их значениями, типа update folder set index = 11 where folderid = 4. А я хотел по этому индексы проводить удаление записи... Объясните что не так. Это сообщение отредактировал(а) Dementor - 11.7.2007, 10:05 |
|||
|
||||
| Dementor |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 9.7.2007 Репутация: нет Всего: нет |
В общем, проблему с изменением данных я решил - оказалось нельзя в имени столбца использовать index, так как это зарезервированное слово.
Добавлено @ 23:06
Индексация идет, только вот индексация папок идет не верно. Например есть корень Windows, от него идут ветви Programm files, Films и тд. Так вот все ветви помечаются индексом 1. Почему так?????? Это же не верно!!!!! Я понимаю что скорее всего это из-за того что индексация папок и файлов идет отдельно. Но как этого избежать??? Подскажите!!! Это сообщение отредактировал(а) Dementor - 11.7.2007, 10:06 |
|||
|
||||
| Dementor |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 9.7.2007 Репутация: нет Всего: нет |
Оказалось все гораздо проще!!!!! Добавлять запись в дерево надо AddObject, и в Pointer указывать id этой записи в таблице. А потом приудалении вызывать через Treeview1.selected.Data. Вот и все. Скажем спасибо Rodman-у!!!! Помог по аське.
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |