佛山白坭网站建设,网站维护一般多久,大兴模板网站建设,杭州建设网 执法人员名单欢迎进入Oracle社区论坛#xff0c;与200万技术人员互动交流 进入 sword OCIEnvInit ( OCIEnv **envhpp, ub4 mode, size_t xtramemsz, dvoid **usrmempp ); 注#xff1a; 在8i以后#xff0c;可用OCIEnvCreate一个函数就可以初始化环境了#xff0c;相当于OCIIni…欢迎进入Oracle社区论坛与200万技术人员互动交流 进入 sword OCIEnvInit ( OCIEnv **envhpp, ub4 mode, size_t xtramemsz, dvoid **usrmempp ); 注 在8i以后可用OCIEnvCreate一个函数就可以初始化环境了相当于OCIInitialize OCIEnvInit 2申请/欢迎进入Oracle社区论坛与200万技术人员互动交流 进入sword OCIEnvInit (OCIEnv **envhpp,ub4 mode,size_t xtramemsz,dvoid **usrmempp);注在8i以后可用OCIEnvCreate一个函数就可以初始化环境了相当于OCIInitialize OCIEnvInit2申请/释放句柄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_SVCCTXSQL语句句柄OCIStmt, 句柄类型OCI_HTYPE_STMTeg: 申请一个错误句柄OCIErrorswResult 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_SESSIONeg:设置用户名和密码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,//服务器SIDsb4 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 *svchpOCIError *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,//已取消NULLsb4 *errcodep, //错误号text *bufp, //错误内容ub4 bufsiz, //bufp长度ub4 type //传递的错误句柄类型OCI_HTYPE_ERROR:错误句柄OCI_HTYPE_ENV环境句柄);eg:ub4 ub4RecordNo 1;OCIError* hErrorsb4 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);[1] [2] [3] [4] [5]本文原创发布php中文网转载请注明出处感谢您的尊重