使用Python pyodbc将数据插入MS SQL Server时出错[错误42000]

2024-10-01 09:24:39 发布

您现在位置:Python中文网/ 问答频道 /正文

fo = open("C:\Program Files\NPKI\yessign\User\SignCert.der","rb")
sssd = fo.read()
std = "SignCert.der"
cursor.execute("SELECT * FROM NPKIInf WHERE nSeqNum=5")

cursor.execute("insert into NPKIInf(nSeqNum, nFileName, nBinary) values ('7', '" + std + "', '" + sssd +"')")
cnxn.commit()

下面是错误代码:

^{pr2}$

和数据库的连接很好,我也试着插入硬数据,比如

cursor.execute("insert into NPKIInf(nSeqNum,nFileName,nBinary) values('7','test','test'")

还是不行。在

以下是DB表的信息:

 CREATE TABLE [dbo].[NPKIInf](
           [nSeqNum] [smallint] NOT NULL,
           [nFileName] [nchar](50) NULL,
           [nBinary] [varbinary](max) NULL,
           [nHspName] [nchar](50) NULL,
CONSTRAINT [PK_NPKIInf] PRIMARY KEY CLUSTERED
(
           [nSeqNum] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

我做错什么了?提前谢谢。在


Tags: executeonnullcursorstdoffprimaryfo
2条回答

错误消息显示您的(单)引号不成对。在

[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]문자열 '0???뜝詵? *낷놑 '의 따옴표가 짝이 맞지 않습니다. (105) (SQLExecDirectW); [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]'0???뜝詵? *낷놑 ' 근처의 구문이 잘못되었습니다. (102)

sssd中必须至少有一个引号,这会损坏直接构建的查询语句。在

当我在SQL Server上运行以下操作时,您似乎没有转换为正确的数据类型:

insert into NPKIInf(nSeqNum,nFileName,nBinary) values('8','test', 'test')

当我失败时:

^{pr2}$

至于实际的查询,请看一下:Inserting pyodbc.Binary data (BLOB) into SQL Server image column

它应该能回答你的问题

相关问题 更多 >