powered by simpleCommunicator - 2.0.44     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Посоветуйте где хранить сканы
5 сообщений из 30, страница 2 из 2
Посоветуйте где хранить сканы
    #38818610
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ALF75...
Примерно ради этого я и начинал топик... на момент старта топика, я сам склонялся к варианту хранения в БД: это же круто, ну там БЛОБы, Stream'ы, крутизна, а я же крутой программист, пальцы веером. Однако на данный момент товарисчи коллеги меня переубедили и я склоняюсь к варианту хранения в файловой системе в той или иной форме.
У всего есть плюсы и минусы.

Для одних задач и обстановки - хранение в БД несет больше плюсов
Для других задач и обстановке - может быть наоборот

Недавно была похожая тема, по поводу БД / не в БД долго спорили. Но это демагогия. В одних случаях, по сумме плюсов и минусов, лучше БД, в других случаях, внешние файлы.

IMHO & AFAIK
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38818622
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goffman...
плюсуюсь

в www.kamis.ru в результате тоже пришли к хранению БД (хотя можно и на диске). Хотя, для этого, как минимум, мне пришлось дофига кодить на C, что бы сделать нормальный просмоторщик изображений работающий через Net80.

Когда сылки на файлы, то все проще. Запустил какой нибудь просмоторщик, дал ему имя файла )))
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38819270
ALF75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid KudryavtsevКогда сылки на файлы, то все проще. Запустил какой нибудь просмоторщик, дал ему имя файла )))
Я тут посмотрел чего они понасканировали...
Там и jpg, и bmp, и pdf, и неизвестно чего еще будет... Короче у меня та самая ситуация, когда надо проще. Подумать страшно что нужно накодировать, чтобы
Поэтому добавил в программке ShellExecute и вот оно счастье. Если не знает при помощи какой программы открывать - показывает виндовское окно "Открыть с помощью..."

По поводу хранения БД - конечно надежнее, кто спорит. А по поводу потери файлов/ссылок - у меня такая ситуация, что это архив, потерянный файл (если все-таки умудрятся потерять) пересканируют заново. Тем более восстанавливать придется тем же кто теряет (полный доступ только у них), поэтому 10 раз подумают терять, или не терять.
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38820263
ART-CODE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там и jpg, и bmp, и pdf, и неизвестно чего еще будет...
1 - устанавливаете программу logparser.exe
2 - создаете батник с таким содержанием
Код: sql
1.
"C:\Program Files\Log Parser 2.2\LogParser.exe" -i:FS -Recurse:-1 -o:SQL -server:192.168.1.10,1433 -database:ScanIndex -driver:"SQL Server" -createTable:ON -username:ScanUsr -password:"123456789" file:C:\Robots\ScanIndexer\ScanIndexer.sql


В батнике укажите свой MS SQL сервер,базу данных, пользователя и пароль.
Соответственно, создайте на сервере заранее пустую базу данных ( ScanIndex ) и пользователя ( ScanUsr ) к ней.

3 - создайте файл SQL с таким содержимым
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SELECT 
    OUT_ROW_NUMBER()   as CSNum,
    COMPUTER_NAME()    as CompName,
	SYSTEM_TIMESTAMP() as CheckedDT,
    HASHMD5_FILE(Path) as Hash,
	EXTRACT_PREFIX(Path,0,':\\') as Drive,
    EXTRACT_PATH(Path) as Dir, 
	Name,
	EXTRACT_EXTENSION(Path) as Ext,
	Size,
	Attributes,CreationTime,LastAccessTime,LastWriteTime
INTO Scans
FROM C:\*.jpg, C:\*.bmp, C:\*.pdf
where 
    size>0 


В запросе отредактируйте имя диска и типы файлов, которые интересуют.
В батнике (из пунката 2) должен быть прописан путь к этому файлу.( file:C:\Robots\ScanIndexer\ScanIndexer.sql )

Таблица " Scans " будет создана в базе ( ScanIndex ) - автоматически при сканировании,
а если таблица уже есть, то она будет дополнена.

После запуска батника у Вас на сервере в таблице Scans будут MD5 файлов, и пути к ним.

3 - Теперь можно набросать небольшой VBS скрипт, который будет отслеживать изменения в папке сканов.
Первые строки такого скрипта могут быть такими:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
dim strAction, 	EDT, msg
strAction ="?" 
strComputer = "."
Set dateTime = CreateObject("WbemScripting.SWbemDateTime")
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMv2") 
  Set objEvents = objWMIService.ExecNotificationQuery ("SELECT * FROM __InstanceOperationEvent WITHIN 5 WHERE TargetInstance ISA 'CIM_DataFile' AND TargetInstance.Drive='" & control_disk &"' AND TargetInstance.Path='" & control_dir & "'")
Do While(True)
    Set objReceivedEvent = objEvents.NextEvent
	strAction =objReceivedEvent.Path_.Class  
	
	dateTime.SetFileTime objReceivedEvent.TIME_CREATED, false
    EDT=dateTime.GetVarDate()
	
	Select Case objReceivedEvent.Path_.Class
        Case "__InstanceCreationEvent": strAction = "Создан:" 
        Case "__InstanceDeletionEvent": strAction = "Удален:" 
        Case "__InstanceModificationEvent": strAction = "Изменен:" 
    End Select
	msg = """" & EDT &""",""" & strAction & """,""" & objReceivedEvent.TargetInstance.Name & """"
   Log msg
  'Здесь вызываем батник для пересканирования'
Loop


4 - Чтобы не пересканировать весь каталог из-за одного нового файла - можно на лету генерить новый SQL файл
( ScanIndexer.sql ) в котором будет указано только имя и путь нового файла.
...
Рейтинг: 0 / 0
Посоветуйте где хранить сканы
    #38820671
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А мы картинки пользователей, и видео пользователей и другие файлы, что заливают пользователи, храним в файловой системе. В базе (MS SQL Server) хранятся только ссылки.

Полёт нормальный вот уже 8 лет :) На данный момент 4500000 пользователей.
...
Рейтинг: 0 / 0
5 сообщений из 30, страница 2 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Посоветуйте где хранить сканы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]