教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

常用OCI函数使用说明(3)

来源:网络收集 时间:2026-05-15
导读: 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

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_DEFAULT );

单用户方式连接: sword OCILogon (

OCIEnv *envhp,

OCIError *errhp, OCISvcCtx **svchp, CONST text *username,

ub4 uname_len, CONST text *password, ub4 passwd_len, CONST text *dbname, ub4 dbname_len );

sword OCILogoff (

OCISvcCtx *svchp

OCIError *errhp );

5.开始/结束一个会话

先认证用户再建立一个会话连接 sword OCISessionBegin (

OCISvcCtx *svchp, //服务环境句柄

OCIError *errhp,

OCISession *usrhp, //用户会话句柄

ub4 credt, //认证类型 ub4 mode //操作模式 );

*认证类型:

OCI_CRED_RDBMS:用数据库用户名和密码进行认证,则先要设置

OCI_ATTR_USERNAME和OCI_ATTR_PASSWORD属性 OCI_CRED_EXT:外部认证,不需要设置用户和密码

OCI_DEFAULT:用户会话环境只能被指定的服务器环境句柄所设置 OCI_SYSDBA:用户要具有sysdba权限 OCI_SYSOPER:用户要具有sysoper权限 Eg:

swResult = OCISessionBegin(svchp, errh,usrhp, OCI_CRED_RDBMS,

OCI_DEFAULT);

if(swResult != OCI_SUCCESS && swResult != OCI_SUCCESS_WITH_INFO) return FALSE;

sword OCISessionEnd ( OCISvcCtx *svchp,

OCIError *errhp, OCISession *usrhp,

ub4 mode );

6.读取错误信息 sword OCIErrorGet (

dvoid *hndlp, //错误句柄

ub4 recordno,//从那里读取错误记录,从1开始 text *sqlstate,//已取消,=NULL sb4 *errcodep, //错误号 text *bufp, //错误内容 ub4 bufsiz, //bufp长度

ub4 type //传递的错误句柄类型 =OCI_HTYPE_ERROR:错误句柄 =OCI_HTYPE_ENV:环境句柄 ); eg:

ub4 ub4RecordNo = 1; OCIError* hError

sb4 sb4ErrorCode; char sErrorMsg[1024];

if (OCIErrorGet(hError, ub4RecordNo++, NULL, &sb4ErrorCode,

(OraText*) sErrorMsg, sizeof(sErrorMsg), OCI_HTYPE_ERROR) ==

OCI_SUCCESS)

printf(“error msg:%s\\n”, sErrorMsg);

7.准备SQL语句

sword OCIStmtPrepare (

OCIStmt *stmtp,//语句句柄

OCIError *errhp,

CONST text *stmt, //SQL语句

ub4 stmt_len, //语句长度

ub4 language, //语句的语法格式

=OCI_NTV_SYNTAX

ub4 mode //=OCI_DEFAULT ); eg:

char sSQL[1024];

sprintf(sSQL, “select table_name from user_tables”);

…… 此处隐藏:137字,全部文档内容请下载后查看。喜欢就下载吧 ……
常用OCI函数使用说明(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/607794.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)