OCI编程基础篇(三) 连接到数据库

访问www.tomcoding.com网站,学习Oracle内部数据结构,详细文档说明,下载Oracle的exp/imp,DUL,logminer,ASM工具的源代码,学习高技术含量的内容。

连接到数据库的过程中要分配好几个句柄,我们先看看连接到数据库需要哪几步。首先需要有一个连接数据库的对象,接着这个对象要与数据库服务器建立关系,然后需要创建一个会话,会话需要用户名和密码来认证,接下来要启动会话,这样就建立了一个用户会话到数据库的连接。到这里还没完,还要创建一个服务上下文,把服务器对象和会话都放到上下文中,这样在后面用户修改数据时,才能提交事务,提交事务的函数要用到服务上下文。

分配服务器句柄

使用前面介绍的分配句柄的函数OCIHandleAlloc()分配一个服务器句柄,句柄类型为OCI_HTYPE_SERVER,父句柄还是OCI的环境句柄envhp。

sword               rc;

OCIEnv            *envhp;

OCIServer       *svrhp

rc = OCIHandleAlloc(
        (const void *)envhp,
        (void **)&svrhp,
        OCI_HTYPE_SERVER,
        0,
        (void **)NULL
);  
if (rc != OCI_SUCCESS) {
        fprintf(stderr, "OCIHandleAlloc() - allocate server handle error !\n");
        return (-1);
}

建立到服务器的连接

分配完服务器句柄,就要用它连接到服务器,这一步用到的函数叫做OCIServerAttach(),建立一条与Oracle服务器的通信路径。看一下函数原型和参数。

sword OCIServerAttach ( OCIServer *srvhp,
    OCIError         *errhp,
    const OraText *dblink,
    sb4                  dblink_len,
    ub4                  mode );

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值