没有合适的资源?快使用搜索试试~ 我知道了~
首页oci编程示例讲解.pdf
资源详情
资源评论
资源推荐
OCI 常用函数
一、初始化 OCI 程序环境。
OCI8 使用 OCIInitialize 函数来初始化 OCI。这是使用 OCI8 与数据库建立
会话必须的一步;同时,必须是第一步。如果成功,则返回 0。
函数原型:sword OCIInitialize (ub4 mode,CONST dvoid *ctxp,CONST dvoid
*(*malocfp) (/* dvoid *ctxp,size_t size _*/),
CONST dvoid *(*ralocfp)(/*_ dvoid *ctxp,dvoid *memptr,size_t newsize
_*/),
CONST void (*mfreefp)(/*_ dvoid *ctxp,dvoid *memptr _*/))
参数说明:
mode——详细说明 OCI 初始化(Initialize)模式(mode)。它的取值如下:
OCI_DEFAULT——缺省模式;
OCI_THREADED——多线程模式;在该模式下,各并发处理中不为用户所见的
内在数据结构受各自线程的保护,而不受别的线程干扰;
OCI_OBJECT——使用目标特性;
OCI_SHARED——使用共享内存;
OCI_EVENTS——
Mode 参数可以拥有多个值,以“|”符号分隔各取值项。
*Ctxp——用户定义的内存回调程序;默认为 0
*(*malocfp)——用户定义的内存分配程序;默认为 0
*(*ralocfp)——重新分配内存程序;默认为 0
*memptr 是指向内存块的指针;
*mfreefp——用户定义的内存释放程序;默认为 0
该函数使用举例如下:
OCIInitialize((ub4) OCI_THREADED | OCI_OBJECT,
(dvoid *)0,(dvoid *(*)(dvoid *, size_t)) 0,
(dvoid * (*)(dvoid *,dvoid *,size_t))0,
(void (*)(dvoid *,dvoid *)) 0 )
注意!OCIEnvCreate() 可以代替 OCIInitialize() 和 OCIEnvInit()
二、 初始化 OCI 环境句柄。
在初始化 OCI 程序环境以后,使用 OCIEnvInit 来初始化 OCI 的环境句柄,
该函数成功返回 0。
函数原型:sword OCIEnvInit(OCIEnv **envhpp,
ub4 mode,
size_t xtramemsz,
dvoid **usrmempp )
参数说明:
**envhpp——指向环境句柄的指针;
mode——指定初始化环境句柄的模式,其取值如下:
OCI_DEFAULT——缺省模式;在缺省模式下,OCI 库始终互斥各环境句柄;
OCI_NO_MUTEX——非互斥模式;在该模式下,OCI 库各环境句柄并不互斥,
所有的掉用都使用同一个环境句柄,并且只能有一个环境句柄起作用。
OCI_ENV_NO_UCB——禁止回滚模式;该模式用以禁止在环境句柄初始化过程
中的动态 CALL_BACK 函数掉用;
Xtramemsz——指定在该环境句柄生存期内分配内存的数量;
**usrmempp——指向 Xtramemsz 参数的指针;usermempp 参数是函数返回值;
该函数使用举例如下:
应用例子:OCIEnvInit((OCIEnv **) envhp,
(ub4) OCI_DEFAULT,
(size_t) 0,(dvoid **) 0)
三、 分配各 OCI 句柄。
一个OCI 连接在建立前,还需要将所需要的句柄一一分配成功,在 OCI8里,
使用函数 OCIHandleAlloc 来分配各句柄,成功返回 0。
函数原型:sword OCIHandleAlloc(CONST dvoid *parenth,
dvoid **hndlpp,
ub4 type,
size_t xtramem_sz,
dvoid **usrmempp )
参数说明:
*parenth——已初始化后的环境句柄;
**hndlpp——函数执行成功后,返回的一个 OCI 句柄;该返回值的具体含义
由 type 参数来决定;
type——参数 hndlpp 的返回值的类型;其常用取值如下:
OCI_HTYPE_SVCCTX——返回一个服务类型的句柄;
OCI_HTYPE_ERROR——返回一个错误类型的句柄;
OCI_HTYPE_SESSION——返回一个会话类型的句柄;
OCI_HTYPE_SERVER——返回一个服务器类型的句柄;
OCI_HTYPE_STMT——返回一个陈述类型的句柄;
其中,陈述类型的句柄是在创建与数据库会话成功后,将要对数据库进行操
作时分配的,其余类型的句柄是在环境句柄初始化后分配的;
xtramem_sz——指定在该句柄生存期内分配内存的数量;
**usrmempp——指向 xtramem_sz 参数的指针,由函数返回;
该函数使用举例如下:OCIHandleAlloc((dvoid *) *envhp,
(dvoid **) errhp,
(ub4) OCI_HTYPE_ERROR,
(size_t) 0,
(dvoid **) 0)
四、 为 OCI 操作数据源创建存储路径(以给定的方式设置服务器连接指针
的参数)。
分配各 OCI 句柄后,还需要做的工作是为 OCI 操作数据源创建存储路径,并
将各项参数设置到相应的句柄中,这项工作由函数 OCIServerAttach 和
OCIAttrSet 来实现。成功,返回 0。
函数原型:sword OCIServerAttach(OCIServer *srvhp,
OCIError *errhp,
CONST text *dblink,
sb4 dblink_len,
ub4 mode )
参数说明:
*srvhp——已分配成功的服务器句柄;
*errhp——已分配成功的错误类型句柄;若该函数执行出错,则该参数承载
出错的原因;
*dblink——登陆数据库的实例名;
dblink_len——参数*dblink 字符串的长度;
mode——指定不同操作的模式。现在只有一种模式可选:OCI_DEFAULT。
该函数使用举例如下:OCIServerAttach(srvhp, errhp,
(text *) cstring,
(sb4) strlen((char *)cstring), (ub4) OCI_DEFAULT))
函数原型:sword OCIAttrGet (CONST dvoid *trgthndlp,
ub4 trghndltyp,
dvoid *attributep,
ub4 *sizep,
ub4 attrtype,
OCIError *errhp )
参数说明:
*trgthndlp——需要设置的句柄,该句柄在这之前已分配成功;该参数由
trghndltyp 参数决定;
trghndltyp——参数 trgthndlp 的类型,其取值参见 OCIHandleAlloc 函数
说明中的 type 参数说明;
*attributep——设置参数 trgthndlp 的值;
*sizep——attributep 参数指向的字符串长度;
attrtype——参数 attributep 的类型;其取值如下:
OCI_ATTR_SERVER——服务器类型;
OCI_ATTR_USERNAME——用户名类型
OCI_ATTR_PASSWORD——用户密码类型
OCI_ATTR_SESSION——会话类型;
*errhp——已分配成功的错误类型句柄;若该函数执行出错,则该参数承载
出错的原因;
该函数使用举例如下:OCIAttrSet((dvoid *) svchp,
(ub4) OCI_HTYPE_SVCCTX,
(dvoid *) srvhp,
(ub4) 0,
(ub4) OCI_ATTR_SERVER,
errhp))
(注:此时该函数的意思是将服务器句柄设置到服务句柄中,其类型为服务
器类型)
说明:在登陆数据库前以给定的方式设置服务器连接指针的参数时,
attrtype 参数的所有类型都需要设置到服务句柄中。设置的步骤为:先将服务
器句柄设置到服务句柄中,然后将用户名、密码设置到会话句柄中,在调用
OCISessionBegin 函数成功后,再将会话句柄设置到服务句柄中。
五、 创建并开始与数据库的会话
剩余13页未读,继续阅读
guangren870413
- 粉丝: 0
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 2023年中国辣条食品行业创新及消费需求洞察报告.pptx
- 2023年半导体行业20强品牌.pptx
- 2023年全球电力行业评论.pptx
- 2023年全球网络安全现状-劳动力资源和网络运营的全球发展新态势.pptx
- 毕业设计-基于单片机的液体密度检测系统设计.doc
- 家用清扫机器人设计.doc
- 基于VB+数据库SQL的教师信息管理系统设计与实现 计算机专业设计范文模板参考资料.pdf
- 官塘驿林场林防火(资源监管)“空天地人”四位一体监测系统方案.doc
- 基于专利语义表征的技术预见方法及其应用.docx
- 浅谈电子商务的现状及发展趋势学习总结.doc
- 基于单片机的智能仓库温湿度控制系统 (2).pdf
- 基于SSM框架知识产权管理系统 (2).pdf
- 9年终工作总结新年计划PPT模板.pptx
- Hytera海能达CH04L01 说明书.pdf
- 数据中心运维操作标准及流程.pdf
- 报告模板 -成本分析与报告培训之三.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论3