用MFC(VC6.0)连接sql server2000

之前为了做课程设计花了很长一段时间尝试mfc连接数据库,用了很多方法,后来终于成功了,所以将方法记下便于以后使用.

另外我用的是ADO连接



一.创建数据库

我使用的是SQL server2000,这里就不多讲述数据库的创建.

二.让软件知道是哪个数据库

控制面板->管理工具->数据源->添加......

三.获取连接字符串

新建一个空的文本,后缀改为udl,打开,选择自己的数据库.

设置成功,测试连接成功后关闭,右键记事本打开,下面一段就是连接字符串,到时候直接复制粘贴就行.


以上是初期的数据库准备工作,现在打开VC6创建一个新工程


一.在StdAfx.h中加入#import "c:\program files\common files\system\ado\msado15.dll" no_namespace,rename("EOF","adoEOF")


二.

_CommandPtr cmd;
_RecordsetPtr rst;
_ConnectionPtr con;

我主要用了后两个,第二个是记录集,第三个是连接用


con->Open("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Mygame;Data Source=(local)","","",adModeUnknown);

//"Provider......"里就是连接字符串,现在就粘贴上面复制的连接字符串就好
rst->Open(_variant_t("select * from Mpeople"),_variant_t((IDispatch*) con),adOpenDynamic,adLockOptimistic,-1);

//_variant_t("select * from Mpeople")这里存放的是sql语句,执行成功后rst里就存放了读取的数据,但是这种方法不支持动态使用,动态使用将在下面介绍


四.

zhanghao=((_bstr_t)(rst->GetCollect("Gzhanghao"))))

//这句话的意思是将保存了的rst里的数据中的Gzhanghao列转换后传给zhanghao(CString)


五.

rst->PutCollect("Gdengji",_bstr_t(show_dengji));

//这是将数据保存到数据库


六.

CString sql;

sql.Format(_T("select * from Mpeople where Gzhanghao like '%%%s%%'"),xunzhao_zhanghao);

rst->Open((_bstr_t)(sql),_variant_t((IDispatch*) con),adOpenDynamic,adLockOptimistic,-1);

//这句话的功能是将编辑框里输入的字符串导入到sql语句中,再在数据库中寻找

//里面用到了模糊查询 '%%%s%%'


操作数据库非常容易出错,程序编译成功,但是运行时会出错这种问题非常容易遇到,所以我们需要用到捕捉错误的功能,一下是一个范例

try
{
rst->Open((_bstr_t)(sql),_variant_t((IDispatch*) con),adOpenDynamic,adLockOptimistic,-1);
}
catch (_com_error e)
{
AfxMessageBox(e.Description());
}




第一次自己写博文,写的比较乱


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值