谁能介绍OCI,及如何将C++连到oracle上。躬请jin_75@sina.com

waner 2000-05-24 03:44:00
有谁能介绍一下有关OCI接口,及如何将C++连到oracle上。躬请jin_75@sina.com
...全文
145 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
shshsh_0510 2000-07-26
  • 打赏
  • 举报
回复
下面的代码连接ora8数据库,更改scott密码:

OCIEnv *envhp;
OCIServer *srvhp;
OCIError *errhp;
OCISvcCtx *svchp;
OCIStmt *stmthp;
OCISession *usrhp;
dvoid *tmp;
OCIInitialize((ub4) OCI_THREADED | OCI_OBJECT, (dvoid *)0, (void *(__cdecl *)(void *,unsigned int)) 0,
(void *(__cdecl *)(void *,void *,unsigned int)) 0, (void (__cdecl *)(void *,void *)) 0 );
OCIHandleAlloc( (dvoid *) NULL, (dvoid **) &envhp, (ub4) OCI_HTYPE_ENV,
52, (dvoid **) &tmp);
OCIEnvInit( &envhp, (ub4) OCI_DEFAULT, 21, (dvoid **) &tmp );
OCIHandleAlloc( (dvoid *) envhp, (dvoid **) &errhp, (ub4) OCI_HTYPE_ERROR,
52, (dvoid **) &tmp);
OCIHandleAlloc( (dvoid *) envhp, (dvoid **) &srvhp, (ub4) OCI_HTYPE_SERVER,
52, (dvoid **) &tmp);

//OCIServerAttach( srvhp, errhp, (text *) 0, (sb4) 0, (ub4) OCI_DEFAULT);
OCIServerAttach( srvhp, errhp, (CONST text *)"sora8", (sb4)strlen("sora8"), (ub4) OCI_DEFAULT);

OCIHandleAlloc( (dvoid *) envhp, (dvoid **) &svchp, (ub4) OCI_HTYPE_SVCCTX,
52, (dvoid **) &tmp);

OCIAttrSet( (dvoid *) svchp, (ub4) OCI_HTYPE_SVCCTX,
(dvoid *) srvhp, (ub4) 0,
(ub4) OCI_ATTR_SERVER, (OCIError *) errhp);
OCIHandleAlloc((dvoid *)envhp, (dvoid **)&usrhp, (ub4) OCI_HTYPE_SESSION,
(size_t) 0, (dvoid **) 0);
OCIAttrSet((dvoid *)usrhp, (ub4)OCI_HTYPE_SESSION,
(dvoid *)"scott", (ub4)strlen("scott"),
OCI_ATTR_USERNAME, errhp);
OCIAttrSet((dvoid *)usrhp, (ub4)OCI_HTYPE_SESSION,
(dvoid *)"tiger", (ub4)strlen("tiger"),
OCI_ATTR_PASSWORD, errhp);
OCISessionBegin (svchp, errhp, usrhp, OCI_CRED_RDBMS, OCI_DEFAULT);
OCIAttrSet((dvoid *)svchp, (ub4)OCI_HTYPE_SVCCTX,
(dvoid *)usrhp, (ub4)0,
OCI_ATTR_SESSION, errhp);
OCIHandleAlloc( (dvoid *) envhp, (dvoid **) &stmthp,
(ub4) OCI_HTYPE_STMT, 50, (dvoid **) &tmp);
OCIPasswordChange(svchp,errhp,(CONST text *)"scott", (ub4)strlen("scott"),
(CONST text *)"tiger", (ub4)strlen("tiger"),
(CONST text *)"ls", (ub4)strlen("ls"),OCI_DEFAULT);
MessageBox(NULL,"ls","ok",MB_OK);
OCIHandleFree((dvoid *) stmthp, (ub4) OCI_HTYPE_STMT);
OCISessionEnd(svchp, errhp, usrhp, (ub4)OCI_DEFAULT);
OCIServerDetach( srvhp, errhp, (ub4) OCI_DEFAULT );
OCIHandleFree((dvoid *) srvhp, (ub4) OCI_HTYPE_SERVER);
OCIHandleFree((dvoid *) svchp, (ub4) OCI_HTYPE_SVCCTX);
OCIHandleFree((dvoid *) errhp, (ub4) OCI_HTYPE_ERROR);

laser 2000-07-23
  • 打赏
  • 举报
回复
如果是window95,在\ORACLE_HOME\oci73\example下,注意如果是用borland c++要 用ORACLE_HOME\oci73\example\borland\demo6来试
hanjzh 2000-07-20
  • 打赏
  • 举报
回复
在ORACLE_HOME/plsql/demo目录下有例子
Oracle Instant Client 11.2.0.1.0是轻量级Oracle客户端,用于连接访问Oracle 9i、10g、11g 11.2.0.1.0版本的Oracle数据库。 Oracle Instant Client11.2.0.1.0 安装程序包含OCI/ OCCI、JDBC-OCI SDK(软件开发工具包),软件开发时所需的全部头文件和链接库。 此版本不支持 Pro*C/C++和.NET程序所需的Oracle Provider for OLE DB,如需支持上述功能,请访问并下载ODAC(Oracle Data Access Components,其包含 ODP.NET, Oracle Services for MTS, Oracle Providers for ASP.NET):  http://www.oracle.com/technetwork/database/windows/downloads/utilsoft-087491.html  http://www.oracle.com/technetwork/cn/database/windows/downloads/index-101312-zhs.html 此版本集成了Oracle 11g 11.2.0.1.0中的实用工具tnsping、exp/imp,支持 Object Browser、TOAD等 Oracle 管理工具,并在Windows XP、Windows Vista、Windows 7平台下测试通过。 注意: 1. 请勿使用高版本的exp/imp工具对低版本的Oralce数据库进行导出,导入操作。 2. 安装完成后需手工配置 %TNS_ADMIN%\tnsnames.ora 文件,内容如下: ??? = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = xxxxxx) ) ) 1. 将 ??? 改为任意名字,这个名字将在你的程序或程序配置中用到。 2. 将 xxx.xxx.xxx.xxx 改为要连接的 Oracle 服务器的机器名或IP地址。 3. 将 xxxxxx 改为要连接的 Oracle 服务器的 SID,如不知道 SID,请询问安装 Oracle 数据库的管理人员。 相关网站: Oracle Instant Client 主页 http://www.oracle.com/technetwork/database/features/instant-client/index-100365.html Oracle Instant Client 常见问题 http://www.oracle.com/technetwork/database/features/oci/ic-faq-094177.html#A3661 SQL*Plus http://download.oracle.com/docs/cd/E11882_01/server.112/e16604/apd.htm#sthref3169 SDK: OCIOracle Call Interface) http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10646/oci01int.htm#i423362 OCCI(Oracle C++ Call Interface) http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10764/install.htm#CACFFGHF 如需源码或技术支持: Email: gosearcher@gmail.com

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧