Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
gnatochka Member Откуда: Kazan Сообщений: 46 |
Добрый день. Необходимо "срочно и вчера" перелопатить кучу сохраненных в varbinary(max) Файлов RTF (выудить из них инфу) Нашла на форуме пример create function dbo.RTF2TXT(@in varchar(8000)) RETURNS varchar(8000) AS BEGIN DECLARE @object int DECLARE @hr int DECLARE @out varchar(8000) -- Create an object that points to the SQL Server EXEC @hr = sp_OACreate 'RICHTEXT.RichtextCtrl', @object OUT EXEC @hr = sp_OASetProperty @object, 'TextRTF', @in EXEC @hr = sp_OAGetProperty @object, 'Text', @out OUT EXEC @hr = sp_OADestroy @object return @out END GO версия SQL Server: Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64) Jun 28 2012 08:36:30 Copyright (c) Microsoft Corporation Developer Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor) 'Ole Automation Procedures' = 1 Не получается вызвать sp_OACreate 'RICHTEXT.RichtextCtrl', выдает @hr OLE Automation Error Information HRESULT: 0x800401F3 Source: ODSOLE Extended Procedure Description: Invalid class string Не находит 'RICHTEXT.RichtextCtrl' ? А что это за компонент и как его "найти"? |
17 окт 17, 10:19 [20874930] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8350 |
gnatochka, использовать OLE механизм следует только в случае, если нет другой возможности. Попробуйте найти внешние конвертеры RTF-Txt, напишите простое приложение (любой скриптовый язык - VBS, JS, Power Shell) для извлечения и преобразования данных. |
17 окт 17, 11:35 [20875267] Ответить | Цитировать Сообщить модератору |
Ролг Хупин Member Откуда: Чебаркуль Сообщений: 3986 |
+ я бы сделал SQLCLR функцию вместо извращений с созданием RICHTEXT.RichtextCtrl |
||
17 окт 17, 11:44 [20875315] Ответить | Цитировать Сообщить модератору |
Ролг Хупин Member Откуда: Чебаркуль Сообщений: 3986 |
точнее: я такое когда-то и делал, была точно такая же задача. |
||||
17 окт 17, 11:49 [20875341] Ответить | Цитировать Сообщить модератору |
gnatochka Member Откуда: Kazan Сообщений: 46 |
Спасибо. Пока так и извращаюсь , скинула на диск все скопом- преобразовала внешним конвертором в txt и обрабатываю полученные txt. Но это как-то кривовато :/ думала можно проще. |
||
17 окт 17, 11:54 [20875367] Ответить | Цитировать Сообщить модератору |
gnatochka Member Откуда: Kazan Сообщений: 46 |
Ролг Хупин, Научите меня писать CLRSQL :)) Надо конечно ... но :( Как то так сложилось, что вечно с закрытыми клиентами работаю ... И опыт в основном только со стороны SQL Server. Будет время покопаюсь научусь, а сейчас пыталась найти быстрое решение :) Спасибо. |
17 окт 17, 11:59 [20875402] Ответить | Цитировать Сообщить модератору |
Ролг Хупин Member Откуда: Чебаркуль Сообщений: 3986 |
учу: Вариант А: 1. установите VS 2017, она бесплатна 2. найдите пример, как написать такую функцию, их много в интернете 3. сделайте и загрузите, вы получите такое удовольствие, какого возможно... ![]() Вариант Б: 1. найдите программиста и пусть напишет, заплатите как-то, можно и деньгами |
||
18 окт 17, 09:03 [20877929] Ответить | Цитировать Сообщить модератору |
Andy_OLAP Member Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион Сообщений: 3151 |
windows x64 и RichTx32.ocx x86 Не забывать выключить UAC |
||
18 окт 17, 09:52 [20878030] Ответить | Цитировать Сообщить модератору |
Andy_OLAP Member Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион Сообщений: 3151 |
"Description: Invalid class string" - вот это или ситуация, когда компонент лезет в ветку реестра, а Windows дает ему по рукам и говорит "ай-яй, прав то нету", или когда на x64 компе идет попытка задействовать x86 компонент, которые Microsoft целеустремленно и неуклонно выпиливает (в чем-чем, а в этом я их в этом полностью поддерживаю). |
||
18 окт 17, 09:57 [20878053] Ответить | Цитировать Сообщить модератору |
Ролг Хупин Member Откуда: Чебаркуль Сообщений: 3986 |
Вот вам T-SQL функции: с и без извращений с контролом https://www.codeproject.com/Tips/821281/Convert-RTF-to-Plain-Text-Revised-Again |
18 окт 17, 11:12 [20878358] Ответить | Цитировать Сообщить модератору |
Критик Member Откуда: Москва / Калуга Сообщений: 34759 Блог |
gnatochka, у вас единичный поиск? переоложить в varchar(max)+полнотекстовой индекс |
18 окт 17, 17:50 [20879943] Ответить | Цитировать Сообщить модератору |
gnatochka Member Откуда: Kazan Сообщений: 46 |
Ролг Хупин, Функцию, ссылку на которую вы кинули я видела и тоже пробовала до того как написать в форум:( извините,не хотела йорничать ... сама давно хочу найти время "по разбираться с clr" и VS Express стоит :( А руки не доходят. Тут скорее на себя злость сработала ... Надо! Уже не в первый раз необходимость возникает. Но как "обойду" в очередной раз до следующей "необходимости" благополучно откладываю. Всем, откликнувшимся, огромное спасибо! Обошла "полуавтоматическим":)) способом (скинула на диск, конвертнула сторонним конвертором и залила уже txt на сервер для обработки) задача была разовая и очень срочно. По поводу OLE на сервере - поняла, постараюсь таки с VS подружится :) |
2 ноя 17, 16:17 [20922477] Ответить | Цитировать Сообщить модератору |
Ролг Хупин Member Откуда: Чебаркуль Сообщений: 3986 |
Уберите VS Express , поставьте полноценную VS2017 community edition и дерзайте уже! |
||
2 ноя 17, 17:00 [20922569] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |