如题,我用VS2003+OCCI做连接ORACLE的东西,当我运行一次之后,修改源代码就无法再生成,原因是有文件被占用,如下:------ 已启动生成: 项目: 命令行数据库连接, 配置: Debug Win32 ------正在链接...
LINK : fatal error LNK1168: 无法打开 Debug/命令行数据库连接.exe 进行写入生成日志保存在“file://f:\Project\Visual Studio 2003 Project\命令行数据库连接\Debug\BuildLog.htm”中
命令行数据库连接 - 1 错误,0 警告
---------------------- 完成 --------------------- 生成: 0 已成功, 1 已失败, 0 已跳过直接删除也提示文件正在使用,不知道这个是我写的代码结束连接的问题,还是其他的哪里问题?有没有哪位大侠遇到过?
我的代码:
#include "Stdafx.h"
#include <iostream>
#include <occi.h>using namespace std;
using namespace oracle::occi; Environment *env;
Connection *conn;
Statement *stmt;
ResultSet *rset;
string tableName;
string typeName;void main()
{
Environment * env=Environment::createEnvironment(Environment::DEFAULT);
cout << "Ready, let's go!" << endl; cout << "Trying" << endl;
Connection *conn=env->createConnection("broadsky","111111","");
cout << "Done!" << endl;
if (conn)
cout << "SUCCESS - createConnection" <<"\tconn="<<conn<< endl;
else
cout << "FAILURE - createConnection" <<"\tconn="<<conn<<endl;
stmt = conn->createStatement("SELECT * FROM t1");
rset=stmt->executeQuery();
while (rset->next())
{
cout<<"the empno is:"<<rset->getString(1)<<"\t"<<rset->getString(2)<<"\t";
cout<<rset->getString(3)<<"\t"<<rset->getString(4)<<"\t"<<rset->getString(5)<<"\t"<<endl;
}
stmt->closeResultSet (rset);
conn->terminateStatement (stmt);
env->terminateConnection (conn);
Environment::terminateEnvironment(env);
system("PAUSE");
}
LINK : fatal error LNK1168: 无法打开 Debug/命令行数据库连接.exe 进行写入生成日志保存在“file://f:\Project\Visual Studio 2003 Project\命令行数据库连接\Debug\BuildLog.htm”中
命令行数据库连接 - 1 错误,0 警告
---------------------- 完成 --------------------- 生成: 0 已成功, 1 已失败, 0 已跳过直接删除也提示文件正在使用,不知道这个是我写的代码结束连接的问题,还是其他的哪里问题?有没有哪位大侠遇到过?
我的代码:
#include "Stdafx.h"
#include <iostream>
#include <occi.h>using namespace std;
using namespace oracle::occi; Environment *env;
Connection *conn;
Statement *stmt;
ResultSet *rset;
string tableName;
string typeName;void main()
{
Environment * env=Environment::createEnvironment(Environment::DEFAULT);
cout << "Ready, let's go!" << endl; cout << "Trying" << endl;
Connection *conn=env->createConnection("broadsky","111111","");
cout << "Done!" << endl;
if (conn)
cout << "SUCCESS - createConnection" <<"\tconn="<<conn<< endl;
else
cout << "FAILURE - createConnection" <<"\tconn="<<conn<<endl;
stmt = conn->createStatement("SELECT * FROM t1");
rset=stmt->executeQuery();
while (rset->next())
{
cout<<"the empno is:"<<rset->getString(1)<<"\t"<<rset->getString(2)<<"\t";
cout<<rset->getString(3)<<"\t"<<rset->getString(4)<<"\t"<<rset->getString(5)<<"\t"<<endl;
}
stmt->closeResultSet (rset);
conn->terminateStatement (stmt);
env->terminateConnection (conn);
Environment::terminateEnvironment(env);
system("PAUSE");
}
vc里面terminateConnection 就是closeConnection吗?另外
system("PAUSE");
是不是代表退出?
vc里面的内存释放要及时吧。我觉得应该是代码或者编译器的问题,不会是数据库的问题。