Как сохранить файл в SQL Server, используя ruby ​​на рельсах - PullRequest
0 голосов
/ 07 октября 2018

Я пытаюсь сохранить двоичные данные файла в столбце VARBINARY (MAX) сервера SQL.

Ниже приведен мой код ruby ​​для хранения данных.

blobData = File.read(file_path)
query = "UPDATE SSAttachments SET blobData='#{blobData}' WHERE id=#{resp['id']}"
@client.execute(query);

Ошибка в строке нижеexecute

ArgumentError: string contains null byte
        from app/models/client.rb:211:in `execute'

Я использую TinyTds rubygem для подключения к SQL-серверу.

blobData имеет огромное содержимое, часть которого выглядит так

%PDF-1.6
%âãÏÓ
1 0 obj
<</Metadata 2 0 R/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<</Length 3718/Subtype/XML/Type/Metadata/Filter/Crypt>>stream
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.4-c005 78.150055, 2013/09/11-19:51:17        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:xmp="http://ns.adobe.com/xap/1.0/"
            xmlns:pdf="http://ns.adobe.com/pdf/1.3/"


<?xpacket end="w"?>
endstream
endobj
10 0 obj
<</Filter/FlateDecode/Length    1760>>stream
Äo\Áb[Tµ0ó#ZôdܗǨWmÄP‘ÐL4‡åš *U1=Ÿy¬¢]«9ÞAà|oÎÝùÚFåÇ·Öf ¿àÙþòh¹Iž¥Þ_.ÖŸùži­?¯çõ<?A³¤j·m‘ÿKçéIU-`.ÕÊ|!ÏÐ=¦„8‚øÊ«XXF‘b¢—3Ÿ
    9—jóè—]‚Ïj²àk4h?¼õÀ¤Óa/zf¸  ¸M»™Ù¥  ”?êVò!o~cöì©Ç¹caþßyKnkf`äY¿‰a¯Í+ò†Y~tõéÝ‚.oYí/œ¬|áÀV<‰°‚ª‘&Þ(„•G·µÇª
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...