Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SQLite чтение BASE64
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Базы данных
ILzuv
Доброго времени суток

Во внешний файл SQLite сохраняю строку BASE64. Выполняю запрос в SQLite, COMобъект возвращает значение этого поля,но поле не равно тому что в SQLite хранится. Запись происходит корректная.
Код соединения:

лСоединение = Новый COMОбъект( "ADODB.Connection" );
//лСоединение.
лСоединение.ConnectionTimeout = пТаймаут_Подключения;
лСоединение.CommandTimeout = пТаймаут_Команды;
лСоединение.Open( пСтрока_Подключения );
лКоманда = Новый COMObject( "ADODB.Command" );
лКоманда.ActiveConnection = лСоединение;
лКоманда.CommandText = "PRAGMA journal_mode = WAL";
лКоманда.Execute();
лКоманда.CommandText = "PRAGMA synchronous = 1";
лКоманда.Execute();
лКоманда.CommandText = "PRAGMA page_size = 4096";
лКоманда.Execute();
лКоманда.CommandText = "PRAGMA cache_size = 4000";
лКоманда.Execute();
лКоманда.CommandText = "PRAGMA case_sensitive_like = 1";
лКоманда.Execute();


SQL
Select *
from Table where Table.ID= '" + п_ID + "'


COMобъект.fields в нужном поле содержит не то что по факту в базе SQLite
Vladal
Поле, в котором хранится перекодированная картинка какого типа?
Не наложены ли на него ограничения?

Вот посмотрел
необходимо зарегистрироваться для просмотра ссылки

Может там дело в способе преобразования?
Без помещения кодированной картинки в SQLite, назад из Base-64 картинка преобразовывается без ошибок?

В 1С хранил небольшие картинки прямо в тексте процедур на примере этой темы:
необходимо зарегистрироваться для просмотра ссылки
ILzuv
Vladal @ 13.03.19, 14:01 необходимо зарегистрироваться для просмотра ссылки ,

Я пытаюсь прочитать подпись сформированную КриптоПро менеджером. Менеджер мне возвращает подпись в двоичных данных и после мне их надо передавать в BASE64. Я пробовал записать в виде двоичных в sqlite. Но у 1С не получается передать строку такой длинны и в sqlite у меня в конце строки "...", буквально три точки, обратно я уже ничего прочитать не смогу.

Статьи прочту, найду решение, напишу.

Но мне кажется все дело в COM объекте у 1С. Надеюсь параметр какой COM объекту нужно поменять, что бы заработало. Или он просто не может читать BASE64.

Возможно я как то не правильно пытался записать двоичные данные в sqlite. Просто отправлял переменную содержащую двоичные данные в запрос для sqlite. Может из временного файла текст вытянуть в запрос. Извращаться не пробовал. Может кто пробовал?
ILzuv
ILzuv @ Сегодня, 10:57 необходимо зарегистрироваться для просмотра ссылки ,
Цитата(Vladal @ 13.03.19, 14:01) необходимо зарегистрироваться для просмотра ссылки
Без помещения кодированной картинки в SQLite, назад из Base-64 картинка преобразовывается без ошибок?

Двоичные данные пробовал преобразовывать, все в порядке. И в базу записывает что надо, а чтение возвращает бред.
Vladal
Цитата(ILzuv @ 06.03.19, 11:47) необходимо зарегистрироваться для просмотра ссылки
COMобъект.fields в нужном поле содержит не то что по факту в базе SQLite

необходимо зарегистрироваться для просмотра ссылки
Цитата(ILzuv @ 18.03.19, 10:57) необходимо зарегистрироваться для просмотра ссылки
Но у 1С не получается передать строку такой длинны и в sqlite у меня в конце строки "...", буквально три точки, обратно я уже ничего прочитать не смогу.

Значит ли это, что ком-объект режет строку?
Можно ли это сделать на стороне SQL-сервера?
Или может другим способом, например, подключиться к серверу по adodb и сделать обычный insert/update с нужными данными?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.