前段时间,在csdn论坛上看到有人问OCCI在VC6下不能debug的问题,这个确实有解决方法。
论坛原帖大致内容如下:
winXP VC6-sp6 oracle9.2
是不是OCCI的库有 开发版和发行版 之分,所以用发行版的oraocci9.lib不能做debug版的程序,string或者vector在释放时总会报错
Statement类的setXXX()函数为什么我在使用的时候不管用呢?
文档说NUMBER类型也可以和string转换
在
while(rs->next())
{
for(i=0; i<colsize; i++)
{
cout <<rs->getString(i+1) <<'\t';
}
cout <<endl;
}
这个程序段中,为什么第一行中的NUMBE类型都正常的读出了,但是从第二行开始就不正确了呢
如果我在while()前先next()几次,仍然是当前循环中的第一行的所有的number类型都正常读出,从第二行开始就又不正常了
在三年以前我曾经使用OCCI开发过一些底层应用,其基本的解决方法如下:
vc6的那个默认的步骤debug肯定行不通。因为OCCI不按这种配置来compile.
步骤如下:
1. 确保oci.lib, oraocci9.lib在你的lib路径下边,确保oci/include在你的include路径下边
2. 确保有下边的宏声明:(#define WIN32COMMON)
#ifdef WIN32COMMON
template <class T>
void getVector( ResultSet *rs, unsigned int index,
OCCI_STD_NAMESPACE::vector< T > &vect) ;
#else
template <class T>
void getVector( ResultSet *rs, unsigned int index,
OCCI_STD_NAMESPACE::vector< T* > &vect) ;
#endif
3.这一步最重要,要与VC6的默认配置相区别:
在project settings的WIN32 DEBUG的"link"下边,将Category: Input下边的
Object/library modules:
改为kernel32.lib user32.lib oci.lib msvcrt.lib msvcprt.lib oraocci9.lib (顺序不能错)
同时,勾上Ignore all default libraries,
并在Ignore libraries上边填上边libc.lib
这要build出来以来,执行是不会出现堆错误的。并且可以debug。
使用occi与其它库进行集成时,尤其要注意这些配置,有的时候甚至出现不相容的情况。所以要根据实际情况进行选择。
当然,你可以使用MTD, MD方式来build。
到了VC7以后,OCCI相应的要求就少多了。
linux下当初OCCI是有很多bug的,除非打了9205及以后的补丁,不然,你几乎无法正常使用。
如果有再碰到类似问题,请及时回馈。
分享到:
相关推荐
在“使用OCCI开发Oracle9i数据库应用程序”这个主题中,我们将深入探讨如何利用OCCI在Visual Studio .NET环境下开发针对Oracle9i数据库的应用程序。 首先,理解OCCI的基本概念是至关重要的。OCCI是一组C++类库,...
本文将详细介绍如何在VC项目中使用OCci(Oracle C++ Connector)库进行Oracle数据库的连接,并基于提供的`testocci.cpp`和`testocci.h`文件来解析其核心知识点。 首先,OCci是Oracle公司为C++开发者提供的一种更高...
在本案例中,"ORACLE支持VC2005的OCCI库"意味着这些文件是为Visual C++ 2005(也称为Visual Studio 2005或VC++ 8.0)编译器优化的,使得开发者能够在该环境下利用OCCI进行Oracle数据库的开发。 `oraocci10d.dll`和`...
此外,结合官方文档和社区资源,及时获取最新的API信息和解决问题的方法,对于全面和深入地掌握OCCI也是极其重要的。 随着数据库技术的不断演进,OCCI也在持续地更新和迭代。Oracle公司针对OCCI推出了新的版本,以...
在本篇中,我们将深入探讨如何使用OCCI(Oracle Call Interface)访问Oracle数据库,特别是针对已处理好的开发包,该包包含了InstantClient、SDK以及针对VC9(Visual Studio 2008)的库。首先,理解OCCI是Oracle公司...
Oracle OCCI,全称为Oracle Call Interface for C++,是Oracle公司提供的一种C++编程接口,用于与Oracle数据库进行交互。...如果你在实际操作中遇到问题,或者想要深入理解OCCI的工作原理,阅读这份文档会非常有帮助。
比较这几种方式,前者因为是通用技术,开发起来比较容易,但是有一个致命的弱点就是诸如ADO之类的通用技术的速度太慢,如果我们要开发管理海量数据的数据库,比如影像数据库,那么,这种速度我们是不能忍受的。...
在Oracle培训PPT中,通常会涵盖OCCI的基本概念、安装配置、数据访问、事务管理、异常处理等多个方面。 1. **OCCI基本概念**: - OCCI是Oracle数据库的C++ API,它提供了与SQL和PL/SQL的直接交互。 - OCCI基于C++...
### vc6.0下occi配置 在进行`vc6.0下occi配置`时,我们需要关注几个关键步骤:环境准备、库文件路径设置、链接器配置以及预处理器定义...如果遇到任何问题,建议查阅Oracle官方文档或社区资源以获得更详细的解决方案。
OCCI自Oracle 9i版本中引入,拥有不断增长的用户基础,提供了一系列封装良好的类和接口,旨在方便使用,支持关系型和对象关系型访问,并具有可扩展性特点。OCCI的特点是采用标准C++语言和面向对象设计,使得应用程序...
在Linux环境下,C++与Oracle数据库的交互主要依赖于Oracle Call Interface (OCI)。OCI是Oracle公司提供的一个C语言库,用于开发与Oracle数据库交互的应用程序。本篇将深入探讨如何利用C++和OCPI在Linux系统上进行...
OCCI开发包大全(包括vc7 vc8 vc9 vc10 vc14 多个版本)。OCCI开发需要对应的sdk与vs版本对应,包括debug和release版本,版本如下: Visual Studio 6 : vc6 Visual Studio 2003 : vc7 Visual Studio 2005 : vc8 ...
OCCI 添加 Oracle 特殊数据字段支持 OCCI(Oracle C++ Call Interface)是一种基于 C++ 的 Oracle 数据库接口,允许开发者使用 C++ 语言访问 Oracle 数据库。OCCI 提供了一个强大且灵活的方式来访问 Oracle 数据库...
标题中的“OCCI 32位,在Win 32位下运行,使用64位Oracle 11g或以上”表明我们正在讨论一个关于在32位Windows操作系统上使用Oracle Call Interface (OCCI)的场景,而这个环境是与64位版本的Oracle 11g数据库兼容的。...
本文主要探讨了基于OCCI(Oracle C++ Call Interface)技术在Oracle9i数据库应用程序开发中的应用方法。OCCI是Oracle公司提供的一组C++接口,用于访问Oracle数据库,它在Oracle9i中首次引入,是对之前OCI(Oracle ...
Oracle 10g OCCI(Oracle Call Interface)是Oracle数据库提供的一种C++接口,用于开发人员直接在C++应用程序中与Oracle数据库进行交互。连接池技术在数据库管理中扮演着重要角色,它优化了数据库资源的使用,提高了...
总之,OCCI 64位SDK在64位Windows环境下与64位Oracle 11g或更高版本结合使用,能让你开发出高效、稳定的64位数据库应用。通过理解OCCI的基本概念和使用方法,你将能够充分利用Oracle数据库的强大功能。
Oracle OCCI 连接示例程序 准备工作: ... 1. 修改 项目属性-> C++ ...3. 修改 项目属性-> 链接器 -> 附加库目录 , 指向你的MSVC OCCI lib 和dll所在目录, 我的是: D:\Oracle\product\11.2.0\dbhome_1\OCI\lib\MSVC\vc9
文件列表 occi10gr2samples.tar.gz occi10gsamples.tar.gz occi920.tar.gz occiplsql.tar.gz occispatial.tar.gz occivc9win32_111060.zip