返回首页

gbase数据、南大通用产品文档:GBase8s

更新日期:2024年09月11日

DBDATE setting must be at least four characters and no longer than six characters
由于传递到数据库服务器的 DBDATE 格式具有太多或太少的字符,会发生此错误。
要修复此文件,
请使用用户手册验证 DBDATE 格式字符串,
确保年、
月、
日以及 DBDATE 字
符串的每个部分都正确标识。

获取或设置一个SQL 语句或存储过程,用于将记录插入到数据集。

语法
[Visual Basic]
Public Property InsertCommand As GBaseCommand



GBase 8a 程序员手册ADO.NET 篇
南大通用数据技术股份有限公司

- 193 -

Get

Set
[C#]
public GBaseCommand InsertCommand {get; set;}

注释
在Update 时,如果这个属性没有设置且主键信息没有在DataSet 中,这时
用户设置了SelectCommand 属性并使用GBaseCommandBuilder,那么
InsertCommand 可以自动生成。而后任何用户没有设置的命令会由
GBaseCommandBuilder 生成,这个生成逻辑需要在DataSet 中有主键信息。

示例
下面的例子中演示如何创建GBaseDataAdapter 对象并设置SelectCommand
和InsertCommand 属性。
[Visual Basic]
Public Shared Function CreateCustomerAdapter(conn As
GBaseConnection) _ As GBaseDataAdapter
Dim da As GBaseDataAdapter = New GBaseDataAdapter()
Dim cmd As GBaseCommand
Dim parm As GBaseParameter
' Create the SelectCommand.
cmd = New GBaseCommand("SELECT * FROM gstable WHERE id=?"_
&"id AND name=?name", conn)
cmd.Parameters.Add("?id", GBaseDbType.VarChar, 15)
cmd.Parameters.Add("?name", GBaseDbType.VarChar, 15)
da.SelectCommand = cmd
' Create the InsertCommand.
cmd = New GBaseCommand("INSERT INTO gstable (id,name) "_
&"VALUES(?id, ?name)", conn)
cmd.Parameters.Add( "?id", GBaseDbType.VarChar, 15, "id" )
cmd.Parameters.Add( "?name", GBaseDbType.VarChar, 15, "name" )
da.InsertCommand = cmd

GBase 8a 程序员手册ADO.NET 篇


- 194 -

南大通用数据技术股份有限公司
Return da
End Function

[C#]
Public Static GBaseDataAdapter
CreateCustomerAdapter(GBaseConnection conn)
{
BaseDataAdapter da = new GBaseDataAdapter();
GBaseCommand cmd;
GBaseParameter parm;
// Create the SelectCommand.
cmd = new GBaseCommand("SELECT * FROM gstable WHERE id=?id AND
name=?name", conn);
cmd.Parameters.Add("?id", GBaseDbType.VarChar, 15);
cmd.Parameters.Add("?name", GBaseDbType.VarChar, 15);
da.SelectCommand = cmd;
// Create the InsertCommand.
cmd = new GBaseCommand("INSERT INTO gstable (id,name) VALUES
(?id,?name)", conn);
cmd.Parameters.Add("?id", GBaseDbType.VarChar, 15, "id" );
cmd.Parameters.Add("?name",
GBaseDbType.VarChar,
15,
"name"
);
da.InsertCommand = cmd;
return da;
}

说明
当集群遇到简单查询且带有LIMIT,或“LIMIT...OFFSET”时,会按优化步骤执行,
不产生汇总表。
示例
SELECT * FROM t WHERE a > 0 LIMIT 1 OFFSET 2;
此语句优化的策略为,查询结果为了定位出LIMIT 后面的位置,需要首先计算出
COUNT(*),因此在计算COUNT(*)的过程时,执行器将以并发方式发送到各
节点执行,改变了以往在各节点上串行执行的方式,提高了查询性能。
备注
简单查询的定义包含如下SQL 语句场景:

查询为单表查询且没有子查询

查询没有DISTINCT、聚合函数或OLAP 函数

查询没有GROUP BY, ORDER BY 子句

非SELECT INTO OUTFILE 查询