MFC存储图片到SQL Server数据库
第一步:建立数据库表,比如:id char,pic image。
第二步:建立MFC单文档应用程序,再添加类CMyRecordset,基类选择CRecordset,导入数据库的刚建立的表。
第三步:在doc.h中加入 CMyRecordset m_pSet。
第四步:在view.h中加入CMyRecordset* pSet。
第五步:在view.cpp中的OnInitialUpdate()加入
pSet=&GetDocument()->m_pSet;
if(pSet->IsOpen())
pSet->Close();
pSet->Open();
第六步:存图片
void ****View::OnOpen()
{
// TODO: Add your command handler code here
CFileDialog filedlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"images Files (*.jpg)|*.jpg",this);
CString path;
if(filedlg.DoModal()==IDOK)
{
path=filedlg.GetPathName();
CFile file;
CFileStatus filestatus;
file.Open(path,CFile::modeRead);
file.GetStatus(filestatus);
pSet->AddNew();
pSet->m_pic.m_dwDataLength=filestatus.m_size;
HGLOBAL hGlobal = GlobalAlloc(GPTR,filestatus.m_size);
pSet->m_pic.m_hData = GlobalLock(hGlobal);
file.ReadHuge(pSet->m_pic.m_hData,filestatus.m_size);
pSet->m_id=_T("");
pSet->SetFieldDirty(NULL);
pSet->SetFieldNull(NULL,FALSE);
pSet->Update();
GlobalUnlock(hGlobal);
}
}
第七步:读取图片
void ****View::OnRead()
{
// TODO: Add your command handler code here
CFile file2;
file2.Open("C://a.jpg",CFile::modeCreate|CFile::modeWrite);
pSet->MoveFirst();//读第一条记录
BYTE* content=new BYTE[pSet->m_pic.m_dwDataLength];
memcpy(content,GlobalLock(pSet->m_pic.m_hData),pSet->m_pic.m_dwDataLength);
file2.WriteHuge(content,pSet->m_pic.m_dwDataLength);
}
http://blog.csdn.net/zhaoweihornets/article/details/5719915
MFC存储图片到SQL Server数据库的更多相关文章
- C# 图片存入SQL Server数据库
OpenFileDialog openfiledialog1 = new OpenFileDialog(); if (openfiledialog1.ShowDialog() == DialogRes ...
- 根据数据库帮助类采用事务插入图片到sql server数据库中
我们定义数据库为image类型,然后读取图片为字符流,再保存到数据库中,首先我们定义一个读取图片的公共类,此公共类以后会用到,所以可以建立相应的帮助类 public static byte[] Rea ...
- C#从SQL server数据库中读取l图片和存入图片
原文:C#从SQL server数据库中读取l图片和存入图片 本实例主要介绍如何将图片存入数据库.将图片存入数据库,首先要在数据库中建立一张表,将存储图片的字段类型设为Image类型,用FileStr ...
- C#读写SQL Server数据库图片
效果图: 下载链接: http://download.csdn.net/detail/u010312811/9492402 1.创建一个Winform窗体,窗体分为“数据上传”和“数据读取”两部分: ...
- C#将图片存放到SQL SERVER数据库中的方法
本文实例讲述了C#将图片存放到SQL SERVER数据库中的方法.分享给大家供大家参考.具体如下: 第一步: ? 1 2 3 4 5 6 7 8 9 10 //获取当前选择的图片 this.pictu ...
- 你所不知道的SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧
目前SQL Server数据库作为微软一款优秀的RDBMS,其本身启动的时候是很少出问题的,我们在平时用的时候,很少关注起启动过程,或者很少了解其底层运行过程,大部分的过程只关注其内部的表.存储过程. ...
- SQL Server数据库快照的工作方式
SQL Server数据库快照的工作方式 翻译自:How Database Snapshots Work 最近有一个帖子<errorlog中的异常信息rolled forward 和rolled ...
- (4.20)SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧
转自:指尖流淌 https://www.cnblogs.com/zhijianliutang/p/4085546.html SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧 ...
- SQL Server 数据库启动过程,以及启动不起来的各种问题的分析及解决技巧
目前SQL Server数据库作为微软一款优秀的RDBMS,其本身启动的时候是很少出问题的,我们在平时用的时候,很少关注起启动过程,或者很少了解其底层运行过程,大部分的过程只关注其内部的表.存储过程. ...
随机推荐
- js判断是否为数组
js判断是否为数组类型 CreateTime--2018年5月18日14:38:58 Author:Marydon 1.错误方式 使用typeof 返回的是object 2.正确方式 方式一:使用 ...
- OFBiz:扩展controller.xml
如何扩展controller.xml?两种方法:一种方法是直接修改原先的controller.xml,这种方法不方便后续升级.第二种方法是新建一个extended.xml文件,再在controller ...
- Docker实战(五)编写Dockerfile
一.创建Dockerfile文件 首先,需要创建一个目录来存放 Dockerfile 文件,目录名称可以任意,在目录里创建Dockerfile文件: 二.Dockerfile 基本框架 Dockerf ...
- ajax提交数据处理总结
一:Ajax中Get请求与Post请求的区别 http://www.cnblogs.com/oneword/archive/2011/06/06/2073533.html 二:ajax分页: 360 ...
- Struts2对AJAX的支持
一.简介 struts2确实一个非常棒的MVC框架.这里部分记述一下struts2对AJAX的支持.实现AJAX有两种方式,一种是使用原生的javascript代码实现,一种是使用第三方 ...
- ov5640 video capture时,vfe_v4l2.ko模块挂掉问题分析
1.问题描述 在r16 tina平台,基于ov5640获取摄像头数据时,vfe_v4l2.ko模块挂掉. 2.配置信息 2.1上层应用设置的像素格式为V4L2_PIX_FMT_YUYV,分辨率为480 ...
- jQuery瀑布流插件 Masonry
http://www.jq22.com/yanshi362 参考案例 http://image.quanjing.com/lvyou/
- 整合quickx到普通cocos2dx
quickx是对cocos2dx的lua扩展,它做了一些C++的扩展,同时还在lua做了一些封装, 让用lua开发cocos2dx更快,中文站http://quick.cocoachina.com/. ...
- Unix系统编程()信号类型和默认行为
信号类型和默认行为 就是讲了有多少个信号类型 好多啊,后面用到了再看...
- 如何使用PHP开发高效的WEB系统
PHP是一个非常优秀的工具,它能够简单,也能够复杂.不一样的项目,应该用不一样的PHP. 小项目 - 简单而直接的PHP 一般对于一个功能页面在20下面的站点.我们能够用一个非常easy的框架结构来 ...