c++连接sql2000 或者Oracle的 小实例

mbmayoucheng 2009-04-22 08:02:04
c++连接sql2000 或者Oracle的 小实例 c++新手 对于Oracle和sql2000 倒是知晓一二 只是对于c++运用ado方法不是很明确 希望各位大侠鼎力相助 在c++或vc中增删改查基本功能的实现 数据库 最好能给附上 简单一点 小弟能够举一反三 我的邮箱mbmayoucheng@163.com 先谢谢各位捧场的啦 急 暂避
...全文
152 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
ado.odle什么的.例子蛮多的.
http://topic.csdn.net/t/20050429/08/3975016.html
mataihang 2009-04-23
  • 打赏
  • 举报
回复
使用ADO 连接数据库1,在Stdafx.h文件的所有include之后加上语句:#import "C:\Program Files\Common Files\System\ado\msado15.dll"no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")注意以上的代码要在一行内写完。2,给你提供两个C++类,用来连接数据库// ADOConn.h: interface for the ADOConn class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_ADOCONN_H__F45E367E_06FC_4D15_94B5_482128EDF659__INCLUDED_)#define AFX_ADOCONN_H__F45E367E_06FC_4D15_94B5_482128EDF659__INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000class ADOConn {public: ADOConn(); virtual ~ADOConn(); _ConnectionPtr m_pConnection; _RecordsetPtr m_pRecordset; void OnInitADOConn(); _RecordsetPtr& GetRecordSet(_bstr_t bstrSQL); BOOL ExecuteSQL(_bstr_t bstrSQL); void ExitConnect();};#endif // !defined(AFX_ADOCONN_H__F45E367E_06FC_4D15_94B5_482128EDF659__INCLUDED_)下面是实现.cpp文件// ADOConn.cpp: implementation of the ADOConn class.////////////////////////////////////////////////////////////////////////#include "stdafx.h"#include "HumanResource.h"#include "ADOConn.h"#ifdef _DEBUG#undef THIS_FILEstatic char THIS_FILE[]=__FILE__;#define new DEBUG_NEW#endif//////////////////////////////////////////////////////////////////////// Construction/Destruction//////////////////////////////////////////////////////////////////////ADOConn::ADOConn(){}ADOConn::~ADOConn(){}//初始化,连接数据库void ADOConn::OnInitADOConn(){ //初始化OLD/COM库环境 ::CoInitialize(NULL); try { //创建Connection对象 m_pConnection.CreateInstance("ADODB.Connection"); //设置连接字符串 _bstr_t strConnect = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Human;Data Source=."; //SERVER和UID,PWD根据实际情况来设置 m_pConnection->Open(strConnect,"","",adModeUnknown); } //捕捉异常 catch(_com_error e) { //显示错误信息 AfxMessageBox(e.Description()); }}//执行查询_RecordsetPtr& ADOConn::GetRecordSet(_bstr_t bstrSQL) { try { //连接数据库,如果Connection对象为空,则重新连接数据库 if (m_pConnection == NULL) OnInitADOConn(); //创建记录集对象 m_pRecordset.CreateInstance(_uuidof(Recordset)); //取得表中的记录 m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); } catch(_com_error e) { AfxMessageBox(e.Description()); } //返回记录集 return m_pRecordset;}//执行SQL语句BOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL){ _variant_t RecordsAffected; try { //是否已连接数据库 if (m_pConnection == NULL) OnInitADOConn(); //Connection对象的Execute方法(_bstr_t CommandText,VARIANT *RecordsAffected,long Options) //CommandText是命令字符串,通常是SQL命令 //RecordsAffected操作完成后所影响的行数 //Options表示的是CommandText类型,adCmdText-文本命令,adCmdTable-表名 //adCmdProc-存储过程,adCmdUnknown-未知 m_pConnection->Execute(bstrSQL,NULL,adCmdText); return true; } catch(_com_error e) { AfxMessageBox(e.Description()); return false; }} //断开数据库连接void ADOConn::ExitConnect() { //关闭记录集和连接 if (m_pRecordset != NULL) m_pRecordset->Close(); m_pConnection->Close(); //释放环境 ::CoUninitialize();}复制,可以直接使用该类。注意上面文件中的Catalog=Human,这里的human在使用中要改成你自己的数据库名称。
  • 打赏
  • 举报
回复
使用ADO 连接数据库,这边有比较完整的例子

http://wenwen.soso.com/z/q113090121.htm
mbmayoucheng 2009-04-23
  • 打赏
  • 举报
回复
给自己顶顶 帮帮忙啊!~~
operatingtuzi 2009-04-23
  • 打赏
  • 举报
回复
Initial Catalog=s是使用的数据库
Execute的第一个参数是想要执行的语句
pRecordset->GetCollect是取出表中的某个域,也就是某一列
operatingtuzi 2009-04-23
  • 打赏
  • 举报
回复


//导入ADO类型库
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF", "EndOfFile")


int main(int argc, char* argv[])
{
//初始化Com对象
CoInitialize(NULL);

_ConnectionPtr pConnection;

_RecordsetPtr pRecordset;

_variant_t TheValue;

pConnection.CreateInstance(__uuidof(Connection));

pRecordset.CreateInstance (__uuidof(Recordset));
try
{
//初始化数据库连接对象
// _ConnectionPtr pConn("ADODB.Connection");
//打开数据库连接
pConnection->Open"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=s;", "", "", adConnectUnspecified);

pRecordset=pConnection->Execute("select * from UserInfo",0,adCmdText);

while(!pRecordset->EndOfFile)
{
cout<<"UserName:"<<_bstr_t(pRecordset->GetCollect("UserName"))<<"\t";
cout<<"Password:"<<_bstr_t(pRecordset->GetCollect("Password"))<<endl;
pRecordset->MoveNext();
}

//关闭记录集*/
pRecordset->Close();
//关闭数据库连接
pConnection->Close();

}
catch(_com_error &e)
{
cout<<e.ErrorMessage()<<endl;
}
CoUninitialize();
return 0;
}
mbmayoucheng 2009-04-23
  • 打赏
  • 举报
回复
谁说论坛里高手如云 都是虚的 一个个什么都不会 装犊子 连一个菜鸟问题都不能回答 不能帮忙解决 算什么啊都!
周药师 2009-04-22
  • 打赏
  • 举报
回复
开发程序 操作数据库
首先选定用什么开发工具,
然后选定用什么类
再用什么方法
mengde007 2009-04-22
  • 打赏
  • 举报
回复
百度,谷歌;

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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