【问题标题】:How to insert binary data into sql server using node-mssql如何使用 node-mssql 将二进制数据插入 sql server
【发布时间】:2015-12-20 17:48:23
【问题描述】:

我正在使用 node/request 模块下载图像,并且试图弄清楚如何使用 node/mssql 模块将该图像插入到 sql server 中的 varbinary 字段中。到目前为止,我已经尝试将强制转换放入插入语句中,将正文(缓冲区)转换为字符串,但都无济于事。我试图弄清楚如何在不使用存储过程的情况下做到这一点。

谢谢!

【问题讨论】:

  • 您是否尝试将其保留为Bufferdocs for node-mssql 注意 Buffersql.VarBinary 被认为是相关的。
  • 您能分享一下您用于查询的代码吗?发生了什么表明它“不起作用”?您收到任何错误吗?

标签: sql-server node.js node-request node-mssql


【解决方案1】:

我已从磁盘读取 .png 图像文件作为“二进制”,然后将其放入“二进制”缓冲区,然后能够使用准备好的语句将其插入 SQL Server DB:

fs.readFile(<path-to-file>, 'binary', function(err, fileData) {
    var binBuff = new Buffer(fileData, 'binary');
    var ps = new sql.PreparedStatement(<connection>);
    ps.input('theImage', sql.VarBinary);
    ps.prepare('INSERT INTO ImageTable (BinaryImage) VALUES (@theImage)', function (err) {
        // check err
        ps.execute({theImage: binBuff}, function(err, records) {
            // check err
            ps.unprepare(function(err) {
                // check err
                // If no error, it's been inserted!
            });
        });
    });
});

【讨论】:

  • 是的,对我来说效果很好。我可以从数据库中检索图像并在网页中很好地呈现。
  • 谢谢,可以了,音频文件怎么样?实际上我试图录制音频二进制文件并想作为远程 url 播放。
猜你喜欢
  • 2012-07-01
  • 1970-01-01
  • 2010-10-15
  • 1970-01-01
  • 1970-01-01
  • 2010-11-10
  • 1970-01-01
  • 2014-04-11
  • 1970-01-01
相关资源
最近更新 更多