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

Error 262145 while trying to insert in SQL db with TwinCat 2

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

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=> );

与服务器的通信是 运行,因为我试图只导入整数并且它没有任何问题。

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

提前致谢。

这是您的查询:

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

您要插入 3 列,而您的 table 有 4 列。假设 id 是自动生成的,您可以 明确地 不通过枚举提供它目标列:

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

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