c oracle 客户端
导读:C语言作为一门广泛应用的编程语言,一直都有着重要的地位。而Oracle作为一个世界级数据库管理系统,也被广泛应用于各种应用中。在实际应用过程中,C语言和Oracle的结合,也是非常普遍的。本文将就C语言与Oracle客户端的关联,进行详细的...
C语言作为一门广泛应用的编程语言,一直都有着重要的地位。而Oracle作为一个世界级数据库管理系统,也被广泛应用于各种应用中。在实际应用过程中,C语言和Oracle的结合,也是非常普遍的。本文将就C语言与Oracle客户端的关联,进行详细的阐述。
为了更深入地理解C语言与Oracle客户端的关系,我们以C语言连接Oracle数据库中的一个表为例进行说明。在这个例子当中,我们将通过C语言连接Oracle数据库,并且使用OCI(Oracle Call Interface)访问其中的一个表。代码流程如下:
OCIEnv * envhp;
OCIError * errhp;
OCIServer * srvhp;
OCIStmt * stmthp;
OCIStmt * stmthp_sel;
OCIDefine * defnhp = NULL;
oraub8 myARRAY[MYBUFFSZ];
OCIParam *colhp;
text colname[MAX_COLNAMELEN + 1] ;
*envhp = NULL ;
*errhp = NULL ;
*srvhp = NULL ;
*stmthp = NULL ;
/* 创建运行环境 */OCIEnvCreate(envhp, OCI_OBJENV , (dvoid *) 0,(dvoid * (*)(dvoid *, size_t)) 0,(dvoid * (*)(dvoid *, dvoid *, size_t)) 0,(void (*)(dvoid *, dvoid *)) 0,0, (dvoid **) 0);
/* 创建错误处理环境 */OCIHandleAlloc((dvoid *)envhp, (dvoid **)&
errhp, (ub4) OCI_HTYPE_ERROR, 0, (dvoid **)0);
/* 创建服务器环境 */OCIHandleAlloc((dvoid *)envhp, (dvoid **)&
srvhp, (ub4) OCI_HTYPE_SERVER, 0, (dvoid **)0);
/* 进行连接 */OCIAttrSet((dvoid *)srvhp, (ub4)OCI_HTYPE_SERVER, (dvoid *)"ORACLE_SID", strlen("ORACLE_SID"), OCI_ATTR_SERVER, (OCIError *)errhp);
OCIAttrSet((dvoid *)srvhp, (ub4)OCI_HTYPE_SERVER, (dvoid *)"ORACLE_SERVERNAME", strlen("ORACLE_SERVERNAME"), OCI_ATTR_SERVER, (OCIError *)errhp);
OCILogon2(envhp, errhp, &
srvhp, (OraText *)"username", strlen("username"), (OraText *)"password", strlen("password"), (OraText *)"RACDB", strlen("RACDB"), OCI_DEFAULT)/* SQL准备 */OCIHandleAlloc((dvoid *)envhp, (dvoid **)&
stmthp, (ub4) OCI_HTYPE_STMT, 0, (dvoid **)0);
/* 建立命令 */OCIStmtPrepare(stmthp, errhp, (text *)"select * from yourtablename", strlen("select * from yourtablename"),(ub4) OCI_NTV_SYNTAX, (ub4) OCI_DEFAULT);
/* 执行命令 */OCIStmtExecute(svchp, stmthp, errhp, (ub4) 1, (ub4) 0, (OCISnapshot *) NULL,(OCISnapshot *) NULL, OCI_DEFAULT);
/* 获取返回结果 */OCIParamGet(stmthp, (ub4) OCI_HTYPE_STMT, errhp, (dvoid **) &
colhp, (ub4) 1);
ub2 mycolcnt ;
OCIAttrGet((dvoid *) colhp, (ub4)OCI_DTYPE_PARAM, (dvoid *)&
mycolcnt, (ub4 *) 0, (ub4)OCI_ATTR_NUM_COLS, errhp);
for( i = 1 ;
i
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: c oracle 客户端
本文地址: https://pptw.com/jishu/504911.html