Рекурсивный запрос T-SQL - Линия данных

Как указано, DotNetZip - ваш друг. Распаковка вашего zip-файла так же просто, как

using ( ZipFile archive = new ZipFile( @"c:\path\to\your\password\protected\archive.zip",) )
{
  archive.Password = "your-pass-word-here" ;
  archive.Encryption = EncryptionAlgorithm.PkzipWeak ; // the default: you might need to select the proper value here
  archive.StatusMessageTextWriter = Console.Out;

  archive.ExtractAll( @"c:\path\to\unzip\directory\", ExtractExistingFileAction.Throw ) ;
}

По моему опыту, DotNetZip работает примерно так же быстро, как инфо-zip с открытым исходным кодом unzip и использует примерно тот же объем памяти.


Отредактировано для заметок: DotNetZip использовался для работы в Codeplex. Codeplex отключен. Старый архив все еще доступен в Codeplex . Похоже, что код перенесен в Github:


1
задан jarlh 17 January 2019 в 11:55
поделиться

1 ответ

Эта версия делает то, что вы хотите:

with cte as (
      select parobj as obj, convert(nvarchar(max), NULL) as path
      from smth
      where not exists (select 1 from smth smth2 where smth2.chilobj = smth.parobj)
      union all
      select smth.chilobj as obj, convert(nvarchar(max), coalesce(path + ' -> ', '')) + cte.obj
      from cte join
           smth
           on cte.obj = smth.parobj
     )
select obj, coalesce(path + ' -> ' + obj, 'Root')
from cte;

Здесь - db <> скрипка.

0
ответ дан Gordon Linoff 17 January 2019 в 11:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: