如何在Rails上使用ruby在SQL Server中存储文件

时间:2018-10-07 14:14:32

标签: ruby-on-rails sql-server ruby ruby-on-rails-5

我正在尝试将文件二进制数据存储在SQL Server VARBINARY(MAX)列中。

下面是我存储数据的红宝石代码

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 ruby​​gem连接到SQL Server。

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·µÇª

0 个答案:

没有答案