无法使用Azure函数将值写入数据库

时间:2018-08-13 15:19:30

标签: sql azure azure-sql-database

我正在尝试使用Azure函数将数据写入Azure SQL服务器。 我已经成功建立了三个管道,但是在这个管道中失败了。

我正在尝试使用以下方式向数据库写一行:

cursor.execute("insert into beamSetupResults values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", val[0], val[1], val[2], val[3], val[4], val[5], val[6], val[7], val[8], val[9], val[10], val[11])

这些值是(而且我在解码响应时打印这些值,因此将其保证为字符串):

['800112', '', '2016-08-08T15:11:05Z', 'pass', 'Al-13kV-3', 13, 80000, 132.0092315673828, 79936.953125, '', False, True]

我得到如下错误:

[Error] Exception while executing function: Functions.TimeTrigger_BeamSetup. Microsoft.Azure.WebJobs.Script: TypeError: expected bytes, str found

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\Repos\azure-python-siteextensions\source_packages\python.3.5.2\tools\Lib\encodings\utf_16_le.py", line 16, in decode
SystemError: <built-in function utf_16_le_decode> returned a result with an error set 
ith an error set

The above exception was the direct cause of the following exception:

SystemError: decoding with 'utf-16le' codec failed (SystemError: <built-in function utf_16_le_decode> returned a result with an error set)

此外,我很高兴这些值与我的数据库表匹配。 在收到此错误之前,它已经工作了好几天。 我已经在本地测试了这些代码,并且所有代码都能正常工作。

我正在使用pyodbc软件包,驱动程序是13。

有什么想法吗?非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

只需升级您的pyodbc软件包版本,一切都会很好。