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

Использую 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
Как правильно передать в mssql бинарный файл в JSON
    #39838169
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Осподе, милосердный! Какой бред.

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

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

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

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

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

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

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

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

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


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