DVD出租系统【3】MFC界面连接数据库

2024-02-17 06:48

本文主要是介绍DVD出租系统【3】MFC界面连接数据库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

DVD出租系统【3】界面连接数据库


数据库是sql server 2008:

1、初始化COM库:
ADO是基于COM技术的,所以,在应用程序调用ADO前,必须初始化COM库环境。
ADO使用结束后,还需要关闭库,释放初始化加载的动态库,MFC程序中,一般在 CXXXAPP 的 InitInstance 的
函数中调用 COM 库的初始化函数 CoInitialize(NULL); 在 ExitInstance 的函数中调用卸载 COM 库的函数:CoUninitialize();


2、、引入 ADO 动态链接库:
在使用 vc++ 的 MFC 编程开发时,MFC 并没有提供对 ADO 封装类的支持,能够支持 ADO 编程的是 ADO 的 COM动态库 msado*.dll
一般在系统盘的:\Program Files\Common Files\System\ado 目录下,根据操作系统版本的不同,该文件可能是:msado15.dll,
* 代表 ADO 库的版本,在 stdafx.h 头文件中添加如下代码:
#import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF", "adoEof")

3、在头文件中添加代码:

_ConnectionPtr m_pConnection;BOOL connectDB();void CloseDB();virtual void OnCancel();

4、接下来增加数据库连接代码,数据库关闭代码:(onCancel是函数重载出来的)

BOOL CDVDRentDlg::connectDB()
{HRESULT hr;try{hr = m_pConnection.CreateInstance(__uuidof(Connection));if (SUCCEEDED(hr)) {//_bstr_t connectStr = _T("Provider=SQLNCLI;Server=192.168.0.100;Database=DVDRentDB;Uid=cctry;Pwd=www.cctry.com");_bstr_t connectStr = _T("Provider=sqloledb;Data Source=192.168.1.23;Initial Catalog=DVDRentDB;User Id=sa;Password=123456");m_pConnection->ConnectionTimeout = 20;hr = m_pConnection->Open(connectStr, _T(""), _T(""), adConnectUnspecified);if (FAILED(hr)) {MessageBox(_T("打开与数据库的连接失败."));return FALSE;}}else {MessageBox(_T("实例化 Connection 对象失败."));return FALSE;}}catch (_com_error &e){_bstr_t bstrSource(e.Source());_bstr_t bstrDescription(e.Description());MessageBox(bstrDescription, bstrSource);return  FALSE;}return TRUE;
}
void CDVDRentDlg::CloseDB()
{if (m_pConnection && m_pConnection->State == adStateOpen) {m_pConnection->Close();}
}void CDVDRentDlg::OnCancel()
{// TODO: 在此添加专用代码和/或调用基类CloseDB();CDialogEx::OnCancel();
}

5、运行效果图如下:

本节工程地址:

链接:https://pan.baidu.com/s/1PYaRk-vXiB2hBhTsj4f9CQ 
提取码:ncqx 

这篇关于DVD出租系统【3】MFC界面连接数据库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/716984

相关文章

详谈redis跟数据库的数据同步问题

《详谈redis跟数据库的数据同步问题》文章讨论了在Redis和数据库数据一致性问题上的解决方案,主要比较了先更新Redis缓存再更新数据库和先更新数据库再更新Redis缓存两种方案,文章指出,删除R... 目录一、Redis 数据库数据一致性的解决方案1.1、更新Redis缓存、删除Redis缓存的区别二

oracle数据库索引失效的问题及解决

《oracle数据库索引失效的问题及解决》本文总结了在Oracle数据库中索引失效的一些常见场景,包括使用isnull、isnotnull、!=、、、函数处理、like前置%查询以及范围索引和等值索引... 目录oracle数据库索引失效问题场景环境索引失效情况及验证结论一结论二结论三结论四结论五总结ora

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT

C#实现文件读写到SQLite数据库

《C#实现文件读写到SQLite数据库》这篇文章主要为大家详细介绍了使用C#将文件读写到SQLite数据库的几种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录1. 使用 BLOB 存储文件2. 存储文件路径3. 分块存储文件《文件读写到SQLite数据库China编程的方法》博客中,介绍了文

什么是cron? Linux系统下Cron定时任务使用指南

《什么是cron?Linux系统下Cron定时任务使用指南》在日常的Linux系统管理和维护中,定时执行任务是非常常见的需求,你可能需要每天执行备份任务、清理系统日志或运行特定的脚本,而不想每天... 在管理 linux 服务器的过程中,总有一些任务需要我们定期或重复执行。就比如备份任务,通常会选在服务器资

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

SQL Server数据库磁盘满了的解决办法

《SQLServer数据库磁盘满了的解决办法》系统再正常运行,我还在操作中,突然发现接口报错,后续所有接口都报错了,一查日志发现说是数据库磁盘满了,所以本文记录了SQLServer数据库磁盘满了的解... 目录问题解决方法删除数据库日志设置数据库日志大小问题今http://www.chinasem.cn天发

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has

Spring Boot实现多数据源连接和切换的解决方案

《SpringBoot实现多数据源连接和切换的解决方案》文章介绍了在SpringBoot中实现多数据源连接和切换的几种方案,并详细描述了一个使用AbstractRoutingDataSource的实... 目录前言一、多数据源配置与切换方案二、实现步骤总结前言在 Spring Boot 中实现多数据源连接