社区
数据库
帖子详情
请教:资源管理系统中的数据修改。
icepearl
2005-04-07 01:24:21
资源管理:例如图书管理系统中,当图书借出后修改相关字段借阅人,借阅日期等
当归还是再修改归还信息。这个步骤如何实现?
及如何动态修改数据库表中某几个字段。
谢谢各位sdjm!!!!!!!!!!!
...全文
70
8
打赏
收藏
请教:资源管理系统中的数据修改。
资源管理:例如图书管理系统中,当图书借出后修改相关字段借阅人,借阅日期等 当归还是再修改归还信息。这个步骤如何实现? 及如何动态修改数据库表中某几个字段。 谢谢各位sdjm!!!!!!!!!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xuzheng318
2005-04-14
打赏
举报
回复
一、将应用程序调用的外部数据文件集成到程序可执行文件中
我们知道,Windows应用程序中包括执行代码和程序资源两部分。例如,应用程序的位图、图标、对话框、字串表等都被存储在应用程序资源中。对于处于应用程序外部的多个小数据文件,一方面容易丢失从而将造成程序出错,另一方面也存在安全性和保密性不强等弊端。因此,可考虑将其集成到程序可执行文件中,这样还可以加快数据的读取速度。
实现这种功能有两个关键步骤:首先,将这些文件作为程序资源放进资源文件中;然后,在程序执行数据文件加载时,从资源内存中读取这些文件。
1、将数据文件加到资源文件中
(1)首先用文本编辑器(记事本、写字板等)打开资源文件,即带有rc扩展名的文件(注意:此处只能用文本编辑器打开,因为在Visual C++5.0的资源编辑器中不支持除加速键表、位图、对话框、光标、图标、菜单、工具条、串表、版本信息等标准资源外的非标准资源的插入。为安全起见,在进行下述操作时要先备份资源文件),然后添加如下几行代码:
/////////////////////////////////////////////////////////////////////////////
//DATA
//
IDR_DATA0 DATA DISCARDABLE "res\\data0.dat"
IDR_DATA1 DATA DISCARDABLE "res\\data1.dat"
IDR_DATA2 DATA DISCARDABLE "res\\data2.dat"
IDR_DATA3 DATA DISCARDABLE "res\\data3.dat"
上述资源文件代码中:IDR_DATA0为数据文件的资源ID号,DATA为资源类名,DISCARDABLE表示该资源是可抛弃型的,而“res\\data0.dat”表示数据文件data0.dat处于当前工程文件所处文件夹下的res子文件夹中,供应用程序编译连接时加载数据用。不要改动其它的地方,保存文件并退出。
(2)然后在Visual C++ 5.0的资源编辑器中打开资源文件,将能看到以“DATA”标识的资源文件下面有四项,分别以“IDR_DATA0”、……、“IDR_DATA3”等标识。用鼠标任意单击它们,就会看到相应的二进制数据显示出来。为了在程序中应用这些ID号,还必须进一步修改。方法是:选择“IDR_DATA0”,单击鼠标右键,在弹出的快捷菜单中选择属性页(properties),将ID名称修改为IDR_DATA0(即去掉双引号)。其它依此类推。
2、从资源内存块读取数据
读取数据的关键在于:首先要获得具有所需资源ID号的资源内存块地址指针,然后根据不同的数据类型对地址指针进行强制类型转换。
获得具有所需资源ID号的资源内存块地址指针主要包括以下几个步骤:
(1)首先获取当前应用程序.EXE的文件句柄,该句柄用于在.EXE文件中寻找资源
HMODULE ghmodule = GetModuleHandle(NULL);
(2)接着用以上获得的应用程序文件句柄ghmodule作为参数之一来寻找具有指定资源ID和指定资源类型的资源文件中的资源位置,返回值为有名称的资源:
HRSRC hr = FindResource(ghmodule, MAKEINTRESOURCE(resourseID), "PLANE");
(3)然后从ghmodule标识的可执行文件中装入hr所指定的资源,该函数返回值标识了用于接受资源数据的全局数据块:
HGLOBAL hg = LoadResource(ghmodule, hr);
(4)最后锁定hg所标定的内存块,并返回所标定内存块的虚拟内存地址。如果该资源被成功锁定的话,则返回值指向该资源开始处的第一个字节:
LPVOID pv = (PSZ)LockResource(hg)
注意:若上述四步中的任何一步发生问题,则返回并释放相应的内存。接下去要做的事情就是根据文件数据类型进行数据加载,此处不再赘述。
相应的代码段如下所示,其中 pv指针指向内存块的第一个字节,为单字节指针。因此,应该根据数据文件的类型结构对指针进行强制类型转换,并不断修改指针,使其指向下一个待读的数据单元。
BOOL LoadDataFromResource(WORD resourseID)
{
HMODULE ghmodule = GetModuleHandle(NULL);
HRSRC hr = FindResource(ghmodule, MAKEINTRESOURCE(resourseID), "DATA");
if (hr == NULL)
return FALSE;
HGLOBAL hg = LoadResource(ghmodule, hr);
if (hg == NULL)
{
FreeResource(hr);
return FALSE;
}
LPVOID pv = (PSZ)LockResource(hg);
//pv指向内存块的第一个字节,为单字节指针
if (pv == NULL)
{
FreeResource(hr);
return FALSE;
}
//Read data from resource (memory block)
int num;
int *pInt=(int *)pv;//强制转换指针类型
num=*(pInt++);
double fd;
double *pDouble=(double *)pInt;
fd=*( pDouble++)
......
return TRUE;
}
refer to http://person.zj.cninfo.net/~vc/article/107.htm
icepearl
2005-04-14
打赏
举报
回复
xdjm帮帮忙哦?
马上要交了问题解决不了!!!
icepearl
2005-04-08
打赏
举报
回复
各位sdjm帮帮我哦!急切等待!!!!!!!!!!!
【Java】基于SQL
数据
库系统实现的人力
资源
管理系统
本文介绍了一个简单的人力
资源
管理系统
的设计与实现,包括主界面布局、添加、
修改
、查询、删除及浏览员工信息等功能,并实现了部门信息读取。系统采用Java Swing进行界面设计,使用SQL Server作为
数据
库。
Java Web项目 慧心人力
资源
管理系统
本文档详细介绍了如何使用JAVA开发慧心人力
资源
管理系统
,包括员工信息管理、
数据
增删改查功能的实现,
数据
库设计,以及各模块的具体实现步骤。
人力
资源
管理系统
本文描述了一个综合的人力
资源
管理系统
项目,涵盖了系统开发背景、关键功能如员工信息管理、薪资和考勤处理,以及使用C语言实现的四个主要操作函数:插入、删除、查找和
修改
。项目强调了自动化和标准化流程对提升管理效率的重要性。
人力
资源
管理系统
详细设计说明书
本文档详细介绍了人力
资源
管理系统
的结构和功能设计,包括管理员登录注册、部门管理、员工管理、培训、招聘、奖惩、薪资及系统管理等多个模块。各模块涵盖查询、添加、删除和
修改
等功能,旨在实现企业人力
资源
的科学管理。
【免费下载】 教务
管理系统
数据
流图
资源
下载
该博客提供教务
管理系统
数据
流图
资源
下载,
资源
包含0层和1层
数据
流图及
数据
字典。适用于系统分析师、开发者和学生,可助其理解系统
数据
流动和结构。还给出使用说明和注意事项,提醒按需调整完善。
数据库
4,017
社区成员
39,806
社区内容
发帖
与我相关
我的任务
数据库
VC/MFC 数据库
复制链接
扫一扫
分享
社区描述
VC/MFC 数据库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章