. DCI 函数¶
2.1. DCIInitialize¶
函数原型:
sword DCIInitialize(ub4 mode, dvoid *ctxp, dvoid *(*malocfp)(dvoid *ctxp, size_t size), dvoid *(*ralocfp)(dvoid *ctxp, dvoid *memptr, size_t newsize), void (*mfreefp)(dvoid *ctxp, dvoid *memptr) )
功能描述:
初始化 DCI 全局环境,DCI 会在这个函数中初始化内部的全局变量和加载一些配置信息,这是使用 DCI 与数据库建立连接必须的第一步。
参数说明:
-
mode(输入)
初始化模式。取值如下:
-
DCI_DEFAULT:缺省模式
-
DCI_THREADED:多线程模式
-
-
ctxp(输入/输出)
用户自定义的内存回调程序指针,目前不使用(仅用于和 Oracle 保持兼容)
-
malocfp(输入)
用户自定义的内存分配程序指针,目前不使用(仅用于和 Oracle 保持兼容)
-
ralocfp(输入)
用户自定义的重分配内存程序指针,目前不使用(仅用于和 Oracle 保持兼容)
-
memptr(输入/输出)
指向内存块的指针,目前不使用(仅用于和 Oracle 保持兼容)
-
mfreefp(输入)
用户自定义的内存释放程序指针,目前不使用(仅用于和 Oracle 保持兼容)
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
该函数在每个应用中只需调用一次。
2.2. DCIEnvCreate¶
目录
1.60. DCIDirPathColArrayEntrySet¶
1.61. DCIDirPathColArrayToStream¶
1.64. DCIDirPathColArrayReset¶
1.72. DCIIntervalGetDaySecond¶
1.73. DCIIntervalGetYearMonth¶
函数原型:
sword DCIEnvCreate (DCIEnv **envp, ub4 mode, const void *ctxp, const void *(*malocfp)(void *ctxp, size_t size), const void *(*ralocfp)(void *ctxp, void *memptr, size_t newsize), const void (*mfreefp)(void *ctxp, void *memptr))
功能描述:
分配并初始化 DCI 环境句柄,此函数必须在 DCIInitialize 之后调用。
参数说明:
-
envp(输入)
输出一个生成的环境句柄指针,应用可以在环境句柄上分配其它类型的句柄。
-
mode(输入)
初始化模式。取值如下:
-
DCI_DEFAULT:缺省模式
-
DCI_THREADED:多线程模式
-
-
ctxp(输入/输出)
用户自定义的内存回调程序指针,目前不使用(仅用于和 Oracle 保持兼容)
-
malocfp(输入)
用户自定义的内存分配程序指针,目前不使用(仅用于和 Oracle 保持兼容)
-
ralocfp(输入)
用户自定义的重分配内存程序指针,目前不使用(仅用于和 Oracle 保持兼容)
-
memptr(输入/输出)
指向内存块的指针,目前不使用(仅用于和 Oracle 保持兼容)
-
mfreefp(输入)
用户自定义的内存释放程序指针,目前不使用(仅用于和 Oracle 保持兼容)
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
当调用该函数初始化一个环境句柄以后,必须调用 DCIHandleFree 来释放这个句柄。需要注意的是,当环境句柄分配以后,只允许在上面分配一个上下文句柄,并只允许建立一个连接;但是在连接建立以后,允许分配多个语句句柄。
2.3. DCIEnvInit¶
函数原型:
sword DCIEnvInit(DCIEnv **envp, ub4 mode, size_t xtramem_sz, dvoid **usrmempp)
功能描述:
功能与DCIEnvCreate相同。分配并初始化 DCI 环境句柄,此函数必须在 DCIInitialize 之后调用。
参数说明:
-
envp(输出)
输出一个生成的环境句柄指针,应用可以在环境句柄上分配其它类型的句柄。
-
mode(输入)
初始化模式。取值如下:
-
DCI_DEFAULT:缺省模式
-
DCI_THREADED:多线程模式
-
-
xtramem_sz(输入)
用户自定义分配内存的大小,目前不使用(仅用于和 Oracle 保持兼容)
-
usrmempp(输出)
指向用户自定义分配内存的指针,目前不使用(仅用于和 Oracle 保持兼容)
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
当调用该函数初始化一个环境句柄以后,必须调用 DCIHandleFree 来释放这个句柄。需要注意的是,当环境句柄分配以后,只允许在上面分配一个上下文句柄,并只允许建立一个连接;但是在连接建立以后,允许分配多个语句句柄。
2.4. DCIHandleAlloc¶
函数原型:
sword DCIHandleAlloc(dvoid *parenth, dvoid **hndlpp, CONST ub4 type, CONST size_t xtramem_sz, dvoid **usrmempp)
功能描述:
分配并初始化各类应用句柄。
参数说明:
-
parentth(输入)
一个环境句柄的指针,从该句柄上可以分配的其它类型的句柄。
-
hndlpp(输出)
返回新分配的句柄指针。
-
type(输入)
指定要从环境句柄上分配的句柄类型。可以分配的句柄类型有:
-
DCI_HTYPE_SERVER
分配一个 DCIServer 结构句柄(连接句柄),该句柄上存放建立的连接句柄。
-
DCI_HTYPE_SESSION
分配一个 DCISession 结构句柄(连接信息句柄),该句柄上存放建立连接所用的登录信息,比如登录的口令和密码。
-
DCI_HTYPE_SVCCTX
分配一个 DCISvcCtx 结构句柄(上下文句柄),该句柄上存放的是连接句柄和其它类型句柄的关联信息。当该句柄调用 DCITransCommit 或 DCITransRollback 函数提交或回滚时将会影响该句柄所在环境句柄上的所有语句句柄 SQL 操作。
-
DCI_HTYPE_STMT
分配一个 DCIStmt 结构句柄(语句句柄),分配该句柄时,环境句柄上必须已经分配了连接句柄并已经建立了连接。可以在一个环境句柄上分配多个语句句柄,每个语句句柄可以进行独立的 SQL 操作。
-
DCI_HTYPE_DESCRIBE
分配一个 DCIDescribe 结构句柄(描述对象句柄),该句柄可以用来描述某个数据库中的对象,如表,存储过程等。通过这个句柄,可以得到对象的具体信息,如表结构中的每个列信息,存储过程中的每个参数信息。
-
DCI_HTYPE_ERROR
分配一个 DCIError 结构句柄(错误描述句柄),该句柄存放每次 DCI 操作失败的原因,通过调用 DCIErrorGet 函数可以获取到这些信息。
-
DCI_HTYPE_DIRPATH_CTX
分配一个 DCIDirPathCtx 结构句柄(直接文件操作环境上下文)
-
DCI_HTYPE_DIRPATH_COLUMN_ARRAY
分配一个 DCIDirPathColArray 结构句柄(数据数组描述符)
-
DCI_HTYPE_DIRPATH_STREAM
分配一个 DCIDirPathStream 结构句柄(数据流描述符)
-
-
xtramem_sz(输入)
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
-
usrmempp(输出)
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
需要注意的是调用该函数分配句柄成功以后,必须调用 DCIHandleFree 来释放这个句柄。当该函数调用失败时,失败信息会存放在环境句柄中,可以通过调用 DCIErrorGet 接口并指定句柄类型为 DCI_HTYPE_ENV 来获取失败的原因。
2.5. DCIHandleFree¶
函数原型:
sword DCIHandleFree(void *hndlp, ub4 type );
功能描述:
释放已分配的各类句柄,用于结束当前会话、断开与数据库的连接后的句柄清理。
参数说明:
-
hndlp(输入)
需要释放的句柄。
-
type(输入)
指定需要释放的句柄类型。参见 DCIHandleAlloc 函数说明的 type 参数。
返回值:
如果释放成功,返回 DCI_SUCCESS,失败返回 DCI_ERROR,如果 hndlp 指向的句柄无效,返回 DCI_INVALID_HANDLE。
注释:
DCIHandleFree 函数需要和 DCIHandleAlloc 函数配合使用。
2.6. DCIServerVersion¶
函数原型:
sword DCIServerVersion(void *hndlp, DCIError *errhp, DciText *bufp, ub4 bufsz, ub4 hndltype)
功能描述:
返回Kingbase服务器版本号。
参数说明:
-
hndlp(输入)
DCISvcCtx上下文句柄。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
bufp(输出)
服务器版本信息。
-
bufsz(输入)
服务器版本信息bufp的长度(字节)。
-
hndltype(输入)
hndlp的句柄类型:DCI_HTYPE_SVCCTX
返回值:
如果释放成功,返回 DCI_SUCCESS,失败返回 DCI_ERROR,如果 hndlp 指向的句柄无效,返回 DCI_INVALID_HANDLE。
2.7. DCIServerAttach¶
函数原型:
sword DCIServerAttach (DCIServer *srvhp, DCIError *errhp, CONST DciText *dblink, sb4 dblink_len, ub4 mode)
功能描述:
将一个数据库服务挂载到一个指定的连接句柄上。
参数说明:
-
srvhp(输入)
连接句柄指针,该句柄将会跟输入的服务名相关联。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
dblink(输入)
要关联的数据库服务名。该服务名需要在DCI的配置文件中配置。
-
dblink_len(输入)
数据库服务名的长度。
-
mode(输入)
附加模式,取值如下:
-
DCI_DEFAULT:缺省模式
-
DCI_THREADED:多线程模式
-
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
调用该函数以后,可以调用 DCIServerDetach 函数解除连接和服务名之间的关联。
2.8. DCIServerDetach¶
函数原型:
sword DCIServerDetach (DCIServer *srvhp, DCIError *errhp, ub4 mode)
功能描述:
解除连接句柄和数据库服务名之间的关联。
参数说明:
-
srvhp(输入)
连接句柄,该句柄将会被解除与数据库服务名的关联。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
mode(输入)
附加模式,取值如下:
-
DCI_DEFAULT:缺省模式
-
DCI_THREADED:多线程模式
-
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.9. DCISessionBegin¶
函数原型:
sword DCISessionBegin(DCISvcCtx *svchp, DCIError *errhp, DCISession *usrhp, ub4 credt, ub4 mode)
功能描述:
使用登录信息在指定的连接类句柄上打开与数据库服务的连接。
参数说明:
-
svchp(输入)
指定打开连接的上下文,在这之前,上下文必须已经被关联了连接句柄。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
usrhp(输入)
登录信息句柄,执行登录之前,该句柄上必须已经设置了登录的用户名和口令。
-
credt(输入)
登录的方式,目前只支持 DCI_CRED_RDBMS – 通过用户名和口令与数据库服务建立起连接。
-
mode(输入)
连接模式,取值如下:
-
DCI_DEFAULT:缺省模式
-
DCI_THREADED:多线程模式
-
返回值:
如果执行成功,返回DCI_SUCCESS,否则返回DCI_ERROR。
注释:
当调用该函数与数据库服务建立连接以后,连接上的操作都处在非自动提交状态,在每次执行 SQL 以后,你可能要根据实际的需要通过调用 DCITransCommit 或 DCITransRollback 来提交或回滚你的 SQL 操作;另外,当调用此方法建立连接以后,必须通过调用 DCISessionEnd 来结束这个连接。
2.10. DCISessionEnd¶
函数原型:
sword DCISessionEnd (DCISvcCtx *svchp, DCIError *errhp, DCISession *usrhp, ub4 mode)
功能描述:
结束 DCISessionBegin 函数中连接类句柄与数据库服务之间的连接。
参数说明:
-
svchp(输入)
指定断开连接的上下文。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
usrhp(输入)
登录信息句柄。
-
mode(输入)
连接模式,取值如下:
-
DCI_DEFAULT:缺省模式
-
DCI_THREADED:多线程模式
-
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
在解除关联之前,如果连接上存在未提交的事务,那么解除连接后将全部回滚。
2.11. DCILogon¶
函数原型:
sword DCILogon (DCIEnv *envhp, DCIError *errhp, DCISvcCtx **svchp, CONST DciText *username, ub4 uname_len, CONST DciText *password, ub4 passwd_len, CONST DciText *dbname, ub4 dbname_len)
功能描述:
根据数据库服务名、用户名和密码,登录到一个指定的数据库服务上,并初始化相关的上下文句柄。
参数说明:
-
envhp(输入)
操作所在的环境句柄,如果未指定上下文句柄,那么该函数在建立登录连接以后,会在该句柄上自动分配一个上下文句柄。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
svchp(输入/输出)
如果指定的上下文句柄非空,那么在登录以后,会自动设置相关的连接句柄到该句柄上。如果指定的上下文句柄为空,那么 DCI 会自动分配一个上下文句柄输出,这个上下文句柄不需要通过调用 DCIHandleFree 来释放;当应用调用 DCILogoff 以后,DCI 会自动释放这个句柄。
-
username(输入)
登录的用户名。
-
uname_len(输入)
登录的用户名长度。
-
password(输入)
登录的口令。
-
passwd_len(输入)
登录的口令长度。
-
dbname(输入)
数据库服务名。
-
dbname_len(输入)
数据库服务名长度。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
需要注意的是,这种方式连接建立以后,连接上的操作都处在非自动提交状态,在每次执行 SQL 以后,你可能要根据实际的需要通过调用 DCITransCommit 或 DCITransRollback 来提交或回滚你的SQL操作;另外,当连接建立以后,需要通过调用 DCILogoff 来断开连接。
2.12. DCILogon2¶
函数原型:
sword DCILogon2(DCIEnv *envhp, DCIError *errhp, DCISvcCtx **svchp, CONST DciText *username, ub4 uname_len, CONST DciText *password, ub4 passwd_len, CONST DciText *dbname, ub4 dbname_len, ub4 mode)
功能描述:
根据数据库服务名、用户名和密码,并根据传入的连接创建模式登录到一个指定的数据库服务上,并初始化相关的上下文句柄。
参数说明:
-
envhp(输入)
操作所在的环境句柄,如果未指定上下文句柄,那么该函数在建立登录连接以后,会在该句柄上自动分配一个上下文句柄。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
svchp(输入/输出)
如果指定的上下文句柄非空,那么在登录以后,会自动设置相关的连接句柄到该句柄上。如果指定的上下文句柄为空,那么 DCI 会自动分配一个上下文句柄输出,这个上下文句柄不需要通过调用 DCIHandleFree 来释放;当应用调用 DCILogoff 以后,DCI 会自动释放这个句柄。
-
username(输入)
登录的用户名。
-
uname_len(输入)
登录的用户名长度。
-
password(输入)
登录的口令。
-
passwd_len(输入)
登录的口令长度。
-
dbname(输入)
数据库服务名。
-
dbname_len(输入)
数据库服务名长度。
-
mode(输入)
数据库连接的创建模式。
DCI_DEFAULT – 等效于调用DCILogon
DCI_LOGON2_STMTCACHE – 语句缓冲模式
DCI_LOGON2_CPOOL / DCI_CPOOL –连接池模式
DCI_LOGON2_SPOOL –会话池模式
DCI_LOGON2_PROXY –授权代理模式
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
需要注意的是,该函数目前只支持以DCI_DEFAULT模式创建连接。
2.13. DCILogoff¶
函数原型:
sword DCILogoff(DCISvcCtx *svchp, DCIError *errhp)
功能描述:
断开通过 DCILogon 与服务器建立的连接。
参数说明:
-
svchp(输入)
要断开连接的上下文句柄,该连接必须是通过 DCILogon 建立的。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
在解除连接之前,如果连接上存在未提交的事务,那么解除连接后将全部回滚。
2.14. DCIStmtPrepare¶
函数原型:
sword DCIStmtPrepare (DCIStmt *stmtp, DCIError *errhp, DciText *stmt, ub4 stmt_len, ub4 language, ub4 mode)
功能描述:
准备一条 SQL 语句,以便随后调用 DCIStmtExecute 来执行。
参数说明:
-
stmtp(输入)
用来准备执行的语句句柄。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
stmt(输入)
准备执行的 SQL 语句。
-
stmt_len(输入)
stmt参数中 SQL 语句的长度。
-
Language
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
-
mode(输入)
准备模式,取值如下:
-
DCI_DEFAULT:缺省模式
-
DCI_THREADED:多线程模式
-
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
在调用该函数成功准备一条 SQL 以后,可以多次调用 DCIStmtExecute 执行这条 SQL 语句。如果在该函数执行以后,对SQL上的参数或结果集进行了绑定操作,那么,只有在下一次调用该函数以后,这些绑定信息才会被解除。SQL 语句的格式可以是单条 SQL,也可以是多条 SQL 组合成的一条语句。
2.15. DCIStmtExecute¶
函数原型:
sword DCIStmtExecute (DCISvcCtx *svchp, DCIStmt *stmtp, DCIError *errhp, ub4 iters, ub4 rowoff, CONST DCISnapshot *snap_in, DCISnapshot *snap_out, ub4 mode)
功能描述:
执行通过 DCIStmtPrepare 准备后的语句。
参数说明:
-
svchp(输入)
执行所用的上下文句柄。
-
stmtp(输入)
用来执行的语句句柄。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
iters(输入)
执行后影响的行数。对非查询语句,该参数表明一次性向服务器发送的数据行数,这个时候,该值必须大于等于1;对于查询语句,该参数表明一次性从服务器获取的结果集行数。应用程序必须在绑定行集时,必须申请足够多的内存来接收返回的行集。
-
rowoff(输入)
行集偏移。对于查询语句,该参数将被忽略;对于非查询语句,该参数表明向服务器发送多行数据时的起始偏移行,从 0 开始计算。
-
snap_in
保留参数,目前不使用(仅用于和Oracle保持兼容)
-
snap_out
保留参数,目前不使用(仅用于和Oracle保持兼容)
-
mode(输入)
执行的模式,可以是下面几种类型:
-
DCI_DESCRIBE_ONLY – 描述模式
通过该模式描述准备好的语句(并不执行语句),从而得到语句的结果集元信息,应用程序可以通过调用 DCIAttrGet 函数来获取这些元信息,详细解释请参看下面将要提到的 DCIAttrGet 函数说明。另外,该模式只对DQL语句有效,其他类型的语句在该模式下执行会报错。
-
DCI_EXACT_FETCH – 提取模式
当执行完以后,将会从结果集中提交 iters 参数指定的结果集行数到绑定的缓冲区。
-
DCI_COMMIT_ON_SUCCESS – 自动提交模式
当 SQL 执行以后,会自动提交执行的 SQL。
-
DCI_DEFAULT – 默认模式
等价于 DCI_EXACT_FETCH。
-
返回值:
如果执行成功,但是在提取结果集时发生警告性的错误(字符串截断、转换溢出等),那么返回 DCI_SUCCESS_WITH_INFO,如果执行成功,但是结果集返回的行数小于 iters 参数所指定的行数,那么返回 DCI_NO_DATA,其它正常情况下返回 DCI_SUCCESS,执行出错则返回 DCI_ERROR。
注释:
当函数返回 DCI_NO_DATA时,并不是表示没有结果集返回,而是返回的结果集行数小于 iters 参数指定的行数,并且结果集游标已经到达末尾。可以调用 DCIAttrGet 函数查看属性 DCI_ATTR_ROW_COUNT 的描述来获取结果集中总共被提取的行数。
2.16. DCIStmtFetch¶
函数原型:
sword DCIStmtFetch (DCIStmt *stmtp, DCIError *errhp, ub4 nrows, ub2 orientation, ub4 mode)
功能描述:
获取 SQL 生成的结果集中的行集。当执行一条查询以后,可以多次调用该函数来提取结果集中的数据行,直至该函数返回 DCI_NO_DATA,说明已获得结果集中全部的数据行。
参数说明:
-
stmtp(输入)
用来提取结果集的语句句柄。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
nrows(输入)
一次操作需要获取的行数。
-
orientation(输入)
行集提取的方式,可以有以下几种方式:
-
DCI_FETCH_NEXT – 从当前游标位置向下进行提取操作。
-
DCI_FETCH_FIRST – 从结果集的第一行开始向下进行提取操作。
-
DCI_FETCH_LAST – 从结果集的最后一行开始向下提取操作。
-
DCI_FETCH_PRIOR – 从结果集的当前游标位置向上进行提取操作。
-
-
mode(输入)
提取模式,取值如下:
-
DCI_DEFAULT:缺省模式
-
DCI_THREADED:多线程模式
-
返回值:
如果执行成功,但是在提取结果集时发生警告性的错误(字符串截断、转换溢出等),那么返回 DCI_SUCCESS_WITH_INFO,如果执行成功,但是结果集返回的行数小于 iters 参数所指定的行数,那么返回 DCI_NO_DATA,其它正常情况下返回 DCI_SUCCESS,执行出错则返回 DCI_ERROR。
注释:
当函数返回 DCI_NO_DATA 时,并不是表示没有结果集返回,而是返回的结果集行数小于 iters 参数指定的行数,并且结果集游标已经到达末尾。可以调用 DCIAttrGet 函数查看属性 DCI_ATTR_ROW_COUNT 的描述来获取结果集中总共被提取的行数。
2.17. DCIStmtFetch2¶
函数原型:
sword DCIStmtFetch2(DCIStmt *stmtp, DCIError *errhp, ub4 nrows, ub2 orientation, sb4 fetchOffset, ub4 mode)
功能描述:
获取 SQL 生成的结果集中的行集。当执行一条查询以后,可以多次调用该函数来提取结果集中的数据行,直至该函数返回 DCI_NO_DATA,说明已获得结果集中全部的数据行。
参数说明:
-
stmtp(输入)
用来提取结果集的语句句柄。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
nrows(输入)
一次操作需要获取的行数。
-
orientation(输入)
行集提取的方式,可以有以下几种方式:
-
DCI_DEFAULT – 同DCI_FETCH_NEXT,从当前游标位置向下进行提取操作
-
DCI_FETCH_NEXT – 从当前游标位置向下进行提取操作。
-
DCI_FETCH_FIRST – 从结果集的第一行开始向下进行提取操作。
-
DCI_FETCH_LAST – 从结果集的最后一行开始向下提取操作。
-
DCI_FETCH_PRIOR – 从结果集的当前游标位置向上进行提取操作。
-
DCI_FETCH_ABSOLUTE – 根据fetchoffset变量指定的绝对位置获取指定的行。
-
DCI_FETCH_RELATIVE – 根据fetchoffset变量指定的相对位置获取指定的行。
-
-
fetchoffset(输入)
配合orientation变量使用的位移量,用于指定当前行的位置。
-
mode(输入)
提取模式,取值如下:
-
DCI_DEFAULT:缺省模式
-
DCI_THREADED:多线程模式
-
返回值:
如果执行成功,但是在提取结果集时发生警告性的错误(字符串截断、转换溢出等),那么返回 DCI_SUCCESS_WITH_INFO,如果执行成功,但是结果集返回的行数小于 iters 参数所指定的行数,那么返回 DCI_NO_DATA,其它正常情况下返回 DCI_SUCCESS,执行出错则返回 DCI_ERROR。
注释:
当函数返回 DCI_NO_DATA 时,并不是表示没有结果集返回,而是返回的结果集行数小于 iters 参数指定的行数,并且结果集游标已经到达末尾。可以调用 DCIAttrGet 函数查看属性 DCI_ATTR_ROW_COUNT 的描述来获取结果集中总共被提取的行数。
2.18. DCITransStart¶
函数原型:
sword DCITransStart(DCISvcCtx *svchp, DCIError *errhp, uword timeout, ub4 flags)
功能描述:
开启事务。
参数说明:
-
svchp(输入)
要提交的上下文句柄。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
timeout
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
-
flags
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.19. DCITransCommit¶
函数原型:
sword DCITransCommit(DCISvcCtx *svchp, DCIError *errhp, ub4 flags)
功能描述:
提交(commit)SQL 的执行动作。
参数说明:
-
svchp(输入)
要提交的上下文句柄。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
flags
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
需要注意的是,如果当前上下文句柄所属的环境句柄被分配了多个语句句柄,那么这种提交操作将会对所有的语句句柄产生影响。
2.20. DCITransRollback¶
函数原型:
sword DCITransRollback(DCISvcCtx *svchp, DCIError *errhp, ub4 flags)
功能描述:
回滚(rollback)SQL 的执行动作。
参数说明:
-
svchp(输入)
要回滚的上下文句柄。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
flags
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
需要注意的是,如果当前上下文句柄所属的环境句柄被分配了多个语句句柄,那么这种提交操作将会对所有的语句句柄产生影响。
2.21. DCIBindByName¶
函数原型:
sword DCIBindByName(DCIStmt *stmtp, DCIBind **bindp, DCIError *errhp, CONST DciText *placeholder, sb4 placeh_len, dvoid *valuep, sb4 value_sz, ub2 dty, dvoid *indp, ub2 *alenp, ub2 *rcodep, ub4 maxarr_len, ub4 *curelep, ub4 mode)
功能描述:
按参数名称绑定 SQL 语句中的参数。
参数说明:
-
stmtp(输入)
绑定影响的语句句柄。
-
bindp(输出)
输出的绑定信息句柄。可以通过该句柄调用 DCIBindArrayOfStruct 函数来设定该参数每行的间隔长度。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
placeholder(输入)
绑定的参数名称。
-
placeh_len(输入)
参数名称的长度。
-
valuep(输入)
参数值缓冲区指针。
-
value_sz(输入)
参数类型单个值的大小。
-
dty(输入)
参数的数据类型。请参看DCI数据类型介绍。
-
indp(输入)
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
-
alenp(输入)
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
-
rcodep(输入)
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
-
maxarr_len(输入)
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
-
curelep(输入)
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
-
mode(输入)
绑定模式,取值如下:
-
DCI_DEFAULT:缺省模式
-
DCI_THREADED:多线程模式
-
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
在 SQL 语句中使用冒号+参数名(:NAME)表示一个待绑定的参数,绑定动作需要在 SQL 语句的准备之后,执行之前进行。需要注意的是,如果在执行的时候,iters 参数的数值必须大于 1,并且没有显式调用 DCIBindArrayOfStruct 函数指定每个参数值的间隔大小,那么参数间隔就由 value_sz 参数的数值来决定。
2.22. DCIBindByPos¶
函数原型:
sword DCIBindByPos(DCIStmt *stmtp, DCIBind **bindp, DCIError *errhp, ub4 position, dvoid *valuep, sb4 value_sz, ub2 dty, dvoid *indp, ub2 *alenp, ub2 *rcodep, ub4 maxarr_len, ub4 *curelep, ub4 mode)
功能描述:
按参数在 SQL 语句中出现的位置进行绑定。
参数说明:
-
stmtp(输入)
绑定影响的语句句柄。
-
bindp(输出)
输出的绑定信息句柄。可以通过该句柄调用 DCIBindArrayOfStruct 函数来设定该参数每行的间隔长度。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
position(输入)
参数在 SQL 中出现的位置,从 1 开始记数。
-
valuep(输入)
参数值缓冲区指针。
-
value_sz(输入)
参数类型单个值的大小。
-
dty(输入)
参数的数据类型。请参看 DCI 数据类型介绍。
-
indp(输入)
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
-
alenp(输入)
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
-
rcodep(输入)
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
-
maxarr_len(输入)
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
-
curelep(输入)
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
-
mode(输入)
绑定模式,取值如下:
-
DCI_DEFAULT:缺省模式
-
DCI_THREADED:多线程模式
-
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
在 SQL 语句中使用冒号+参数名(:NAME)表示一个待绑定的参数,绑定动作需要在 SQL 语句的准备之后,执行之前进行。该函数在绑定参数时,将忽略参数的名称,按它们在 SQL 中的位置一对一的绑定。需要注意的是,如果在执行的时候,iters 参数的数值大于 1 并且没有显式调用 DCIBindArrayOfStruct 函数指定每个参数值的间隔大小,那么参数间隔就由 value_sz 参数的数值来决定。
2.23. DCIBindArrayOfStruct¶
函数原型:
sword DCIBindArrayOfStruct(DCIBind *bindp, DCIError *errhp, ub4 pvskip, ub4 indskip, ub4 alskip, ub4 rcskip)
功能描述:
指定参数绑定时,每个参数项中值的间隔大小,以字节计算。
参数说明:
-
bindp(输入)
参数绑定结构指针,它来自 DCIBindByName 或 DCIBindByPos 的参数绑定函数输出。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
pvskip(输入)
参数值下一个值的间隔长度。在多行绑定时,可以通过指定该参数来找到下一行值所在的位置。
-
indskip(输入)
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
-
alskip(输入)
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
-
rcskip(输入)
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
该函数需要在调用执行动作之前调用。
2.24. DCIDefineByPos¶
函数原型:
sword DCIDefineByPos(DCIStmt *stmtp, DCIDefine **defnp, DCIError *errhp, ub4 position, dvoid *valuep, sb4 value_sz, ub2 dty, dvoid *indp, ub2 *rlenp, ub2 *rcodep, ub4 mode)
功能描述:
按位置来指定查询返回结果集中每一列的存储空间。
参数说明:
-
stmtp(输入)
要绑定的语句句柄。
-
defnp(输出)
绑定结构输出指针,可以通过使用该参数调用 DCIDefineArrayOfStruct 来指定该列每个值之间的间隔大小。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
position(输入)
绑定结果集中的列所在位置,从 1 开始计数。
-
valuep(输入)
存放获取值的缓冲区指针。
-
value_sz(输入)
单个该类型值的大小。
-
dty(输入)
绑定的数据类型。
-
indp(输入)
指示符缓冲区,如果结果集中存在 NULL 值,那么 DCI 会回填该缓冲区,把对应的位置置为 -1,其它情况下置 0;如果在绑定的时候,未设置该指示符缓冲区,但是获取的结果中又存在 NULL 值,结果集提取时会返回 DCI_ERROR 的错误。
-
rlenp(输入)
返回值长度指示缓冲区,如果返回值未发生截断,那么该缓冲区中的值就是实际的返回值长度;如果返回值在获取的时候发生了截断,那么该缓冲区的值就是未截断以前的长度;如果返回值是空值,该缓冲区的值将被置为 0。
-
rcodep(输入)
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
-
mode(输入)
绑定模式,取值如下:
-
DCI_DEFAULT:缺省模式
-
DCI_THREADED:多线程模式
-
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
需要注意的是,该函数必须在 DCIStmtPrepare 之后调用,但是在调用 DCIStmtFetch 之前,可以随时动态的改变绑定信息。
2.25. DCIDefineArrayOfStruct¶
函数原型:
sword DCIDefineArrayOfStruct (DCIDefine *defnp, DCIError *errhp, ub4 pvskip, ub4 indskip, ub4 rlskip, ub4 rcskip)
功能描述:
用来指定行集中每一列中每行值存储位置间隔的大小,以字节计算。
参数说明:
-
defnp(输入)
绑定结构指针,该参数是通过调用 DCIDefineByPos 后输出的。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
pvskip(输入)
每个值间隔的大小,在一次性返回多行时,DCI 会跟据这个大小来回填每一行的值。
-
indskip(输入)
空值指示符的间隔大小。
-
rlskip(输入)
返回值长度指示符的间隔大小。
-
rcskip
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
需要注意的是,如果要求一次性返回多行时,没有用该函数指定每行值的间隔大小,那么将会按 DCIDefineByPos 函数中 value_sz 参数的数值来作来默认的间隔大小。
2.26. DCIDescriptorAlloc¶
函数原型:
sword DCIDescriptorAlloc(CONST dvoid *parenth, dvoid **descpp, CONST ub4 type, CONST size_t xtramem_sz, dvoid **usrmempp)
功能描述:
为描述符分配存储空间。
参数说明:
-
parenth(输入)
环境句柄指针。
-
descpp(输出)
存储描述符指针。
-
type(输入)
描述符类型,目前支持:
DCI_DTYPE_LOB – 大字段描述。
DCI_DTYPE_PARAM – 参数描述。
DCI_DTYPE_DATE – 日期描述。
DCI_DTYPE_TIME – 时间描述。
DCI_DTYPE_TIME_TZ – 带时区的时间描述。
DCI_DTYPE_TIMESTAMP – 时间戳描述。
DCI_DTYPE_TIMESTAMP_LTZ – 带本地时区的时间戳描述。
DCI_DTYPE_TIMESTAMP_TZ – 带时区的时间戳描述。
DCI_DTYPE_INTERVAL_DS – 时间间隔日和秒描述。
DCI_DTYPE_INTERVAL_YM – 时间间隔年和月描述。
-
xtramem_sz
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
-
usrmempp
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
通过该函数生成的描述符句柄需要通过调用 DCIDescriptorFree 来释放。
2.27. DCIDescriptorFree¶
函数原型:
sword DCIDescriptorFree(dvoid *descp, CONST ub4 type)
功能描述:
释放 DCIDescriptorAlloc 生成的描述符。
参数说明:
-
descp(输入)
要释放的描述符指针。
-
type(输入)
描述符类型,目前支持:
DCI_DTYPE_LOB – 大字段描述。
DCI_DTYPE_PARAM – 参数描述。
DCI_DTYPE_DATE – 日期描述。
DCI_DTYPE_TIME – 时间描述。
DCI_DTYPE_TIME_TZ – 带时区的时间描述。
DCI_DTYPE_TIMESTAMP – 时间戳描述。
DCI_DTYPE_TIMESTAMP_LTZ – 带本地时区的时间戳描述。
DCI_DTYPE_TIMESTAMP_TZ – 带时区的时间戳描述。
DCI_DTYPE_INTERVAL_DS – 时间间隔日和秒描述。
DCI_DTYPE_INTERVAL_YM – 时间间隔年和月描述。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
该函数只能释放通过 DCIDescriptorAlloc 生成的描述符。
2.28. DCILobAssign¶
函数原型:
sword DCILobAssign(DCIEnv *envhp, DCIError *errhp, const DCILobLocator *src_locp, DCILobLocator **dst_lobcpp)
功能描述:
将一个LobLocator声明给另一个LobLocator,该函数作用后,这两个LobLocator指向了同一个Lob,但LobLocator内部是拷贝,不是引用。
参数说明:
-
envhp(输入)
环境句柄指针。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
src_locp(输入)
有效的非空LobLocator指针,将该LobLocator的值付给dst_loccp。
-
dst_lobcpp(输出)
有效的非空指向LobLocator地址的指针, src_locp的LobLocator的值被赋给dst_locpp指向的LobLocator。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.29. DCILobAppend¶
函数原型:
sword DCILobAppend(DCISvcCtx *svchp, DCIError *errhp, DCILobLocator *dst_locp, DCILobLocator *src_locp)
功能描述:
将一个LobLocator指向的Lob值追加到另一个LobLocator指向的Lob值。
参数说明:
-
svchp(输入)
上下文句柄指针。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
dst_locp(输出)
非空的目的LobLocator指针,该指针的Lob类型必须与src_locp的Lob类型相同,且追加后,dst_locp指向的Lob值不能超出Kingbase允许的最大值,即2GB。
-
src_locp(输入)
非空的源LobLocator指针。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.30. DCILobCopy¶
函数原型:
sword DCILobCopy(DCISvcCtx *svchp, DCIError *errhp, DCILobLocator *dst_locp, DCILobLocator *src_locp, oraub8 amount, oraub8 dst_offset, oraub8 src_offset)
功能描述:
将一个LobLocator的Lob值的一部分,拷贝到另一个LobLocator,Lob类型必须相同。
参数说明:
-
svchp(输入)
上下文句柄指针。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
dst_locp(输出)
非空有效的目的LobLocator指针。
-
src_locp(输入)
非空有效的源LobLocator指针。
-
amount(输入)
从src_locp的指向的Lob值拷贝的字节长度。
-
dst_offset(输入)
dst_locp指向的LobLocator的偏移量(从头算起),如果dst_offset超过了Lob本身的长度,则LobLength到dst_offset这部分被写入空格(Clob)或者0(Blob)。
-
src_offset(输入)
src_locp指向的LobLocator的偏移量(从头算起)。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.31. DCILobEnableBuffering¶
函数原型:
sword DCILobEnableBuffering(DCISvcCtx *svchp, DCIError *errhp, DCILobLocator *locp)
功能描述:
开启LobLacotor缓存功能。已经开启了缓存功能的LobLocator,再次开启的则返回错误。
参数说明:
-
svchp(输入)
上下文句柄指针。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
locp(输入)
有效非空的LobLocator指针。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.32. DCILobDisableBuffering¶
函数原型:
sword DCILobDisableBuffering(DCISvcCtx *svchp, DCIError *errhp, DCILobLocator *locp)
功能描述:
关闭Lob缓存功能,关闭缓存功能,并不能显式的更新LobLocator,必须显式的调用DCILobFlushBuffer()。
参数说明:
-
svchp(输入)
上下文句柄指针。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
locp(输入)
有效非空的LobLocator指针。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.33. DCILobErase¶
函数原型:
sword DCILobErase(DCISvcCtx *svchp, DCIError *errhp, DCILobLocator *locp, ub4 *amount, ub4 offset)
功能描述:
从LobLocator指向Lob的某个偏移开始擦写一定的字节数; 对于Blob,擦写成0,对于Clob,则擦写成空格。
参数说明:
-
svchp(输入)
上下文句柄指针。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
locp(输入)
有效非空的LobLocator指针。
-
amount(输入输出)
输入时,擦写的字节长度;返回了实际擦写的长度,因为实际可擦写的字节长度可能不足,此时返回实际的擦写长度。
-
offset(输入)
从LobLocator指向lob的偏移offset开始。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.34. DCILobFlushBuffer¶
函数原型:
sword DCILobFlushBuffer(DCISvcCtx *svchp, DCIError *errhp, DCILobLocator *locp, ub4 flag)
功能描述:
将缓存Buffer中的值写入Lob字段。必须已经开启了Lob缓存功能,才可以使用该函数。
参数说明:
-
svchp(输入)
上下文句柄指针。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
locp(输入)
有效非空的LobLocator指针。
-
flag(输入)
若传入的为DCI_LOB_BUFFER_FREE则Lob的buffer被释放掉。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.35. DCILobIsEqual¶
函数原型:
sword DCILobIsEqual(DCIEnv *envhp, const DCILobLocator *x, const DCILobLocator *y, boolean *is_equal)
功能描述:
比较两个LobLocator指向的Lob是否相等,只有他们引用的是同一Lob才相等,若其中的LobLocator有为空的,则认为不等。
参数说明:
-
envhp(输入)
环境句柄指针。
-
x(输入)
有效非空的LobLocator指针。
-
y(输入)
有效非空的LobLocator指针。
-
is_equal(输出)
如果相等,则返回TRUE,否则返回FALSE。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.36. DCILobLocatorIsInit¶
函数原型:
sword DCILobLocatorIsInit(DCIEnv *envhp, DCIError *errhp, const DCILobLocator *locp, boolean *is_initialized)
功能描述:
LobLocator是否被初始化。
参数说明:
-
envhp(输入)
环境句柄指针。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
locp(输入)
有效非空的LobLocator指针。
-
is_initialized(输出)
如果已经初始化,则返回TRUE,否则返回FALSE。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.37. DCILobCharSetForm¶
函数原型:
sword DCILobCharSetForm(DCIEnv *envhp, DCIError *errhp, const DCILobLocator *locp, ub1 *csfrm)
功能描述:
返回Loblocator引用的字符集格式。
参数说明:
-
envhp(输入)
环境句柄指针。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
locp(输入)
有效非空的指向LobLocator的指针。
-
csfrm (输出)
返回的LobLocator的字符集格式:
-
SQLCS_IMPLICIT - 默认的字符集格式
-
SQLCS_NCHAR - NCHAR字符集ID
-
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.38. DCILobCharSetId¶
函数原型:
sword DCILobCharSetId(DCIEnv *envhp, DCIError *errhp, const DCILobLocator *locp, ub2 *csid)
功能描述:
返回Loblocator引用的字符集ID。
参数说明:
-
envhp(输入)
环境句柄指针。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
locp(输入)
有效非空的指向LobLocator的指针。
-
csid (输出)
返回的LobLocator的字符集ID,Blob返回的字符集ID为0,因为Binary数据没有字符集信息。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.39. DCILobClose¶
函数原型:
sword DCILobClose(DCISvcCtx *svchp, DCIError *errhp, DCILobLocator *locp )
功能描述:
关闭已经打开的大对象
参数说明:
-
svchp(输入)
服务上下文句柄
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
locp(输入/输出)
有效非空的指向LobLocator的指针。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.40. DCILobCreateTemporary¶
函数原型:
sword DCILobCreateTemporary(DCISvcCtx *svchp, DCIError *errhp, DCILobLocator *locp, ub2 csid, ub1 csfrm, ub1 lobtype, boolean cache, DCIDuration duration)
功能描述:
创建一个临时大对象。
参数说明:
-
svchp(输入)
服务上下文句柄
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
locp(输入/输出)
有效非空的指向LobLocator的指针。
-
csid (输入)
LobLocator的字符集ID,请传入DCI_DEFAULT。
-
csfrm (输入)
大对象的缓冲区字符集。仅用于与Oracle兼容,不支持SQLCS_NCHAR。
-
lobtype (输入)
大对象的类型。支持DCI_TEMP_BLOB或DCI_TEMP_CLOB。
-
cache (输入)
仅用于与Oracle兼容。
-
duration (输入)
仅用于与Oracle兼容。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.41. DCILobFreeTemporary¶
函数原型:
sword DCILobFreeTemporary( DCISvcCtx *svchp, DCIError *errhp, DCILobLocator *locp)
功能描述:
释放一个临时大对象。
参数说明:
-
svchp(输入)
服务上下文句柄
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
locp(输入/输出)
有效非空的指向LobLocator的指针。该Locator指向的大对象在数据库中将被释放。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.42. DCILobIsTemporary¶
函数原型:
sword DCILobIsTemporary(DCIEnv *envhp, DCIError *errhp, DCILobLocator *locp, boolean *is_temporary)
功能描述:
判断一个大对象描述符指向的大对象是不是临时大对象
参数说明:
-
envhp(输入)
环境句柄
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
locp(输入)
有效非空的指向LobLocator的指针。
-
is_temporary(输出)
TRUE表示是临时大对象,FALSE表示不是临时大对象。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.43. DCILobIsOpen¶
函数原型:
sword DCILobIsOpen(DCISvcCtx *svchp, DCIError *errhp, DCILobLocator *locp, boolean *flag )
功能描述:
判断一个大对象描述符是否指向一个已经打开的大对象
参数说明:
-
svchp(输入)
服务上下文句柄
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
locp(输入)
有效非空的指向LobLocator的指针。
-
flag(输出)
TRUE表示大对象已经打开,FALSE表示没有打开。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.44. DCILobTrim¶
函数原型:
sword DCILobTrim(DCISvcCtx *svchp, DCIError *errhp, DCILobLocator *locp, ub4 newlen)
功能描述:
截断Lob的值。
参数说明:
-
svchp(输入)
上下文句柄指针。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
locp(输入)
指向LobLocator的指针, 该Lob的值将被截断。
-
newlen(输入)
截断后的长度,该值必须小于被截断前的长度,按字节计算。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.45. DCILobGetLength¶
函数原型:
sword DCILobGetLength (DCISvcCtx *svchp, DCIError *errhp, DCILobLocator *locp, ub4 *lenp)
功能描述:
返回大字段的大小,按字节计算。
参数说明:
-
svchp(输入)
上下文句柄指针。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
locp(输入)
存储大字段描述符指针。
-
lenp(输出)
返回的大字段长度,按字节计算。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.46. DCILobOpen¶
函数原型:
sword DCILobOpen(DCISvcCtx *svchp, DCIError *errhp, DCILobLocator *locp, ub1 mode )
功能描述:
打开一个大对象
参数说明:
-
svchp(输入)
上下文句柄指针。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
locp(输入/输出)
有效非空的指向LobLocator的指针
-
mode(输入)
DCI_LOB_READONLY / DCI_LOB_READWRITE.
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.47. DCILobRead¶
函数原型:
sword DCILobRead(DCISvcCtx *svchp, DCIError *errhp, DCILobLocator *locp, ub4 *amtp, ub4 offset, dvoid *bufp, ub4 bufl, dvoid *ctxp, sb4 (*cbfp)(dvoid *ctxp, CONST dvoid *bufp, ub4 len, ub1 piece), ub2 csid, ub1 csfrm)
功能描述:
读取某个大字段中指定长度的内容。
参数说明:
-
svchp(输入)
上下文句柄指针。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
locp(输入)
存储大字段描述符指针。
-
amtp(输入/输出)
该参数为输入输出参数,当调用函数时,该参数表明想读取的字节数,当函数执行完以后,DCI 会回填实际读到的字节数。
-
offset(输入)
从大字段开始位置到当前位置的偏移量,以字节为单位;offset取值从1开始。
-
bufp(输入)
存放读到数据的缓冲区指针。
-
bufl(输入)
bufp 参数指向的缓冲区的大小。
-
ctxp
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
-
cbfp
注册的回调,可以在逐段读取中为每段调用。如果是NULL,则为每块返回 OCI_NEED_DATA。
回调函数必须返回OCI_CONTINUE才能继续读取。如果返回任何其他错误代码,则将终止LOB读取。回调采用以下参数:
-
ctxp
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
-
bufp(输入/输出)
片段的缓冲区指针。
-
len(输入)
当前片段在bufp中的长度 (以字节为单位)。
-
piece(输入)
哪一块:OCI_FIRST_PIECE,OCI_NEXT_PIECE 或 OCI_LAST_PIECE
-
-
csid
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
-
csfrm
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
返回值:
如果执行成功,在还有数据未读取完的情况下,返回 DCI_NEED_DATA,如果数据都已经读完则返回 DCI_SUCCESS;执行失败则返回 DCI_ERROR。
注释:
目前只支持连续的只向前读操作。
2.48. DCILobWrite¶
函数原型:
sword DCILobWrite(DCISvcCtx *svchp, DCIError *errhp, DCILobLocator *locp, ub4 *amtp, ub4 offset, dvoid *bufp, ub4 buflen, ub1 piece, dvoid *ctxp, sb4 (*cbfp)(dvoid *ctxp, dvoid *bufp, ub4 *len, ub1 *piece), ub2 csid, ub1 csfrm)
功能描述:
连续的写入内容到一个大字段存储描述符中。
参数说明:
-
svchp(输入)
上下文句柄指针。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
locp(输入)
存储大字段描述符指针。
-
amtp(输入/输出)
该参数为输入输出参数,当调用函数时,该参数表明想写入的字节数,当函数执行完以后,DCI 会回填实际写入的字节数。
-
offset(输入)
从大字段开始位置到当前位置的偏移量,以字节为单位;offset取值从1开始。
-
bufp(输入)
存放要写的数据缓冲区指针。
-
bufl(输入)
bufp 参数指向的缓冲区的大小。
-
piece
正在写入缓冲区的哪一部分。此参数的默认值为OCI_ONE_PIECE,表示将缓冲区写入单个块中。对于分段或回调模式可使用这些值:OCI_FIRST_PIECE,OCI_NEXT_PIECE 和 OCI_LAST_PIECE。
-
ctxp
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
-
cbfp
注册的回调,可以在逐段写入中为每段调用。如果是NULL,则使用标准轮询方法。
回调函数必须返回OCI_CONTINUE才能继续写入。如果返回任何其他错误代码,则LOB写入将终止。回调采用以下参数:
-
ctxp
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
-
bufp(输入/输出)
片段的缓冲区指针,这与传递给OCILobWrite()例程的bufp输入相同。
-
len(输入/输出)
(输入) 缓冲区中数据的长度,(输出) bufp中当前数据的长度 (以字节为单位)。
-
piece(输出)
哪一块:OCI_NEXT_PIECE 或 OCI_LAST_PIECE
-
-
csid
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
-
csfrm
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
你可以调用 DCIStmtFetch 来移动游标,以便对其它行的大字段进行写入操作。
2.49. DCINumberAdd¶
函数原型:
sword DCINumberAdd(DCIError *err, const DCINumber *number1, const DCINumber *number2, DCINumber *result )
功能描述:
计算两个数的和。
参数说明:
-
err(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
number1(输入)
被加数
-
number2(输入)
加数
-
result(输出)
和
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
number1,number2为空时,返回DCI_ERROR。
2.50. DCINumberAssign¶
函数原型:
sword DCINumberAssign(DCIError *err, const DCINumber *from, DCINumber *to )
功能描述:
对Number进行赋值。
参数说明:
-
err(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
from(输入)
源数
-
to(输出)
目的数
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
from, to为空时,返回DCI_ERROR。
2.51. DCINumberDiv¶
函数原型:
sword DCINumberDiv(DCIError *err, const DCINumber *number1, const DCINumber *number2, DCINumber *result )
功能描述:
计算两个数的商。
参数说明:
-
err(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
number1(输入)
分子
-
number2(输入)
分母
-
result(输出)
商
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
number1,number2为空时,或出现除0错误时,返回DCI_ERROR。
2.52. DCINumberIsInt¶
函数原型:
sword DCINumberIsInt(DCIError *err, const DCINumber *number, boolean *result )
功能描述:
判断一个数是不是整数。
参数说明:
-
err(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
number(输入)
待判断数
-
result(输出)
TRUE表示是整数,FALSE表示不是
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
number、result为空时,返回DCI_ERROR。
2.53. DCINumberMod¶
函数原型:
sword DCINumberMod(DCIError *err, const DCINumber *number1, const DCINumber *number2, DCINumber *result )
功能描述:
计算两个数的余数。
参数说明:
-
err(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
number1(输入)
分子
-
number2(输入)
分母
-
result(输出)
结果
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
number1,number2为空时,或者出现除0错误时,返回DCI_ERROR。
2.54. DCINumberMul¶
函数原型:
sword DCINumberMul(DCIError *err, const DCINumber *number1, const DCINumber *number2, DCINumber *result )
功能描述:
计算两个数的积。
参数说明:
-
err(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
number1(输入)
被乘数
-
number2(输入)
乘数
-
result(输出)
积
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
number1,number2为空时,返回DCI_ERROR。
2.55. DCIDescribeAny¶
函数原型:
sword DCIDescribeAny (DCISvcCtx *svchp, DCIError *errhp, dvoid *objptr, ub4 objnm_len, ub1 objptr_typ, ub1 info_level, ub1 objtyp, DCIDescribe *dschp)
功能描述:
描述某个数据库对象,得到其内部构造的详细信息。
参数说明:
-
svchp(输入)
上下文句柄指针。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
objptr(输入)
要被描述的对象指针,目前只支持字符串类型指针。
-
objnm_len(输入)
objptr 参数中字符串的长度。
-
objptr_typ(输入)
objptr 指针类型,目前只支持 DCI_OTYPE_NAME – 对象名称类型指针。
-
info_level
保留参数,目前不使用(仅用于和 Oracle 保持兼容)
-
objtyp(输入)
objptr 参数所指的对象类型,可以为下面几种对象:
-
DCI_PTYPE_TABLE – 表
-
DCI_PTYPE_PROC – 过程
-
DCI_PTYPE_FUNC – 函数
-
DCI_PTYPE_PKG – 对象包
-
-
dschp(输入)
一个描述符句柄,该句柄可以通过使用 DCI_HTYPE_DESCRIBE 作为参数调用 DCIHandleAlloc 分配得到。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
调用该函数对某个对象进行描述以后,需要结合调用 DCIParamGet 和 DCIAttrGet 来获取描述后的信息。
2.56. DCIParamGet¶
函数原型:
sword DCIParamGet(CONST dvoid *hndlp, ub4 htype, DCIError *errhp, dvoid **parmdpp, ub4 pos)
功能描述:
返回描述句柄或语句句柄中的根据位置指定的参数描述符。
参数说明:
-
hndlp(输入)
一个存在描述信息的句柄。
-
htype(输入)
hndlp参数句柄的类型,支持以下两种类型:
-
DCI_HTYPE_STMT – 语句句柄
-
DCI_DTYPE_PARAM – 参数句柄
-
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
parmdpp(输出)
输出的描述符句柄,通过该句柄调用 DCIAttrGet 函数就可以得到指定位置上的描述信息。
-
pos(输入)
要获取描述符上指定位置的描述信息。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.57. DCIAttrSet¶
函数原型:
sword DCIAttrSet(dvoid *trgthndlp, ub4 trghndltyp, dvoid *attributep, ub4 size, ub4 attrtype, DCIError *errhp)
功能描述:
设置句柄上的属性值。
参数说明:
-
trgthndlp(输入)
需要设置属性的句柄指针。
-
trghndltyp(输入)
trgthndlp参数句柄的类型,可以是以下几种类型:
-
DCI_HTYPE_SVCCTX 上下文句柄。
-
DCI_HTYPE_SESSION 连接信息句柄。
-
DCI_HTYPE_STMT 语句句柄。
-
DCI_HTYPE_DIRPATH_CTX 直接文件操作上下文。
-
DCI_DTYPE_PARAM 参数信息句柄。
-
-
attributep(输入)
要设置的属性值指针,下面是在各种属性的情况下,数据值的类型:
-
DCI_HTYPE_SVCCTX
-
DCI_ATTR_SERVER – DCIServer 结构句柄(连接句柄)
-
DCI_ATTR_SESSION – DCISession 结构句柄(连接信息句柄)
-
-
DCI_HTYPE_SESSION
-
DCI_ATTR_USERNAME – 字符串指针(char*)
-
DCI_ATTR_PASSWORD – 字符串指针(char*)
-
-
DCI_HTYPE_STMT
-
DCI_ATTR_PREFETCH_ROWS – 无符号整形指针(ub4*)
-
-
DCI_HTYPE_DIRPATH_CTX
-
DCI_ATTR_BUF_SIZE – 无符号整形指针(ub4*)
-
DCI_ATTR_NAME – 字符串指针(char*)
-
DCI_ATTR_NUM_COLS – 无符号短整形指针(ub2*)
-
DCI_ATTR_SCHEMA_NAME – 字符串指针(char*)
-
DCI_ATTR_DATEFORMAT – 字符串指针(char*),如:YYYY-MM-DD
-
DCI_ATTR_DIRPATH_INPUT – 无符号单字节整形指针(ub1*),目前只支持DCI_DIRPATH_INPUT_STREAM和DCI_DIRPATH_INPUT_TEXT
-
-
DCI_DTYPE_PARAM
-
DCI_ATTR_NAME –字符串指针(char*)
-
DCI_ATTR_DATA_TYPE –无符号短整形指针(ub2*)
-
DCI_ATTR_DATA_SIZE –无符号整形指针(ub4*)
-
DCI_ATTR_DATEFORMAT –字符串指针(char*),如:YYYY-MM-DD
-
DCI_ATTR_PRECISION –无符号单字节整形指针(ub1*)
-
DCI_ATTR_SCALE –无符号单字节整形指针(ub1*)
-
-
-
size(输入)
attributep 参数的大小,如果 attributep 参数指针是一个字符串类型指针,那么 size 就是该字符串的实际长度;如果 attributep 参数是其它类型指针,则忽略该参数。
-
attrtype(输入)
要设置的句柄属性。不同类型的句柄有着不同的属性:
-
DCI_HTYPE_SVCCTX
-
DCI_ATTR_SERVER – 在上下文句柄上附加一个连接句柄
-
DCI_ATTR_SESSION – 在上下文句柄上附加一个连接信息句柄
-
-
DCI_HTYPE_SESSION
-
DCI_ATTR_USERNAME – 在连接信息句柄上设置登录的用户名
-
DCI_ATTR_PASSWORD – 在连接信息句柄上设置登录的口令
-
-
DCI_HTYPE_STMT
-
DCI_ATTR_PREFETCH_ROWS – 在语句句柄上设置预取的结果集行数
-
-
DCI_HTYPE_DIRPATH_CTX
-
DCI_ATTR_BUF_SIZE – 直接文件操作时缓冲区的大小
-
DCI_ATTR_NAME – 直接文件操作时针对的表名
-
DCI_ATTR_NUM_COLS – 直接文件操作时针对的表的列数
-
DCI_ATTR_SCHEMA_NAME – 直接文件操作时针对的表所在的模式名
-
DCI_ATTR_DATEFORMAT – 直接文件操作时日期格式表达式
-
DCI_ATTR_DIRPATH_INPUT – 直接文件操作时数据流的形式
-
-
DCI_DTYPE_PARAM
-
DCI_ATTR_NAME – 直接文件操作时设置列的名称
-
DCI_ATTR_DATA_TYPE – 直接文件操作时设置列的数据类型
-
DCI_ATTR_DATA_SIZE – 直接文件操作时设置列的数据类型大小,以字节计
-
DCI_ATTR_DATEFORMAT – 直接文件操作时设置的日期格式表达式
-
DCI_ATTR_PRECISION – 直接文件操作时设置列的精度
-
DCI_ATTR_SCALE – 直接文件操作时设置列的刻度
-
-
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.58. DCIAttrGet¶
函数原型:
sword DCIAttrGet(CONST dvoid *trgthndlp, ub4 trghndltyp, dvoid *attributep, ub4 *sizep, ub4 attrtype, DCIError *errhp)
功能描述:
获取句柄上的属性值。
参数说明:
-
trgthndlp(输入)
要获取属性的句柄。
-
trghndltyp(输入)
trgthndlp参数中的句柄类型,可以有以下几种类型:
-
DCI_DTYPE_PARAM – 参数句柄
-
DCI_HTYPE_STMT – 语句句柄
-
DCI_HTYPE_DESCRIBE – 描述符句柄
-
DCI_HTYPE_DIRPATH_CTX – 直接文件操作句柄
-
DCI_HTYPE_DIRPATH_COLUMN_ARRAY – 直接文件数据数组句柄
-
DCI_HTYPE_DIRPATH_STREAM – 直接文件数据流句柄
-
-
attributep(输出)
存放输出属性的缓冲区。如果输入的属性为字符串,那么该参数值应是字符串指针的地址,应用应当及时的复制其值到自己定义的缓冲区中。
-
sizep(输出)
存放输出属性大小的缓冲区,如果输出属性是字符串,那么它的值是字符串的实际长度,否则该大小是实际输出值的大小,按字节计算。
-
attrtype(输入)
要获取的属性。不同类型的句柄有着不同的属性可以获取,请参照样例。
下面是 attrtype 在不同的输入句柄上的属性取值:
-
DCI_DTYPE_PARAM
-
DCI_HTYPE_RESULT_COL_ATTR
-
DCI_ATTR_DATA_SIZE – 列的数据类型大小(ub2)
-
DCI_ATTR_DATA_TYPE – 列的数据类型(ub2)
-
DCI_ATTR_DISP_SIZE – 列的显示大小(ub2)
-
DCI_ATTR_NAME – 列名(char*)
-
DCI_ATTR_PRECISION – 列的精度(ub2)
-
DCI_ATTR_SCALE – 列的刻度(ub1)
-
DCI_ATTR_IS_NULL – 列是否允许为空(ub1)
-
-
DCI_PTYPE_TABLE
-
DCI_ATTR_OBJID – 表的ID号(ub4)
-
DCI_ATTR_NUM_COLS – 表中的列数(ub2)
-
DCI_ATTR_LIST_COLUMNS – 表中列信息的描述参数句柄(void*)
-
-
DCI_ATTR_LIST_COLUMNS
-
同 DCI_HTYPE_RESULT_COL_ATTR 属性
-
-
DCI_PTYPE_PROC
-
DCI_ATTR_DATA_SIZE – 参数的数据类型大小(ub2)
-
DCI_ATTR_DATA_TYPE –参数的数据类型(ub2)
-
DCI_ATTR_DISP_SIZE –参数的显示大小(ub2)
-
DCI_ATTR_NAME –参数名(char*)
-
DCI_ATTR_PRECISION –参数的精度(ub1)
-
DCI_ATTR_SCALE –参数的刻度(ub1)
-
DCI_ATTR_NUM_PARAMS – 参数的个数(ub2)
-
DCI_ATTR_LIST_ARGUMENTS – 参数的描述参数句柄(void*)
-
-
DCI_PTYPE_FUNC
-
同DCI_PTYPE_PROC
-
-
DCI_PTYPE_PKG – 包中信息的描述参数句柄(void*)
-
DCI_ATTR_LIST_SUBPROGRAMS
-
DCI_ATTR_LIST_ARGUMENTS – 参数的描述参数句柄(void*)
-
DCI_ATTR_NAME – 包中的过程名者是函数名(char*)
-
DCI_ATTR_PTYPE – 对象类型:DCI_PTYPE_PROC或DCI_PTYPE_FUNC
-
DCI_ATTR_NUM_PARAMS – 包中对象的个数(ub2)
-
-
DCI_PTYPE_LIST
-
DCI_ATTR_NAME – 直接文件操作时设置列的名称(char*)
-
DCI_ATTR_DATA_TYPE – 直接文件操作时设置列的数据类型(ub2)
-
DCI_ATTR_DATA_SIZE – 直接文件操作时设置列的数据类型大小(ub2)
-
DCI_ATTR_DATEFORMAT – 直接文件操作时设置的日期格式表达式(char*)
-
DCI_ATTR_PRECISION – 直接文件操作时设置列的精度(ub1)
-
DCI_ATTR_SCALE – 直接文件操作时设置列的刻度(ub1)
-
-
-
DCI_HTYPE_STMT
-
DCI_ATTR_PREFETCH_ROWS – 当前一次性返回结果集记录的行数(ub4)
-
DCI_ATTR_NUM_COLS – 结果集中列的个数(ub2)
-
DCI_ATTR_ROW_COUNT – 已经返回记录的总行数(ub4)
-
-
DCI_HTYPE_DESCRIBE
-
DCI_PTYPE_TABLE – 返回描述表中各列信息的参数句柄(void*)
-
DCI_PTYPE_PROC – 返回描述存储过程中参数的参数句柄(void*)
-
DCI_PTYPE_FUNC – 返回描述存储函数中参数的参数句柄(void*)
-
DCI_PTYPE_PKG – 返回描述包中信息的参数句柄(void*)
-
-
DCI_HTYPE_DIRPATH_CTX
-
DCI_ATTR_BUF_SIZE – 当前文件操作的缓冲区大小(ub4),默认是64K
-
DCI_ATTR_NAME – 当前操作的表名(char*)
-
DCI_ATTR_NUM_COLS – 当前操作的列数(ub2)
-
DCI_ATTR_NUM_ROWS – 当前允许一次性操作的行数(ub4)
-
DCI_ATTR_SCHEMA_NAME – 操作的表所在的模式名(char*)
-
DCI_ATTR_DATEFORMAT – 当前设置的时间日期格式表达式(char*)
-
DCI_ATTR_LIST_COLUMNS – 返回描述表中各列信息的参数句柄(void*)
-
DCI_ATTR_DIRPATH_INPUT – 当前数据流的类型,是文本还是二进制(ub1)
-
-
DCI_HTYPE_DIRPATH_COLUMN_ARRAY
-
DCI_ATTR_NUM_ROWS – 当前缓冲区允许一次性最大设置的记录行数(ub4)
-
DCI_ATTR_NUM_COLS – 当前缓冲区中的列数(ub2)
-
DCI_ATTR_ROW_COUNT – 转换成功的行数(ub4)
-
DCI_ATTR_COL_COUNT – 转换成功的列数(ub2)
-
-
DCI_HTYPE_DIRPATH_STREAM
-
DCI_ATTR_NUM_ROWS – 数据流中的行数(ub4)
-
DCI_ATTR_NUM_COLS – 数据流中的行数(ub2)
-
DCI_ATTR_ROW_COUNT – 转换成功的行数(ub4)
-
DCI_ATTR_COL_COUNT – 转换成功的列数(ub2)
-
DCI_ATTR_BUF_ADDR – 数据流缓冲区地址(void*)
-
DCI_ATTR_BUF_SIZE – 数据流缓冲区的大小(ub4)
-
-
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.59. DCIDirPathPrepare¶
函数原型:
sword DCIDirPathPrepare(DCIDirPathCtx *dpctx, DCISvcCtx *svchp, DCIError *errhp)
功能描述:
准备直接文件操作。在执行文件函数之前,文件操作的信息都要在文件操作环境的上下文件属性中预先设置好。
参数说明:
-
dpctx(输入)
文件操作环境。
-
svchp(输入)
执行所用的上下文句柄。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
注释:
在调用该函数之前,先要在 dpctx 上下文件中设置好要操作的表信息。
2.60. DCIDirPathColArrayEntrySet¶
函数原型:
sword DCIDirPathColArrayEntrySet(DCIDirPathColArray *dpca, DCIError *errhp, ub4 rownum, ub2 colIdx, ub1 *cvalp, ub4 clen, ub1 cflg)
功能描述:
设置写入文件数据数组上指定位置的数据内容。
参数说明:
-
dpca(输入)
数据数组描述符指针。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
rownum(输入)
设置的数据内容在数组中的行号。
-
colIdx(输入)
设置的数据内容在数组中的列号。
-
cvalp(输入)
设置的数据内容缓冲区指针。
-
clen(输入)
数据内容的长度。
-
cflg(输入)
数据属性标识,支持以下几种标识:
-
DCI_DIRPATH_COL_COMPLETE 在分批设置数据时,使用该标识表示数据已经结束
-
DCI_DIRPATH_COL_NULL 表示设置的数据是一个空(NULL)
-
DCI_DIRPATH_COL_PARTIAL 分批设置数据,表示当前设置的数据只是一部分
-
DCI_DIRPATH_COL_ERROR 错误的数据,会在该位置用空来替代
-
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.61. DCIDirPathColArrayToStream¶
函数原型:
sword DCIDirPathColArrayToStream(DCIDirPathColArray *dpca, DCIDirPathCtx *dpctx, DCIDirPathStream *dpstr, DCIError *errhp, ub4 rowcnt, ub4 rowoff)
功能描述:
把数据数组转换成为数据流。如果数组中存在不合法的数据,函数会执行失败,目前还没有实现定位错误数据的位置功能。
参数说明:
-
dpca(输入)
数据数组描述符指针。
-
dpstr(输入)
数据流描述符指针。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
rowcnt(输入)
要转换的行数。
-
rowoff(输入)
转换时在原数组上的起始偏移行号。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR,如果启用了分批传送,那么在需要数据的情况下会返回 DCI_NEED_DATA,表示分批设置数据还未完成,需要继续设置数据。
2.62. DCIDirPathLoadStream¶
函数原型:
sword DCIDirPathLoadStream(DCIDirPathCtx *dpctx, DCIDirPathStream *dpstr, DCIError *errhp)
功能描述:
写入转换后的数据流到文件。
参数说明:
-
dpctx(输入)
文件操作环境。
-
dpstr(输入)
数据流描述符指针。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.63. DCIDirPathDataSave¶
函数原型:
sword DCIDirPathDataSave(DCIDirPathCtx *dpctx, DCIError *errhp, ub4 action)
功能描述:
保存转换成功的数据流到文件
参数说明:
-
dpctx(输入)
文件操作环境。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
action(输入)
保留参数,还未单独处理。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.64. DCIDirPathColArrayReset¶
函数原型:
sword DCIDirPathColArrayReset(DCIDirPathColArray *dpca, DCIError *errhp)
功能描述:
重置数据数组,以便再次重新设置新的内容。
参数说明:
-
dpca(输入)
数据数组描述符指针。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.65. DCIDirPathStreamReset¶
函数原型:
sword DCIDirPathStreamReset(DCIDirPathStream *dpstr, DCIError *errhp)
功能描述:
重置数据流句柄,清空以前的转换设置。
参数说明:
-
dpstr(输入)
数据流描述符指针。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.66. DCIDirPathFinish¶
函数原型:
sword DCIDirPathFinish(DCIDirPathCtx *dpctx, DCIError *errhp)
功能描述:
完成直接文件操作,清空相应的环境。
参数说明:
-
dpctx(输入)
文件操作环境。
-
malocfp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.67. DCIDirPathFlushRow¶
函数原型:
sword DCIDirPathFlushRow(DCIDirPathCtx *dpctx, DCIError *errhp)
功能描述:
提交部分数据到数据库。
参数说明:
-
dpctx(输入)
文件操作环境。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.68. DCIErrorGet¶
函数原型:
sword DCIErrorGet(dvoid *hndlp, ub4 recordno, DciText *sqlstate, sb4 *errcodep, DciText *bufp, ub4 bufsiz, ub4 type)
功能描述:
获取 DCI 操作失败产生的错误信息。
参数说明:
-
hndlp(输入)
错误信息句柄指针。
-
recordno(输入)
错误信息位置,目前只支持一条错误信息,所以请把该参数置为1。
-
sqlstate(输出)
错误的状态码。
-
errcodep(输出)
错误码,目前定义了以下几种错误码:
-
1 – 违反唯一性约速
-
1014 – 服务器连接已经关闭
-
1092 – 连接异常中止
-
1653 – 表空间不足
-
604 – 表不存在
-
-
bufp(输出)
错误的描述信息。
-
bufsiz(输入)
bufp 所指的缓冲区大小。
-
type
仅支持 DCI_HTYPE_ERROR 和 DCI_HTYPE_ENV
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.69. DCIDateTimeConstruct¶
函数原型:
sword DCIDateTimeConstruct(void *hndl, DCIError *err, DCIDateTime *datetime, sb2 year, ub1 month, ub1 day, ub1 hour, ub1 min, ub1 sec, ub4 fsec, DciText *timezone, size_t timezone_length)
功能描述:
初始化datetime描述符的信息。
参数说明:
-
hndl(输入)
Session句柄(或Env句柄)
-
err(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
datetime(输入)
DCIDateTime的描述符指针。
-
year(输入)
年。
-
month(输入)
月。
-
day(输入)
日。
-
hour(输入)
时。
-
min(输入)
分。
-
sec(输入)
秒。
-
fsec(输入)
微秒。
-
timezone
时区,若没有设置时区,则默认session中的时区。
-
timezone_length
时区的字符长度。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.70. DCIDateTimeGetDate¶
函数原型:
sword DCIDateTimeGetDate(void *hndl, DCIError *err, const DCIDateTime *datetime, sb2 *year, ub1 *month, ub1 *day)
功能描述:
获取DCIDateTime中的日期信息。
参数说明:
-
hndl(输入)
Session句柄(或Env句柄)。
-
err(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
datetime(输入)
要获取的DCIDateTime描述符指针。
-
year(输出)
返回的年。
-
month(输出)
返回的月。
-
day(输出)
返回的日。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.71. DCIDateTimeGetTime¶
函数原型:
sword DCIDateTimeGetTime(void *hndl, DCIError *err, const DCIDateTime *datetime, ub1 *hour, ub1 *min, ub1 *sec, ub4 *fsec)
功能描述:
获取DCIDateTime中的时间信息。
参数说明:
-
hndl(输入)
Session句柄(或Env句柄)。
-
err(输入)
误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
datetime(输入)
要获取的DCIDateTime描述符指针。
-
hour(输出)
返回的时。
-
min(输出)
返回的分。
-
sec(输出)
返回的秒。
-
fsec(输出)
返回的微秒。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.72. DCIIntervalGetDaySecond¶
函数原型:
sword DCIIntervalGetDaySecond(void *hndl, DCIError *err, sb4 *dy, sb4 *hr, ub1 *mm, sb4 *ss, ub4 *fsec, const DCIInterval *interval)
功能描述:
获取DCIInterval中的时间信息。
参数说明:
-
hndl(输入)
Session句柄(或Env句柄)。
-
err(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
dy(输出)
返回的日。
-
hr(输出)
返回的时。
-
mm(输出)
返回的分。
-
ss(输出)
返回的秒。
-
fsec(输出)
返回的微秒。
-
interval(输入)
DCIInterval描述符指针。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.73. DCIIntervalGetYearMonth¶
函数原型:
sword DCIIntervalGetYearMonth(void *hndl, DCIError *err, sb4 *yr, sb4 *mnth, const DCIInterval *interval)
功能描述:
获取DCIInterval中的日期信息(年月)。
参数说明:
-
hndl(输入)
Session句柄(或Env句柄)。
-
err(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
yr(输出)
返回的年。
-
mnth(输出)
返回的月。
-
interval(输入)
DCIInterval描述符指针。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.74. DCIIntervalFromText¶
函数原型:
sword DCIIntervalFromText(void *hndl, DCIError *err, const DciText *inpstring, size_t str_len, const DCIInterval *result)
功能描述:
从字符串形式转到DCIInterval。
参数说明:
-
hndl(输入)
Session句柄(或Env句柄)。
-
err(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
inpstring(输入)
输入的字符串形式的interval:
-
year(-4713 to 9999)
-
month(1 to 2)
-
day(1 to 28...31)
-
hour(0 to 23)
-
hour(0 to 11)(am, pm)
-
minutes(0 to 59)
-
seconds(0 to 59)
-
The seconds in the day(0 to 86399)
-
-
str_len(输入)
输入字符串的长度。
-
result(输出)
存储解析interval信息后的DCIInterval指针。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.75. DCINumberToText¶
函数原型:
sword DCINumberToText(DCIError *err, const DCINumber *number, const DciText *fmt, ub4 fmt_length, const DciText *nls_params, ub4 nls_p_length, ub4 *buf_size, DciText *buf)
功能描述:
将DCINumber的值转换成字符串。
参数说明:
-
err(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
number(输入)
有效的DCINumber指针。
-
fmt(输入)
转换的格式:
-
9 - 带有指定数值位数的十进制值
-
0 - 带前导零的值
-
. - (句号)小数点
-
, - (逗号)分组(千)分隔符
-
PR - 尖括号内负值
-
S - 带负号的负值(使用区域设置)
-
L - 货币符号(使用区域设置)
-
D - 小数点(使用区域设置)
-
G - 分组分隔符(使用区域设置)
-
MI - 在指明的位置的负号(如果数字 < 0)
-
PL - 在指明的位置的正号(如果数字 > 0)
-
SG - 在指明的位置的正/负号
-
RN - 罗马数字(输入在 1 和 3999 之间)
-
TH或th - 转换成序数
-
V - 移动 n 位(小数)(参阅注解)
-
X - 带有指定数值位数的十六进制值
-
EEEE - 科学记数。(现在还不支持)
-
-
fmt_length(输入)
fmt的字节长度。
-
nls_params(输入)
保留参数,目前不使用(仅用于和 Oracle 保持兼容)。
-
nls_p_length(输入)
保留参数,目前不使用(仅用于和 Oracle 保持兼容)。
-
buf_size(输出)
buf的字节长度。
-
buf(输出)
输出的DCINumber的字符形式存储到该指针指向的内存。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.76. DCINumberFromText¶
函数原型:
sword DCINumberFromText(DCIError *err, const DciText *str, ub4 str_length, const DciText *fmt, ub4 fmt_length, const DciText *nls_params, ub4 nls_p_length, DCINumber *number)
功能描述:
从字符串转换成DCINumber。
参数说明:
-
err(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
str(输入)
输入的DCINumber的字符串形式。
-
str_length(输入)
str的字节长度。
-
fmt(输入)
转换的格式,同DCINumberToText。
-
fmt_length(输入)
fmt的字节长度。
-
nls_params(输入)
保留参数,目前不使用(仅用于和 Oracle 保持兼容)。
-
nls_p_length(输入)
保留参数,目前不使用(仅用于和 Oracle 保持兼容)。
-
number(输出)
输出的DCINumber指针。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.77. DCINumberToInt¶
函数原型:
sword DCINumberToInt(DCIError *err, const DCINumber *number, uword rsl_length, uword rsl_flag, void *rsl)
功能描述:
将DCINumber的值转换成整型数值。
参数说明:
-
err(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
number(输入)
有效的DCINumber指针。
-
rsl_length(输入)
rsl的字节长度。
-
rsl_flag(输入)
Sign标识:
-
DCI_NUMBER_UNSINGDED
-
DCI_NUMBER_SIGNED
-
-
rsl(输出)
整型指针,DCINumber的数值形式被写入该指针指向的内存。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.78. DCINumberFromInt¶
函数原型:
sword DCINumberFromInt(DCIError *err, const void *inum, uword inum_length, uword inum_s_flag, DCINumber *number)
功能描述:
将整型的数值转换成DCINumber。
参数说明:
-
err(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
inum(输入)
指向整型数值的指针。
-
inum_length(输入)
整型数值的长度。
-
inum_s_flag(输入)
Sign标识:
-
DCI_NUMBER_UNSINGDED
-
DCI_NUMBER_SIGNED
-
-
number(输出)
有效的DCINumber指针,将inum指向的值写入DCINumber。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.79. DCINumberToReal¶
函数原型:
sword DCINumberToReal(DCIError *err, const DCINumber *number, uword rsl_length, void *rsl)
功能描述:
将DCINumber的值转换成浮点型的数值。
参数说明:
-
err(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
number(输入)
有效的DCINumber指针。
-
rsl_length(输入)
rsl的字节长度。
-
rsl(输出)
浮点型类型指针,DCINumber的数值形式被写入该指针指向的内存。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.80. DCINumberFromReal¶
函数原型:
sword DCINumberFromReal(DCIError *err, const void *rnum, uword rnum_length, DCINumber *number)
功能描述:
将浮点型的数值转换成DCINumber的值。
参数说明:
-
err(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
rnum(输入)
有效的指向浮点类型的指针。
-
rnum_length(输入)
rnum的字节长度。
-
number(输出)
有效的DCINumber指针。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.81. DCIStmtGetPieceInfo¶
函数原型:
sword DCIStmtGetPieceInfo(const DCIStmt *stmtp, DCIError *errhp, void **hndlpp, ub4 *typep, ub1 *in_outp, ub4 *iterp, ub4 *idxp, ub1 *piecep)
功能描述:
返回分段信息,对于大数据类型进行分段操作时有用。支持的数据类型:BLOB、CLOB、TEXT、BYTEA。
参数说明:
-
stmtp(输入)
语句句柄。
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
hndlpp(输出)
返回的句柄类型:
-
DCI_HTYPE_BIND - Bind类型
-
DCI_HTYPE_DEFINE - Define类型
-
-
in_outp(输出)
输入输出类型:
-
DCI_PARAM_IN - 输入类型(Bind参数)
-
DCI_PARAM_OUT - 输出类型(Define的结果集)
-
-
iterp(输出)
多行处理的行号。
-
idxp(输出)
数组绑定的索引号。
-
piecep(输出)
分段操作的类型:
-
DCI_ONE_PIECE - 只需要一次
-
DCI_FIRST_PIECE - 多次中的第一次
-
DCI_NEXT_PIECE - 多次中的下一次
-
DCI_LAST_PIECE - 多次中的最后一次
-
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.82. DCIStmtSetPieceInfo¶
函数原型:
sword DCIStmtSetPieceInfo(void *hndlp, ub4 type, DCIError *errhp, const void *bufp, ub4 *alenp, ub1 piece, const void *indp, ub2 *rcodep)
功能描述:
设置分段信息,对于大数据类型进行分段操作时有用。支持的数据类型:BLOB、CLOB、TEXT、BYTEA。
参数说明:
-
hndlp(输入)
有效的Bind或者Define句柄。
-
type(输入)
hndlp的句柄类型:
-
DCI_HTYPE_BIND - Bind类型
-
DCI_HTYPE_DEFINE - Define类型
-
-
errhp(输入)
错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
-
bufp(输入)
分段操作的数据指针。
-
alenp(输入)
本次分段处理的数据长度。
-
piece(输入)
分段处理的类型:
-
DCI_ONE_PIECE - 只需要一次
-
DCI_FIRST_PIECE - 多次中的第一次
-
DCI_NEXT_PIECE - 多次中的下一次
-
DCI_LAST_PIECE - 多次中的最后一次
-
-
indp(输出)
Indicator类型,可以是数组类型。
-
rcodep(输出)
返回代码,可以是数组指针。
返回值:
如果执行成功,返回 DCI_SUCCESS,否则返回 DCI_ERROR。
2.83. DCIDateTimeFromText¶
函数原型:
sword DCIDateTimeFromText(void *hndlp, DCIError *errhp, const DciText *date_str, size_t dstr_length, const DciText *fmt, ub1 fmt_length, const DciText *lang_name, size_t lang_length, DCIDateTime *datetime)
功能描述:
把字符串按照一定格式转换成DateTime类型
参数说明:
-
hndlp(输入)
DCI环境句柄
-
errhp(输入/输出)
DCI错误信息句柄,如果函数执行错误会返回DCI_ERROR,可通过DCIErrorGet获取错误信息
-
date_str(输入)
用来转换的日期字符串
-
dstr_length(输入)
日期字符串的长度
-
fmt(输入)
日期格式串
-
fmt_length(输入)
日期格式串的长度
-
lang_name(输入)
日期中语言的名称
-
lang_length(输入)
语言字符串的长度
-
datetime(输出)
DCIDateTime类型的指针,输入的字符串会转换成该类型
返回值:
如果执行成功,返回 DCI_SUCCESS。
如果句柄为NULL,或datetime为NULL,或环境句柄类型不正确,则返回 DCI_INVALID_HANDLE。
否则返回 DCI_ERROR。
注释:
默认lang_name为NULL,不处理。
2.84. DCIDateTimeToText¶
函数原型:
sword DCIDateTimeToText(void *hndlp, DCIError *errhp, const DCIDateTime *datetime, const DciText *fmt, ub1 fmt_length, ub1 fsprec, const DciText *lang_name, size_t lang_length, ub4 *bufsz, DciText *bufp)
功能描述:
根据指定格式把一个日期类型数据转换成字符串
参数说明:
-
hndlp(输入)
DCI环境句柄
-
errhp(输入/输出)
DCI错误信息句柄,如果函数执行错误会返回DCI_ERROR,可通过DCIErrorGet获取错误信息
-
datetime(输入)
用来转换的DCIDatetime类型指针
-
fmt(输入)
日期格式串
-
fmt_length(输入)
日期格式串的长度
-
fsprec(输入)
指定返回结果的字符串中,毫秒的精度
-
lang_name(输入)
日期中语言的名称
-
lang_length(输入)
语言字符串的长度
-
bufsz(输入/输出)
返回结果字符串的长度,如果转换过程无误,最终结果又比传入长度小,该值会赋值为当前长度的值并返回
-
bufp(输出)
缓冲区指针,转换后的字符串存入该区域
返回值:
如果执行成功,返回 DCI_SUCCESS。
如果句柄为NULL,则返回 DCI_INVALID_HANDLE。
如果缓冲区的大小小于转换后的结果字符串,返回 DCI_ERROR,错误码1877。
注释:
默认lang_name为NULL,不处理。
2.85. DCIDateFromText¶
函数原型:
sword DCIDateFromText ( DCIError *errhp, const DciText *date_str, size_t d_str_length, const DciText *fmt, ub1 fmt_length, const DciText *lang_name, size_t lang_length, DCIDate *date)
功能描述:
把字符串按照一定格式转换成Date类型
参数说明:
-
errhp(输入/输出)
DCI错误信息句柄,如果函数执行错误会返回DCI_ERROR,可通过DCIErrorGet获取错误信息
-
date_str(输入)
用来转换的日期字符串
-
dstr_length(输入)
日期字符串的长度
-
fmt(输入)
日期格式串
-
fmt_length(输入)
日期格式串的长度
-
lang_name(输入)
日期中语言的名称
-
lang_length(输入)
语言字符串的长度
-
date(输出)
DCIDate类型的指针,输入的字符串会转换成该类型
返回值:
如果执行成功,返回 DCI_SUCCESS。
如果句柄为NULL,或datetime为NULL,或环境句柄类型不正确,则返回 DCI_INVALID_HANDLE。
否则返回 DCI_ERROR。
注释:
默认lang_name为NULL,不处理。
2.86. DCIDateToText¶
函数原型:
sword DCIDateToText (DCIError *errhp, const DCIDate *date, const DciText *fmt, ub1 fmt_length, const DciText *lang_name, size_t lang_length, ub4 *bufsz, DciText *bufp)
功能描述:
根据指定格式把一个日期类型数据转换成字符串
参数说明:
-
errhp(输入/输出)
DCI错误信息句柄,如果函数执行错误会返回DCI_ERROR,可通过DCIErrorGet获取错误信息
-
date(输入)
用来转换的DCIDate类型指针
-
fmt(输入)
日期格式串
-
fmt_length(输入)
日期格式串的长度
-
lang_name(输入)
日期中语言的名称
-
lang_length(输入)
语言字符串的长度
-
bufsz(输入/输出)
返回结果字符串的长度,如果转换过程无误,最终结果又比传入长度小,该值会赋值为当前长度的值并返回
-
bufp(输出)
缓冲区指针,转换后的字符串存入该区域
返回值:
如果执行成功,返回 DCI_SUCCESS。
如果句柄为NULL,则返回 DCI_INVALID_HANDLE。
如果缓冲区的大小小于转换后的结果字符串,返回 DCI_ERROR,错误码1877。
注释:
默认lang_name为NULL,不处理。