日期:2014-05-16  浏览次数:21392 次

vs2010下怎么用OCCI?
我已安装oracle11g,64位的win7,vs2010中的配置如下:

包含目录:

D:\app\Administrator\product\11.2.0\dbhome_1\OCI\include;$(IncludePath)

库目录:

D:\app\Administrator\product\11.2.0\dbhome_1\OCI\lib\MSVC\vc10;D:\app\Administrator\product\11.2.0\dbhome_1\OCI\lib\MSVC;$(LibraryPath)


链接器 输入中的 附加依赖项:

oraocci11.lib;oraocci11d.lib;%(AdditionalDependencies)


代码如下:


#include <iostream>

#include <occi.h>

#pragma comment(lib,"oraocci11d.lib")

using namespace std;

using namespace oracle::occi;

int main(){

 string username="scott";

 string password="tiger";

 string connstring="";

 oracle::occi::Environment *env=Environment::createEnvironment();//创建一个环境

 Connection *conn=env->createConnection(username,password,connstring);//创建一个数据库连接对象

 Statement *stmt=conn->createStatement();//创建一个Statement对象

 stmt->executeUpdate("create table student (sno number(2),sname varchar2(10))");//创建一张表

 conn->terminateStatement(stmt);//终止Statement对象

 env->terminateConnection(conn);//断开数据库

 oracle::occi::Environment::terminateEnvironment(env);//终止环境

 return 0;

}


错误如下:

1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets(268,5): error MSB6006: “link.exe”已退出,代码为 1120。

1>test1.obj : error LNK2019: 无法解析的外部符号 "public: static void __cdecl oracle::occi::Environment::terminateEnvironment(class oracle::occi::Environment *)" (?terminateEnvironment@Environment@occi@oracle@@SAXPAV123@@Z),该符号在函数 _main 中被引用

1>test1.obj : error LNK2019: 无法解析的外部符号 "public: static class oracle::occi::Environment * __cdecl oracle::occi::Environment::createEnvironment(enum oracle::occi::Environment::Mode,void *,void * (__cdecl*)(void *,unsigned int),void * (__cdecl*)(void *,void *,unsigned int),void (__cdecl*)(void *,void *))" (?createEnvironment@Environment@occi@oracle@@SAPAV123@W4Mode@123@PAXP6APAX1I@ZP6APAX11I@ZP6AX11@Z@Z),该符号在函数 _main 中被引用

1>d:\users\administrator\documents\visual studio 2010\Projects\OCCITest\Debug\OCCITest.exe : fatal error LNK1120: 2 个无法解析的外部命令

请问怎么解决?

------解决方案--------------------
D:\app\Administrator\product\11.2.0\dbhome_1\OCI\lib\MSVC\vc10
目录下的oraocci11.lib是不是正确的版本
如果是64位版的必须配置vc编译目标位x64否则无法link