如何处理 python 中的此类 C++ 错误

How to handle this kind of c++ error in python

我的代码串有问题:

self.db.bulk_insert('input', lines, columns_numbers = (2,3))

其中 db 是我对 pymssql 的包装。这是 class:

的方法
def bulk_insert(self, table_name:str, dataset:Sequence, columns_numbers:Sequence=None):
    self._connection.bulk_copy(table_name, dataset, columns_numbers)

其中 _connection 只是 pymssql 连接。

当我在 运行 时,数据正在插入,但在控制台中出现

free(): invalid next size (fast)

并且代码不会更进一步。

Table和我插入的数据,很简单:

CREATE TABLE input (
  id BIGINT IDENTITY(1,1) PRIMARY KEY,
  ipn VARCHAR(12) NOT NULL,
  info_id INT NOT NULL FOREIGN KEY REFERENCES info(id),
  fetched BIT DEFAULT 0,
  inserted DATETIME DEFAULT CURRENT_TIMESTAMP,
  updated DATETIME DEFAULT NULL
);

lines 的元素看起来像:('1234567890', Decimal('1'))

为什么会发生,如何解决?

谢谢!

所以,我发现了问题。 在那之前 bulk_insert 我提出了数据库请求以获取要插入的 ID。在 table 中它 int,但是 returns 就像我在问题中提到的 Decimal('1')

所以,问题出在我插入的数据类型(十进制)上,因为 table 类型是 int。