我使用ODBC有以下ruby数据库插入。连接很好。
dbh.do( "INSERT INTO prowlerRunningResults(ProwlerDriver, SourceURL, Title, DestinationURL, FileSource, FileType, FileName, LastModified, FileSize, HashMD5, HashSHA256, ImageBinary)
VALUES (#{driver}, #{source}, #{title}, 'NA', #{imgSrc}, #{fileType}, #{fileName}, #{lastModified}, #{fileSize}, #{md}, #{sha}, #{binary} )" )
然而,我得到Error message: 37000 (102) [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near ','.
考虑到所涉及的逗号数量,这可能会更有帮助。不过,看了看我看起来很简单就看不出问题!!
所以问题:
编辑: 可能是DB Schema的问题。 物理DB将FileSize作为int。所以我更新了代码以插入#{fileSize.to_i},但ImageBinary是一个varbinary(MAX) - 也许我可以将文件作为HEX写入字符串?你觉得怎么样?
答案 0 :(得分:0)
要进行调试,请尝试查看扩展字符串。你可以放,记录或加注。
sql = "INSERT INTO prowlerRunningResults(ProwlerDriver, SourceURL, Title, DestinationURL, FileSource, FileType, FileName, LastModified, FileSize, HashMD5, HashSHA256, ImageBinary)
VALUES (#{driver}, #{source}, #{title}, 'NA', #{imgSrc}, #{fileType}, #{fileName}, #{lastModified}, #{fileSize}, #{md}, #{sha}, #{binary} )"
puts sql
logger.info sql
raise sql
您可能忘记了某些字符串数据的单引号。