VC使用ado访问MSSql数据库的简单例程

 

编者:李国帅

qq:9611153 微信lgs9611153

时间:2008-3-11

背景原因:

         访问数据库的技术有很多,比如adbc,ado,oledb等等,它们用在不同的场景,各有各自的优点和缺点。

问题描述及期望效果:

ADO (ActiveX Data Objects,ActiveX数据对象)是Microsoft提出的应用程序接口(API)用以实现访问关系或非关系数据库中的数据。

         VC中访问数据库是常见的技术,这里整理了调用ado技术访问MSSql数据的简单例子。

所需资源:

VC,ADO,MSSql

 

例子:

导入

#include <comdef.h>
  #import "C:\program files\common files\system\ado\msado15.dll" \
           no_namespace \
           rename( "EOF", "adoEOF" )

 

声明变量

	_ConnectionPtr m_pMyDb;
	_RecordsetPtr  m_pMySet;

使用ado访问数据库

 


BOOL CDlgApp::InitInstance()
{

	if(!AfxOleInit())
	{
	AfxMessageBox("OLE初始化出错!");
	return FALSE;
	}
	return FALSE;
}

int CDlgApp::ExitInstance()
{
	::CoUninitialize();
	return CWinApp::ExitInstance();
}

BOOL CDlgDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	_variant_t TheValue;
	m_List.DeleteAllItems();
	m_pMyDb.CreateInstance(_uuidof(Connection));
	m_pMySet.CreateInstance(_uuidof(Recordset));

	try
	{
		m_pMyDb->Open("MarketMS", "","", 0);
		m_pMySet->Open("SELECT * FROM GoodsMng",
			m_pMyDb.GetInterfacePtr(),
			adOpenDynamic,adLockOptimistic,adCmdText);

//执行SQL语句得到一个记录集
		while(!m_pMySet->adoEOF)
//遍历所有记录
		{
			TheValue = m_pMySet->GetCollect("GoodsName");
//得到字段BlockIndex的值
			if(TheValue.vt!=VT_NULL)
			{
				m_List.InsertItem(1, (char*)_bstr_t(TheValue)); //将该值加入到列表控件中
			}
			m_pMySet->MoveNext();
		}
		m_pMySet->Close();
		m_pMyDb->Close();
	}
	catch(_com_error e) //异常处理
	{
		AfxMessageBox(e.ErrorMessage());
	}
	m_pMySet = NULL;
	m_pMyDb = NULL;

/*  pCommand.CreateInstance(_uuidof(Command));

  pCommand->ActiveConnection=MyDb;

  pCommand->CommandText="select  from some—table";

  pCommand->CommandType=adCmdText;

  pCommand->Parameters->Refresh();

  MySet=pCommand->Execute(NULL,NULL,adCmdUnknown);

  _variant_t TheValue = MySet->GetCollect("FIELD_1");

  CString sValue=(char)_bstr_t(TheValue);
*/

	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon

	// TODO: Add extra initialization here

	return TRUE;  // return TRUE  unless you set the focus to a control
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
摘要:VC/C++源码,数据库应用,课程管理   一个VC++课程管理程序,MSSQL数据库,可以正确编译,编译运行前请注意以下几点:   1. 建库:   1)新建数据库。打开“Microsoft SQL Server”的“企业管理器”,展开“控制台根目录”到“数据库”,右击“数据库”文件夹选择“新建数据库…”命令,然后建立名为“YJSHData”的数据库。在名称处填写:YJSHData;数据库文件的名称保持默认,在位置处选择c盘根目录,选择后显示“C:\YJSHData_Data.MDF”;事务日志文件名保持默认,在在位置处选择c盘根目录,选择后显示“C:\YJSHData_Log.LDF”;然后单击【确定】。   2)创建表。在“企业管理器”的菜单中选择“工具/SQL Server 查询分析器”命令,进入SQL的查询分析器,单击【文件】中【打开】,选择光盘附带程序中Database文件夹中YJSHDATA记事本所在路径,打开后,查看工具栏中当前显示的数据库是否为master,不是的话选择成为master。然后按“F5”键执行。   3)执行完毕后关闭SQL的查询分析器,再次进入SQL SERVER的企业管理器。查看数据库YJSHData中的表中是否有STUDENTS,TEACHERS,COURSES,CHOICES,如果存在,说明建库完毕。   2. 使用程序   1)数据库生成后,还没有填入信息。信息可以在建库时输入,也可以通过程序中的“添加”功能实现。建议读者在创建完数据库YJSHData后,在STUDENTS,TEACHERS,COURSES,CHOICES四个表中先填入一些信息;因为这样既符合现实使用中的先后逻辑关系,又比通过程序添加信息方便快捷。   

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微澜-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值