Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> SQLite чтение BASE64 , COMобъект возвращает не корректное значение из поля VARCHAR BASE64          
ILzuv Подменю пользователя
сообщение 06.03.19, 11:47
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 5
Спасибо сказали: 0 раз
Рейтинг: 0

Доброго времени суток

Во внешний файл 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

Сообщение отредактировал Vofka - 06.03.19, 12:08

Vladal Подменю пользователя
сообщение 13.03.19, 14:01
Сообщение #2

Оратор
Иконка группы
Группа: Местный
Сообщений: 365
Из: Slovensko
Спасибо сказали: 78 раз
Рейтинг: 0

Поле, в котором хранится перекодированная картинка какого типа?
Не наложены ли на него ограничения?

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

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

В 1С хранил небольшие картинки прямо в тексте процедур на примере этой темы:
http://pro1c.org.ua/index.php?showtopic=22966

ILzuv Подменю пользователя
сообщение 18.03.19, 10:57
Сообщение #3

Молчаливый
*
Группа: Пользователи
Сообщений: 5
Спасибо сказали: 0 раз
Рейтинг: 0

Vladal @ 13.03.19, 14:01 * ,

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

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

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

Возможно я как то не правильно пытался записать двоичные данные в sqlite. Просто отправлял переменную содержащую двоичные данные в запрос для sqlite. Может из временного файла текст вытянуть в запрос. Извращаться не пробовал. Может кто пробовал?

ILzuv Подменю пользователя
сообщение 18.03.19, 14:34
Сообщение #4

Молчаливый
*
Группа: Пользователи
Сообщений: 5
Спасибо сказали: 0 раз
Рейтинг: 0

ILzuv @ Сегодня, 10:57 * ,
Цитата(Vladal @ 13.03.19, 14:01) *
Без помещения кодированной картинки в SQLite, назад из Base-64 картинка преобразовывается без ошибок?

Двоичные данные пробовал преобразовывать, все в порядке. И в базу записывает что надо, а чтение возвращает бред.

Vladal Подменю пользователя
сообщение 19.03.19, 10:35
Сообщение #5

Оратор
Иконка группы
Группа: Местный
Сообщений: 365
Из: Slovensko
Спасибо сказали: 78 раз
Рейтинг: 0

Цитата(ILzuv @ 06.03.19, 11:47) *
COMобъект.fields в нужном поле содержит не то что по факту в базе SQLite

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

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

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 19.03.24, 4:06
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!