急需纯C++\C的连接数据库的简易代码

chenyu2202863 2007-08-31 06:26:10
主要就是能连接数据库就可以了,不需要界面,在控制台运行的.
需要有注释,不要MFC的代码

希望有人给小弟讲讲,谢谢!
在线更新...
...全文
272 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenyu2202863 2007-09-01
  • 打赏
  • 举报
回复
有ODBC的连接方法代码没?
jhs1982419 2007-09-01
  • 打赏
  • 举报
回复
#ifdef INCLUDE_DATABASE
// ------------------------------------------------------------------------------------------------
// 初始化COM,创建ADO连接等操作
AfxOleInit();
m_pConnection.CreateInstance(__uuidof(Connection));

// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
// 因为它有时会经常出现一些想不到的错误。
try
{
// 连接Korea Project数据库
if( !ReadDBIni() ) WriteDBIni();
CString strConneciton;
strConneciton.Format("Provider=SQLOLEDB.1;Data Source=%s;Initial Catalog=%s", m_strDataSrc, m_strInitDB );
m_pConnection->Open( (LPCTSTR)strConneciton, (LPCTSTR)m_usr, (LPCTSTR)m_pass, adModeUnknown );
}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败!");
AfxMessageBox(e.ErrorMessage());
return FALSE;
}
// ---------------------------------------------------------------------------------------------------
#endif
an_bachelor 2007-09-01
  • 打赏
  • 举报
回复
odbc sdk行也行 但是也不算纯C了
http://www.tomore.com/dispdocnew.php?id=34630
chsteven 2007-09-01
  • 打赏
  • 举报
回复
学习
chenyu2202863 2007-08-31
  • 打赏
  • 举报
回复
恩,谢谢

有ODBC的没?
wang_wuhui 2007-08-31
  • 打赏
  • 举报
回复
這個是ADO連接數據庫的...可以參考一下
wang_wuhui 2007-08-31
  • 打赏
  • 举报
回复
// ADOConn.h: interface for the ADOConn class.
//
//////////////////////////////////////////////////////////////////////

#import "c:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")

#if !defined(AFX_ADOCONN_H__4F944D4F_5AEC_455A_AA36_D518EDAFBF52__INCLUDED_)
#define AFX_ADOCONN_H__4F944D4F_5AEC_455A_AA36_D518EDAFBF52__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class ADOConn
{
// 定义变量
public:
//添加一个指向Connection对象的指针:
_ConnectionPtr m_pConnection;
//添加一个指向Recordset对象的指针:
_RecordsetPtr m_pRecordset;
// 定义方法
public:
ADOConn();
virtual ~ADOConn();
// 初始化—连接数据库
void OnInitADOConn();
// 执行查询
_RecordsetPtr& GetRecordSet(_bstr_t bstrSQL);
// 执行SQL语句,Insert Update _variant_t
BOOL ExecuteSQL(_bstr_t bstrSQL);
void ExitConnect();
};


#endif // !defined(AFX_ADOCONN_H__4F944D4F_5AEC_455A_AA36_D518EDAFBF52__INCLUDED_)
wang_wuhui 2007-08-31
  • 打赏
  • 举报
回复
// ADOConn.cpp: implementation of the ADOConn class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "CourseBook.h"
#include "ADOConn.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

ADOConn::ADOConn()
{

}

ADOConn::~ADOConn()
{

}

// 初始化—连接数据库
void ADOConn::OnInitADOConn()
{
// 初始化OLE/COM库环境
::CoInitialize(NULL);

try
{
// 创建Connection对象
m_pConnection.CreateInstance("ADODB.Connection");
// 设置连接字符串,必须是BSTR型或者_bstr_t类型
_bstr_t strConnect = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=CourseBookManage;";
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语句,Insert Update _variant_t
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();
}
iwillalwaysloveyou 2007-08-31
  • 打赏
  • 举报
回复
看看ado吧,跟mfc没关系
next163 2007-08-31
  • 打赏
  • 举报
回复
这个具体代码我不熟悉,不过一般数据库的include文件夹里会有。看一下文档就行了。我的是mysql的数据库,包含那个mysql.h,然后调用相应的函数就行了。
chenyu2202863 2007-08-31
  • 打赏
  • 举报
回复
希望得到帮助阿

64,643

社区成员

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

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