尝试使用TwinCat 2插入SQL数据库时出现错误262145

问题描述

我正在尝试将数据从TwinCat 2程序插入sql Server数据库中。激活触发器后,出现以下错误:262145

Error codes

racer_name : STRING(256);
racer_name := 'CS1';

FB_FormatStringC1_lap_db(
    sFormat:='INSERT INTO demo VALUES (%s,%D,%D)',arg1:= F_STRING(racer_name),arg2:= F_DWORD(C1_Lap_Minutes),arg3:= F_DWORD(C1_Lap_Seconds),bError=>,nErrId=>,sOut=>sInsertStringC1_lap_db );


FB_DBRecordInsertC1_lap_db(
    sNetID:=,hDBID:=1,sInsertCmd:=sInsertStringC1_lap_db,bExecute:=  dummy,tTimeout:=T#30s,bBusy=> bBusyInsert,bError=> bErrInsert,nErrID=> nErridInsert,ssqlState=> );

Db design

与服务器的通信正在运行,因为我尝试仅导入整数,并且可以正常工作。

也许我没有正确格式化字符串变量?

谢谢。

解决方法

这是您的查询:

INSERT INTO demo VALUES (%S,%D,%D)

如果表有4个,您将提供3列用于插入。假设id是自动生成的,则可以通过枚举目标列来明确地不提供它:

INSERT INTO demo (racer,minuteslap,secondslap) VALUES (%S,%D)

这是为什么始终在insert语句中枚举目标列是最佳实践的原因之一。