如何处理 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。
我的代码串有问题:
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。