尝试使用 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
语句中枚举目标列是最佳做法的原因之一。
我正在尝试从 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
语句中枚举目标列是最佳做法的原因之一。