您的位置:首页 > 数据库 > Oracle

VC在控制台模式下访问Oracle数据库的操作指令

2013-11-04 09:04 411 查看
#include <afx.h>
#include <iostream>
#import "C:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF","adoEOF")
using namespace std;
#define BUFSIZE 64
int main()
{
//char buf[BUFSIZE];
//int index;
_ConnectionPtr m_pConnection;
CoInitialize(NULL);//初始化COM组件
HRESULT hr=m_pConnection.CreateInstance(__uuidof(Connection));
if(SUCCEEDED(hr))
{
cout<<"创建Connection对象成功!"<<endl;
}
try
{
_bstr_t strConnect="Provider=OraOLEDB.Oracle;User ID=scott;Password=19900624;Persist Security Info=True;Data Source=\"(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.108.85.137)(PORT = 1521)) )(CONNECT_DATA = (SID = ORCL)(SERVER=DEDICATED)))\"";
hr=m_pConnection->Open(strConnect,"","",NULL);
if(SUCCEEDED(hr))
cout<<"数据库已连接!"<<endl;

}

catch(_com_error e) //捕捉异常
{
cout<<e.ErrorMessage()<<e.Description()<<endl;
//cout<<"error"<<endl;
return FALSE;
}

/////////////////查询数据库操作//////////////////////
_variant_t var1;
_RecordsetPtr m_pRecordset=NULL;  //创建一个数据集智能指针
m_pRecordset.CreateInstance(__uuidof(Recordset));//初始化Recordset指针
char *content;
char type;
cin>>type;
switch(type)
{
case 's':
try
{
CString sql;
sql="select * from DB_USER";
m_pRecordset=m_pConnection->Execute((_bstr_t)sql,NULL,adCmdText);

}
catch(_com_error *e)
{
cout<<e->ErrorMessage()<<endl;
}

try
{
if(!m_pRecordset->BOF)
{
m_pRecordset->MoveFirst();
}
else
{
cout<<"表内为空"<<endl;
}
while(!m_pRecordset->adoEOF)
{
//var1=m_pRecordset->Fields->GetItem("USERNAME")->GetValue();
var1=m_pRecordset->GetCollect("USERNAME");
m_pRecordset->MoveNext();
if(var1.vt!=VT_NULL)
{
content=_com_util::ConvertBSTRToString((_bstr_t)var1);
}
cout<<"从数据库得到数据:"<<content<<endl;
}
}
catch(_com_error *e)
{
cout<<e->ErrorMessage()<<endl;
}
break;
case 'd':
try
{
_variant_t RecordsAffected;
CString sql;
sql="delete * from DB_USER where USERID='3'";
m_pConnection->Execute((_bstr_t)sql,&RecordsAffected,adCmdText);
cout<<"删除成功!"<<endl;
}
catch(_com_error *e)
{
cout<<e->ErrorMessage()<<endl;
return 0;
}
break;
case 'u':
try
{
_variant_t RecordsAffected;
CString sql;
sql="update DB_USER set EMAIL='cupt5634@126.com' where USERID=1";
m_pConnection->Execute((_bstr_t)sql,&RecordsAffected,adCmdText);
cout<<"更新成功!"<<endl;
break;
}
catch(_com_error *e)
{
cout<<e->ErrorMessage()<<endl;
return 0;
}
case 'a':
try
{
_variant_t  RecordsAffected;
CString sql;

sql="insert into DB_USER (USERNAME,PWD1,SEX,EMAIL,USERID)values ('Allen','1235698','女','698797@qq.com','3')";
m_pConnection->Execute((_bstr_t)sql,&RecordsAffected,adCmdText);
cout<<"数据添加成功!"<<endl;
}
catch(_com_error *e)
{
cout<<e->ErrorMessage()<<endl;
return 0;
}
break;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: