Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.08.2011, 19:45
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию вопрос по sql

делаю программу - не знаю как это называется(вероятно велосипед) но, она делает снимок файлов и папок, в БД sqlite записывает имена, размер, дату, хэш пока не беру:
для папок поле размер = 0
хочу средствами SQL высчитать поле размер для папок как сумму всех размеров файлов в них
возможно ли оно?
Ответить с цитированием
  #2  
Старый 12.08.2011, 19:52
Аватар для Gravitas
Gravitas Gravitas вне форума
Новичок
 
Регистрация: 12.06.2011
Сообщения: 61
Версия Delphi: 7
Репутация: 38
По умолчанию

Тип TSearchRec + FindFirst\FindNext, FindClose.
__________________
Gravitas
Ответить с цитированием
  #3  
Старый 12.08.2011, 19:59
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

Gravitas не это все дело уже в базе данных, мне осталось ее обработать sql командами, которые запишут настоящий размер папок
Ответить с цитированием
  #4  
Старый 15.08.2011, 12:16
Аватар для Viajero
Viajero Viajero вне форума
Активный
 
Регистрация: 14.06.2011
Адрес: РБ
Сообщения: 214
Версия Delphi: Delphi 7 FB 2.5
Репутация: 5849
По умолчанию

Ну дык тут вроде всё просто. Что-то вроде:
Код:
SELECT ИмяПапки, Sum(РазмерФайла) AS РазмерПапки
FROM ТаблицаВсехФайлов
GROUP BY ИмяПапки
__________________
- Товарищ прапорщик!!! Остановите поезд!!! - Поезд СТОЙ! РАЗ! ДВА!
Ответить с цитированием
  #5  
Старый 18.08.2011, 18:33
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

Решено!
PHP код:
update data set size = (select sum(sizefrom data as data2 where 
data2
.file > (data.file || '/') AND data2.file < (data.file || '0') AND 
size is not nullwhere size is null 
магия во второй строчке работает по индексу в отличие от:
PHP код:
data2.file LIKE (data.file || '/%'
таблица data, file-полный путь(прямые слеши), у папок size~null, после запроса size устанавливается в сумму всех вложенных файлов

Последний раз редактировалось Pyro, 18.08.2011 в 18:37.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:28.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter