首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Firebird执行语句

Firebird执行语句
EN

Stack Overflow用户
提问于 2014-05-23 20:30:03
回答 2查看 1.7K关注 0票数 1

我试图使用execute块将多行插入到firebird表中。但是我说“术语”是无效的,这是个错误。

代码语言:javascript
复制
"Dynamic SQL Error nSQL error code = -104 Token unknown - line 1, column 5 term"

下面是用于插入的C#代码

代码语言:javascript
复制
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网站这里上复制这个例子。

我正在使用firebird版本2.5.2和Firebird ADO.NET数据提供程序4.1.5.0

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-24 05:44:18

您不需要(实际上不应该,因为它是客户端命令,Firebird不理解它)必须使用set term,因为FbCommand和Firebird本身(在协议中)只能在“批处理”中执行一个查询。

所以只创建你的execute block语句,你就没事了。

票数 2
EN

Stack Overflow用户

发布于 2015-04-26 05:51:49

你不必使用固定的术语^;

只需用^结束代码

如果必须将项设置为^,则将其与set项一起放回;^

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23837893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档