MFC链接数据库 简单的操作

一、对ODBC进行配置:

控制面板->管理工具->数据源(ODBC),如果控制面板中找不到管理工具,那就直接在开始菜单中搜索:“管理工具”,打开后如下图:

在【系统DSN】如果没有SQL Server驱动程序,那就选【添加】,如果已经有则选中后点【配置】,之后会出现如下对话框:

数据源名称可以随便写,不过待会写代码的时候,代码里面会用到这个

在【服务器】里面输入一个英文的句点,表示默认的服务器,然后【下一步】出现如下图:

如何验证登录ID的直伪,我选了第二个,网上说第一个也可以的,但没有试。登录ID为:sa,密码就是配置数据库时设置的密码。

点击上图中的【客户端配置】出现如下图:

别名中还是一个英文句点,服务器名称是SQL server2005中的数据库名,其实可以跳过这个【客户端配置】这个页面的,选择默认的就行!

接着点【下一步】如果刚才的【客户端配置】里面或者登录ID、密码有错的话,点【下一步】是会报错的!!之后出现下图:

“更改默认的数据库为”框指定用于任何使用此数据源进行的连接的默认数据库名称。如果此框为空白,连接将使用在服务器上为登录 ID 定义的默认数据库。选中此框后,在此框中命名的数据库将覆盖为登录 ID 定义的默认数据库。如果“附加数据库文件名”框中包含主文件的名称,则主文件描述的数据库将附加为使用“更改默认的数据库为”框中指定的数据库名称的数据库。与在 ODBC 数据源中指定默认数据库相比,使用登录 ID 的默认数据库更有效。在这里pcTest这个数据库是我自己创建的,其它几个是系统自带的数据库。如果有什么不懂可以点击【帮助】按钮!!!这个比在网上的一些说明更有效。

“附加数据库文件名”框指定可附加数据库的主文件名称。该数据库作为数据源的默认数据库附加和使用。指定主文件的完整路径和文件名。在“更改默认的数据库为”框中指定的数据库名称将用作附加数据库的名称。

“附加数据库文件名”框:这个我选择为空。 接着【下一步】

这个选择默认配置即可,接着点【完成】,出现下图:

点击【测试数据源】,如果测试成功会出现下图:

到此ODBC的数据源配置成功!!

二、链接查询数据库

::CoInitialize(NULL); // 初始化OLE/COM库环境 ,为访问ADO接口做准备
_RecordsetPtr m_pRecordset("ADODB.Recordset");
_ConnectionPtr m_pConnection("ADODB.Connection");

CString strSQL;

strSQL.Format(L"select * from Tbl where datediff(minute,zx_LastTime,CONVERT(varchar, getdate(), 120 ))>10 ");

_bstr_t bstrSQL=(_bstr_t)strSQL; //查询语句 
_variant_t vresult;

_bstr_t strConnect="DSN=sql2005test;Database=TEST;uid=sa;pwd=sa;";
try
{  
m_pConnection.CreateInstance("ADODB.Connection");//创建Connection对象
//设置连接字符串,必须是BSTR型或者_bstr_t类型,若数据库在网络上则Server为形如(192.168.1.5,3340) 

m_pConnection->Open(strConnect,"","",adModeUnknown);//NULL、adConnectUnspecified、//建立与服务器连接
if (m_pConnection ==NULL)
{
printf("创键Connection对象时出错\n");
}
m_pRecordset.CreateInstance(__uuidof(Recordset));//创建记录集对象
//取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
vresult=m_pRecordset->GetCollect("num");
}
catch (_com_error e)//捕捉异常
{
printf(e.Description());//抛出异常
}
bstrSQL="select * from Tbl_ZaixianTj";
try
{  
m_pConnection.CreateInstance("ADODB.Connection");//创建Connection对象
/设置连接字符串,必须是BSTR型或者_bstr_t类型,若数据库在网络上则Server为形如(192.168.1.5,3340) 
m_pConnection->Open(strConnect,"","",adModeUnknown);//NULL、adConnectUnspecified、//建立与服务器连接
if (m_pConnection ==NULL)
{
printf("创键Connection对象时出错\n");
}
m_pRecordset.CreateInstance(__uuidof(Recordset));//创建记录集对象
//取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch (_com_error e)//捕捉异常
{
printf(e.Description());//抛出异常
}
CTime m_Time;
m_Time=CTime::GetCurrentTime();
CString m_strDateTime=m_Time.Format(L"%Y-%m-%d %H:%M:%S");
m_pRecordset->AddNew();
m_pRecordset->PutCollect("Time",_variant_t(m_strDateTime));
m_pRecordset->PutCollect("Peoples",vresult);
m_pRecordset->PutCollect("Type",_variant_t(n));
m_pRecordset->Update();
m_pRecordset->Close();
if (m_pConnection->State)
{
m_pConnection->Close();
}
::CoUninitialize();


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值