Я пытаюсь сохранить двоичные данные файла в столбце 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·µÇª