sword oracle,Oracle常用的OCI函数 三

在8i以后,可用OCIEnvCreate一个函数就可以初始化环境了,相当于OCIInitialize+ OCIEnvInit

2.申请/释放句柄

sword OCIHandleAlloc(

CONST dvoid *parenth,  //新申请句柄的父句柄,一般为OCI环境句柄

Dvoid **hndlpp,   //申请的新句柄

Ub4 type, type,  //句柄类型

Size_t xtramem_sz,   //申请的内存数

Dvoid **usrmempp  //申请到的内存块指针

)

注:

一般需要申请的句柄有:

服务器句柄OCIServer, 句柄类型OCI_HTYPE_SERVER

错误句柄OCIError,用于捕获OCI错误信息, 句柄类型OCI_HTYPE_ERROR

事务句柄OCISession, 句柄类型OCI_HTYPE_SESSION

上下文句柄OCISvcCtx, 句柄类型OCI_HTYPE_SVCCTX

SQL语句句柄OCIStmt, 句柄类型OCI_HTYPE_STMT

eg: 申请一个错误句柄OCIError

swResult = OCIHandleAlloc(envhpp, (dvoid *)& errhp, OCI_HTYPE_ERROR, 0, NULL);

if(swResult != OCI_SUCCESS && swResult != OCI_SUCCESS_WITH_INFO)

{

return FALSE;

}

释放句柄

sword OCIHandleFree(

dvoid *hndlp,  //要释放的句柄

ub4 type   //句柄类型

)

eg:

OCIHandleFree(stmtp, OCI_HTYPE_STMT)

3.读取/设置句柄属性

sword OCIAttrSet(

dvoid *trgthndlp,  //需设置的句柄名

ub4  trghndltyp, //句柄类型

dvoid *attributep, //设置的属性名

ub4 size, //属性值长度

ub4 attrtype,     //属性类型

OCIError *errhp   //错误句柄

)

注:一般要设置的属性有:

服务器实例:

句柄类型OCI_HTYPE_SVCCTX,属性类型OCI_ATTR_SERVER

连接数据的用户名:

句柄类型OCI_HTYPE_SESSION,属性类型OCI_ATTR_USERNAME

用户密码

句柄类型OCI_HTYPE_SESSION,属性类型OCI_ATTR_PASSWORD

事务:

句柄类型OCI_HTYPE_SVCCTX,属性类型OCI_ATTR_SESSION

eg:设置用户名和密码

char username[20],passwd[20];

strcpy(username,”tiger”)

strcpy(passwd,”cotton”)

swResult = OCIAttrSet(usrhp, OCI_HTYPE_SESSION,  (text*) username, strlen(username),

OCI_ATTR_USERNAME, errhp);

if(swResult != OCI_SUCCESS && swResult != OCI_SUCCESS_WITH_INFO)

return FALSE;

swResult = OCIAttrSet(usrhp, OCI_HTYPE_SESSION,    (text*) passwd, strlen(passwd),

OCI_ATTR_PASSWORD, errhp);

if(swResult != OCI_SUCCESS && swResult != OCI_SUCCESS_WITH_INFO)

return FALSE;

sword OCIAttrGet(

dvoid *trgthndlp,  //需读取的句柄名

ub4  trghndltyp, //句柄类型

dvoid *attributep, //读取的属性名

ub4 *sizep, //属性值长度

ub4 attrtype,     //属性类型

OCIError *errhp   //错误句柄

)

4.连接/断开服务器

多用户方式连接:

sword  OCIServerAttach(

OCIServer     *srvhp,//未初始化的服务器句柄

OCIError      *errhp,

CONST text    *dblink,//服务器SID

sb4           dblink_len,

ub4           mode //=OCI_DEFAULT,系统环境将设为阻塞方式

);

sword OCIServerDetach (

OCIServer   *srvhp,

OCIError    *errhp,

ub4         mode //OCI_

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值