Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как правильно передать в mssql бинарный файл в JSON / 5 сообщений из 5, страница 1 из 1
17.07.2019, 09:05
    #39838163
Игорь_UUS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно передать в mssql бинарный файл в JSON
Добрый день.

Использую MSSQL 2016

Почитав документацию работы с json написано "Строка в кодировке Base64".
Из программы мне необходимо сохранить файл jpeg в базе данных, передав его в "теле" json на сторону mssql

Вот код написанный на Delphi:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
function TSchedulerFrm.GetResourcesJSONArr: string;
  var JSONArr     : TJSONArray;
      JSONObj     : TJSONObject;
begin
  JSONArr := TJSONArray.Create;
  try
    FResourceCacheEdit.First;
    while not FResourceCacheEdit.Eof do
    begin
      if FResourceCacheEdit.Edited = True then
      begin
        JSONObj := TJSONObject.Create;
       ..
       ..
        

        if not FResourceCacheEdit.MSEV1Miniature.isNULL then
          JSONObj.AddPair(TJSONPair.Create(fnSCH_MSEV1Miniature,   TNetEncoding.Base64.EncodeBytesToString(FResourceCacheEdit.MSEV1Miniature.AsBytes)));

        // Сохраняем объект в массив.
        JSONArr.AddElement(JSONObj);
      end;

      FResourceCacheEdit.Next;
    end;

    Result := JSONArr.ToString;
  finally
    JSONArr.Free;
  end;
end;



на уровне mssql данные пытаюсь читать след. образом:

Код: sql
1.
2.
3.
4.
5.
6.
SELECT
	  [MSEV1Miniature]
 FROM OPENJSON(@ResourcesJSONArr) WITH (
      
      [MSEV1Miniature]				VARBINARY(MAX)	'$.MSEV1Miniature'
    )



Исходный файл имеет размер 11556, то что сохраняется в БД имеет больший размер 11859. При этом если посмотреть "поток" данных, то в самом начале он идентичен, к середине потока появляется "какой-то мусор"... но самое интересное файл заканчивается тем же потоком что и исходный.

Я правильно понимаю, что полученный поток данных в виде текста в mssq я должен перекодировать из Base64 и только потом сохранить в БД?
...
Рейтинг: 0 / 0
17.07.2019, 09:24
    #39838169
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно передать в mssql бинарный файл в JSON
Осподе, милосердный! Какой бред.

1. JSON = обычная символьная строка.

2. Передача бинарных данных в строке JSON элементарна. Даже документацию можно не читать. Я к тому, что конструкторы JSON сами сообразят в что конвертить бинари.

3. @ResourcesJSONArr глазками то осмотреть и миру показать не судьба?

ЗЫ. Для пробы можно передавать 10-15 байт.
Если опыта с MS SQL поболе - можно собрать JSON на стороне сервера и посмотреть как оно должно выглядеть.
Сравнить с тем, что прилетает из вашей проги.
...
Рейтинг: 0 / 0
17.07.2019, 09:47
    #39838176
Игорь_UUS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно передать в mssql бинарный файл в JSON
aleks222Осподе, милосердный! Какой бред.

1. JSON = обычная символьная строка.

2. Передача бинарных данных в строке JSON элементарна. Даже документацию можно не читать. Я к тому, что конструкторы JSON сами сообразят в что конвертить бинари.

3. @ResourcesJSONArr глазками то осмотреть и миру показать не судьба?

ЗЫ. Для пробы можно передавать 10-15 байт.
Если опыта с MS SQL поболе - можно собрать JSON на стороне сервера и посмотреть как оно должно выглядеть.
Сравнить с тем, что прилетает из вашей проги.

1. Вы прям мир открыли.
2. Приведите пример... в дельфях без перекодировки в base64 или в hex у меня что-то не получается отправить в теле json
3. Зачем лишний мусор.. речь идёт о передачи именно бинарных данных.
...
Рейтинг: 0 / 0
17.07.2019, 12:22
    #39838267
Игорь_UUS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно передать в mssql бинарный файл в JSON
разобрался, вопрос закрыт
...
Рейтинг: 0 / 0
17.07.2019, 12:45
    #39838272
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно передать в mssql бинарный файл в JSON
Модератор: Вообще для дельфей есть отдельный форум: https://www.sql.ru/forum/delphi
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как правильно передать в mssql бинарный файл в JSON / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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