返回首页

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

更新日期:2024年09月11日



sword GCIDirPathColArrayToStream(
GCIDirPathColArray *dpca,
GCIDirPathCtx *dpctx,

GCIDirPathStream *dpstr,
GCIError *errhp,
ub4 rowcnt,
ub4 rowoff
);

从列数组格式转换为直接路径流格式。



GBase 8s GCI 接口使用指南

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

参数
输入
/输出


dpca
输入
直接路径列数组句柄
dpctx
输入
正在加载的对象的直接路径上下文句柄
dpstr
输入/输出
直接路径流句柄
errhp
输入
错误信息句柄, 该接口调用失败时, 错误信息会存在该句柄上
rowcnt
输入
列数组中的行数
rowoff
输入
列数组中的起始索引

如果执行成功, 返回GCI_SUCCESS,否则返回GCI_ERROR。

获取或设置一个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;
}

数据库服务器创建并维护 sysmaster 数据库。它类似于数据库的系统目录,数据库的系统
目录在 GBase 8s SQL 参考指南 中描述。正如数据库服务器管理的每个数据库的系统目录
对数据库中的对象和特权进行跟踪那样,
每个数据库服务器的 sysmaster 数据库对有关数
据库服务器的信息进行跟踪。
sysmaster 数据库包含了系统监视接口 ( SMI ) 表。SMI 表提供了有关数据库服务器的状
态信息。可以查询这些表以识别处理瓶颈、确定资源的使用、跟踪会话或数据库服务器的
活动等等。本章对这些表进行描述,它们与普通表稍有不同。
警告: 数据库服务器依赖于 sysmaster 数据库。请不要更改 sysmaster 中任何表和表中
的任何信息。这种更改可能会导致不可预料和削弱性能的结果。
数据库服务器在其初始化磁盘空间时创建 sysmaster 数据库。
数据库服务器创建具有未缓
冲的日志记录的数据库。您不能删除数据库或其中的任何表,并且不能关闭日志记录。
作为在 UNIX™ 上的用户 Gbasedbt 或者 Windows™ 上的 Gbasedbt-Admin 组的成员,
您可
以在 sysmaster 数据库创建 SPL 例程。(也可以在 sysmaster 中的表上创建触发器,但
数据库服务器从不执行那些触发器。)

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 177 -
联接 sysmaster 中的多个表可能返回不一致的结果,
因为数据库服务器在联接过程中并不
锁定这些表。可以将 sysmaster 表与其他数据库中的表进行联接。然而,要将 sysmaster
表与非日志记录数据库中的表进行联接,首先要使非日志记录数据库成为当前数据库。
buildsmi 脚本
当第一次启动数据库服务器时,它运行名为 buildsmi 的脚本,该脚本位于 etc 目录。该
脚本构建支持 SMI 的数据库和表。
数据库服务器需要大约 1750 页逻辑日志空间可用页以
构建 sysmaster 数据库。
如果接收到指示您运行 buildsmi 脚本的错误信息,那么可能在数据库构建 SMI 数据库、
表和视图时发生了问题。使用 buildsmi 时,将删除然后重新创建现有的 sysmaster 数据
库。
在确保创建数据库过程中 sysmaster 数据库没有相关联接后,该脚本才能被执行。而且在
UNIX™ 上该脚本必须以 gbasedbt 用户的身份运行,在 Windows™上该脚本必须以
Gbasedbt-Admin 群组成员的身份运行。例如:若有一个调度程序的任务在 buildsmi 脚本
开始时运行,且该程序试图去联接 sysmaster 中的任意一表,那么脚本就会运行失败。
buildsmi 脚本运行中产生的错误信息(在 UNIX )会被写入 /tmp/buildsmi.out 文件中,
或者写入 %GBASEDBTDIR%\etc\buildsmi_out 文件中
(在 Windows 上)

%GBASEDBTSERVER%
是 GBase 8s 实例的名称。
bldutil.sh 脚本
在第一次初始化数据库服务器时,在 UNIX™ 上运行名为 bldutil.sh 的脚本,或者在
Windows™ 上运行名为 bldutil.bat 的脚本。
该脚本构建了sysutils 数据库。
如果它失败,
数据库服务器会在 tmp 目录中创建一个输出文件。该输出文件在 UNIX 为
bldutil.process_id ,在 Windows 上为 bldutil.out 。该输出文件中的消息反映脚本执
行过程中发生的错误。