【发布时间】:2014-05-23 20:30:03
【问题描述】:
我正在尝试使用执行块将多行插入到 firebird 表中。但我收到一条错误消息,提示“术语”无效。
"Dynamic SQL Error nSQL error code = -104 Token unknown - line 1, column 5 term"
这是我用于插入的 C# 代码
connection.Open();
string insertData = "set term ^ ; execute block as begin;";
foreach (dataPoint dataPointInsert in dataPointList)
{
insertData += string.Format(" insert into data (trip_id, trip_type, longitude, latitude, speed, date_time, heading, valid) values ('{0}','{1}','{2}','{3}',{4},'{5}','{6}',{7});",
dataPointInsert.GUID, dataPointInsert.tripType, dataPointInsert.longitude, dataPointInsert.latitude, dataPointInsert.speed, dataPointInsert.dateTime, dataPointInsert.heading, Convert.ToInt32(dataPointInsert.valid));
}
insertData += " end^";
var createCommand = new FbCommand(insertData, connection);
createCommand.ExecuteNonQuery();
我试图在 firebird 网站 here 上复制该示例。
我使用的是 firebird 2.5.2 版和 Firebird ADO.NET Data provider 4.1.5.0
【问题讨论】:
-
不,我没有。你认为命令中的换行符有必要吗?
-
看起来是这个stackoverflow.com/questions/16293135/…的复制品
-
@Graymatter 不是:
set term根本不是 firebird 语法的一部分(它确实存在于 isql 等客户端工具中)