我正在使用node/request模块下载图像,并且我正在尝试弄清楚如何使用node/mssql模块将该图像插入到sql server中的varbinary字段中。到目前为止,我已经尝试将强制转换放入插入语句中,将主体(缓冲区)转换为字符串,但都无济于事。我正在尝试找出如何在不使用存储过程的情况下执行此操作。
谢谢!
最佳答案
我从磁盘读取了一个 .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!
});
});
});
});
关于sql-server - 如何使用node-mssql将二进制数据插入sql server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34383938/