返回首页

gbase数据、南大通用产品文档:GBase8sifx_lo_create() 函数

更新日期:2024年09月11日

ifx_lo_create() 函数创建新的智能大对象,并打开它用于在 GBase 8s ESQL/C 程序内
的访问。

语法


GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 776 -
mint ifx_lo_create(LO_spec, flags, LO_ptr, error)
ifx_lo_create_spec_t *LO_spec;
mint flags;
ifx_lo_t *LO_ptr;
mint *error;
LO_spec
指向包含新的智能大对象的存储特征的 LO-specification 结构的指针。
flags
指定打开新的智能大对象的模式的整数。
LO_ptr
指向新的智能大对象的 LO-pointer 结构的指针。
error
指向包含 ifx_lo_create() 设置的错误代码的整数的指针。

用法

ifx_lo_create() 函数执行下列步骤来创建新的智能大对象:
它创建 LO-pointer 结构,并将指向此结构的指针赋予 LO_ptr 参数。
它为来自 LO-specification 结构 LO_spec 的智能大对象指定存储特征。
如果 LO-specification 结构未包含存储特征(相关联的字段为空),则对于新的
智能大对象,ifx_lo_create() 使用来自继承层级的存储特征。如果 LO_spec 指针为空,则
ifx_lo_create() 函数还使用系统指定的存储特征。
它以 flags 参数指定的访问模式打开新的智能大对象。
在 ifx_lo_create() 成功地完成之后,
flags 参数的标志值指示该智能大对象的模式。

效值包括所有 access-mode 常量,如 表 1所示。它返回标识打开的智能大对象的 LO 文
件描述符。

重要:
在您调用 ifx_lo_create() 函数之前,
您必须调用 ifx_lo_def_create_spec() 函数
来初始化 LO-specification 结构。

GBase 8s 使用调用 ifx_lo_create() 建立的缺省的参数,
来确定后续的操作是否导致对
应的智能大对象锁定和/或记录日志。

每一 ifx_lo_create() 调用都隐含地与当前连接相关联。当此连接关闭时,数据库服务
器释放任何列都不引用的智能大对象(引用计数为零的那些)。

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

如果 ifx_lo_create() 函数成功,则它返回有效的 LO 文件描述符(LO_fd)。然后,
您可使用 LO_fd 来标识在后续的函数调用中,哪个智能大对象来访问,诸如 ifx_lo_read()
和 ifx_lo_write()。然而,LO_fd 仅在当前的数据库连接内有效。

返回代码
有效的 LO 文件描述符
函数成功地创建并打开新的智能大对象。
-1
函数不成功;请检测该错误的详尽错误代码。

功能说明
事件触发器,提供了关于触发程序的信息,必须有super 权限才能查看该表。
表结构说明
表5- 240 表结构信息说明:





GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1476
TRIGGER_CATALOG
触发器登记目录,NULL
TRIGGER_VC
触发器所在虚拟集群名
TRIGGER_SCHEMA
触发器所在数据库名
TRIGGER_NAME
触发器名称
EVENT_MANIPULATION
触发器事件类型[INSERT|DELETE|UPDATE]
EVENT_OBJECT_CATALOG
触发器相关表登记目录,NULL
EVENT_OBJECT_SCHEMA
触发器相关表所在数据库
EVENT_OBJECT_TABLE
触发器相关表名
ACTION_ORDER
触发器在同一个表中所有类似的触发器顺序位
置,恒为0,因为同一个表不可能有超过一个具



EVENT_MANIPULATION

ACTION_TIMING 的触发器
ACTION_CONDITION
恒为NULL
ACTION_STATEMENT
触发器主体,即触发器被触发时的执行状态,
使用UTF-8 编码
ACTION_ORIENTATION
值恒为"ROW"
ACTION_TIMING
触发器在触发事件前还是后被触发,
[BEFORE|AFTER]
ACTION_REFERENCE_OLD_TA
BLE
恒为NULL
ACTION_REFERENCE_NEW_TA
BLE
恒为NULL
ACTION_REFERENCE_OLD_RO
W
旧的列鉴别器[OLD]
ACTION_REFERENCE_NEW_RO
W
新的列鉴别器[NEW]
CREATED
创建时间
SQL_MODE
sql 的执行模式
DEFINER
创建触发器的用户
CHARACTER_SET_CLIENT
创建时session 使用的字符集
COLLATION_CONNECTION
创建时session 使用的校验集
DATABASE_COLLATION
相关数据库的校验集

函数说明
CURRENT_TIMESTAMP 和CURRENT_TIMESTAMP()等价于NOW()。
示例

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
781
示例1:使用CURRENT_TIMESTAMP 函数返回“日期+时间”。
gbase> SELECT CURRENT_TIMESTAMP FROM dual;
+---------------------+
| CURRENT_TIMESTAMP
|
+---------------------+
| 2020-04-01 14:23:02 |
+---------------------+
1 row in set
示例2:使用CURRENT_TIMESTAMP()函数返回“日期+时间”。
gbase> SELECT CURRENT_TIMESTAMP() FROM dual;
+---------------------+
| CURRENT_TIMESTAMP() |
+---------------------+
| 2020-04-01 14:23:21 |
+---------------------+
1 row in set
示例3:使用NOW()函数返回“日期+时间”。
gbase> SELECT NOW() FROM dual;
+---------------------+
| NOW()
|
+---------------------+
| 2020-04-01 14:23:47 |
+---------------------+
1 row in set