返回首页

gbase数据、南大通用产品文档:GBase8s指定角色

更新日期:2024年09月11日

或者,
DBA 可使用 CREATE ROLE 语句定义一个角色,
并使用 GRANT 和 REVOKE 语
句来将角色分配给用户或取消,以及授予和撤销角色权限。例如:
GRANT engineer TO nmartin;
需要 SET ROLE 语句来激活非缺省的角色。
要获取关于角色和权限的更多信息,
请参阅 访
问管理策略 和 对数据库级对其对象的权限。要获取关于 GRANT 和 REVOKE 语句的更
多信息,请参阅《GBase 8s 数据库设计和实现指南》。要获取关于这些语句的语法的更多
信息,请参阅《GBase 8s SQL 指南:语法》。

当 GBase 8s ESQL/C 应用程序使用 DECLARE 和 OPEN 语句来执行游标时,每一
语句涉及在应用程序与数据库服务器之间的消息请求的往返过程。“优化
OPEN-FETCH-CLOSE”特性(OPTOFC)减少往返过程两次,如下:
GBase 8s ESQL/C 节省一次往返过程,因为它不作为分开的命令发送 OPEN 语句。
当 GBase 8s ESQL/C 执行 OPEN 语句时,它不打开该游标。反而,它保存在 OPEN
语句的 USING 子句中提供了的任何输入值。
当 GBase 8s ESQL/C 执行初始的 FETCH 语
句时,它与该 FETCH 语句一道发送此输入值。数据库服务器打开该游标,并返回在此游
标中的第一个值。

GBase 8s ESQL/C 节省第二次往返过程,
因为它不作为分开的命令发送 CLOSE 语句。

当数据库服务器达到打开游标的最后的值时,在它将最后的值发送至客户机应用程序
之后,它自动地关闭该游标。因此,GBase 8s ESQL/C 不需要将 CLOSE 语句发送至数据
库服务器。

重要: GBase 8s ESQL/C 不将 CLOSE 语句发送至数据库服务器。然而,如果您包
括该 CLOSE 语句,则不生成错误。

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 444 -

对 OPTOFC 的限制
对于启用的 OPTOFC 特性,存在下列限制:
您仅可对准备了其 SELECT 语句的选择游标使用 OPTOFC 特性。
例如,
OPTOFC 特
性为下列选择游标减少网络往返过程:
/* Valid select cursor for OPTOFC optimization */
EXEC SQL prepare sel_stmt 'select * from customer';
EXEC SQL declare sel_curs cursor for sel_stmt;

OPTOFC 特性消除作为分开的步骤的 OPEN 语句的执行。因此,不返回打开该游标
可能生成的任何错误条件,直到初始的 FETCH 之后为止。
当关闭静态游标时,不释放游标。
随同启用的 OPTOFC 特性,
当关闭静态游标或动态游标时,
不释放它们。
由于 GBase
8s ESQL/C 实际上不将 CLOSE 语句发送至数据库服务器,因此,不隐式地释放游标。对
游标的后续的 OPEN 和 FETCH 实际上打开同一个游标。
如果更改了表
(如果删除了、

改了或重命名了它)

则数据库服务器仅在此时会注意到,
在此情况下,
它生成错误
(-710)


随同禁用的 OPTOFC 特性,当关闭静态游标时,释放它。当 ESQL/C 达到静态游标
的 CLOSE 语句,
它实际上发送消息来关闭该游标,
并释放与此游标相关联的内存。
然而,
当关闭动态游标时,不隐式地释放它们。

对于在至数据库服务器的途中延迟的 SQL 语句,GET DIAGNOSTICS 语句不奏效。
例如,
下列 SQL 语句序列中,
GET DIAGNOSTICS 返回 0,
指示成功,
即使延迟该 OPEN,
直到首次访存为止:
EXEC SQL declare curs1 …
EXEC SQL open curs1
EXEC SQL get diagnostic
EXEC SQL fetch curs1
启用 OPTOFC 特性
OPTOFC 环境变量启用 OPTOFC 特性。

您可将下列值指定给 OPTOFC 环境变量。
1
此值启用 OPTOFC 特性。当您指定此值时,您为该应用程序的每个线程中的每个游
标启用 OPTOFC 特性。

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 445 -

0
此值为该应用程序的所有线程禁用 OPTOFC 特性。

OPTOFC 环境变量的缺省值为 0。如果您从 shell 设置此环境变量,则请确保在您启
用 ESQL/C 应用程序之前设置它。

在 UNIX(TM) 操作系统上,您可在应用程序中以 putenv() 系统调用来设置 OPTOFC
(只要您的系统支持 putenv() 函数)

例如,
下列对 putenv() 的调用启用 OPTOFC 特性:
putenv("OPTOFC=1");

在 Windows(TM) 环境中,您可使用 ifx_putenv() 函数。

以 putenv() 或 ifx_putenv(),
您可为每一连接或在每一线程内激活或去激活 OPTOFC
特性。您必须在建立连接之前调用 putenv() 或 ifx_putenv() 函数。

重要: GBase 8s 实用程序不支持 IFX_AUTOFREE、OPTOFC 和
IFX_DEFERRED_PREPARE 环境变量。请仅以 GBase 8s ESQL/C 客户机应用程序来使用
这些环境变量。

Unable to build a Date object based on localized date string representation
在 CHAR 、
VARCHAR 或 LVARCHAR 列中指定的日期字符串表示形式不正确,
日期对
象不能基于年、月和日的值建立。
如果这些环境变量中的任何一个设置为连接数据库 URL 字符串或属性列表中的值,则请
验证日期字符串表示形式符合 DBDATE 或 GL_DATE 日期格式。如果指定
了 DBDATE 或 GL_DATE ,但是在连接数据库 URL 字符串或属性列表中显式设置
了 CLIENT_LOCALE 或 DB_LOCALE,
则请验证日期字符串表示形式与 JDK short 缺省格
式(DateFormat.SHORT)相匹配。