返回首页

gbase数据、南大通用产品文档:GBase8s确定 SQL 语句

更新日期:2024年09月11日

如果直到运行时刻,您才知道要执行什么 SQL 语句,则您可以 DESCRIBE 语句动
态地确定该语句,并使用动态管理结构来保存该语句发送到数据库服务器的或从数据库服
务器接收的任何值。

这些主题包含关于如何动态地确定 SQL 语句的下列信息:
存在什么动态管理结构,以及哪些 SQL 语句访问它们。
如何使用带有动态管理结构的 DESCRIBE 语句。

Add 方法 (String, GBaseDbType)
给定参数名和数据类型,把指定的GBaseParameter 对象加入到
GBaseParameterCollection 中。

语法
[Visual Basic]
Public Function Add ( _

parameterName As String, _

dbType As GBaseDbType _
) As GBaseParameter
[C#]
public GBaseParameter Add(

string parameterName,

GBaseDbType dbType
)

参数
1) parameterName :参数的名称;
2) dbType :GBaseDbType 的值之一。

返回值
新GBaseParameter 对象的索引。

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


- 304 -

南大通用数据技术股份有限公司

通过方法 getSerial() 和 getSerial8(),GBase 8s JDBC Driver 提供对 GBase 8s SERIAL 和
SERIAL8 数据类型的支持,其为 java.sql.Statement接口实现的一部分。
由于 SERIAL 和 SERIAL8 数据类型没有来自 java.sql.Types 类的向任何 JDBC API 数据
类型的明显映射,因此,您必须将特定于 GBase 8s 的类导入至 Java™ 程序内,以处理
SERIAL 和 SERIAL8 列。要这么做,请将下列导入行添加至 Java 程序:
import com.gbasedbt.jdbc.*;
在 INSERT 语句之后,
请使用 getSerial() 方法,
来返回自动插入至表的 SERIAL 列内的序
列值。
在 INSERT 语句之后,
请使用 getSerial8() 方法,
来返回自动插入至表的 SERIAL8 列
内的序列值。如果任何下列条件为真,则这些方法返回 0:

最后的语句不是 INSERT 语句。

正在插入至其内的表不包含 SERIAL 或 SERIAL8 列。

尚未执行 INSERT 语句。
在 CREATE TABLE 语句之后,如果执行 getSerial() 或 getSerial8() 方法,则该方法缺省地
返回 1(假定新表包括一个 SERIAL 或 SERIAL8 列)。如果该表不包含 SERIAL 或
SERIAL8 列,则该方法返回 0。如果指定新的序列起始编号,则该方法返回该编号。
如果您想要使用 getSerial() 和 getSerial8() 方法,
则必须将 Statement 或 PreparedStatement 对
象强制转型为 IfmxStatement,
其为特定于GBase 8s 的 Statement 接口的实现。
下列示例展示
如何执行该强制转型:
cmd = "insert into serialTable(i) values (100)";
stmt.executeUpdate(cmd);
System.out.println(cmd+"...okay");
int serialValue = ((IfmxStatement)stmt).getSerial();
System.out.println("serial value: " + serialValue);

GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 109 -

如果您想要将连续的序列值插入至 SERIAL 或 SERIAL8 数据类型的列内,则请为
INSERT 语句中的 SERIAL 或 SERIAL8 列指定值 0。当将该列设置为 0 时,数据库服务
器指定仅次于最高值的值。
要获取关于 GBase 8s SERIAL 和 SERIAL8 数据类型的更详尽信息,
请参阅
《GBase 8s SQL
指南:参考》 和《GBase 8s SQL 指南:语法》 。