正文内容
VFP数据库系统
来源:文库
作者:开心麻花
2025-09-19
1

VFP数据库系统(精选8篇)

VFP数据库系统 第1篇

随着MIS数据量的日益增大,发现了数据由DBF格式导出到Excel 2003时,无论DBF表中有多少条记录,导出到Excel时,里面只有16384条记录,虽然最多可以有65536行,后来得知这是Office 2003的一个Bug。导出界面如图1所示。

其自动生成的命令为COPY TO d:abc.xls TYPE XL5。Excel还支持一种CSV格式,并且处理方式时和Excel一样的,可以筛选、排序和统计等,十分方便。经过测试发现,如果导出的文件格式为csv格式,是能够导出所有记录的。鉴于导出该格式时,图1的界面中的Type下拉列表中,找不到这种格式的选项,用命令实现如下:

*首先打开表,然后导出

COPY TO d:abc.csv TYPE csv

2 处理技巧

为企业整理数据的时候,发现有的数据库表中存在重复记录,需要进行整理。经过分析发现,有两个意义上的重复记录,(1)完全重复的记录,即两条记录所有字段完全相同。(2)部分关键字段重复,如Name字段重复,而其他字段不一定重复。

企业一般采用的都是大型数据库,为了操作方便,将需要处理的表导出为DBF格式,整理完毕再导入。下面将实现利用VFP查询统计重复记录,筛选出不重复记录。为了使命令能够直接在对大型数据库的查询中使用,采用的是SQL语句。

2.1 查询重复记录

(1)获得表中某一个或某几个字段的重复数量的统计结果。

假设字段nb1,nb2重复:

(2)查询某字段内容相同的记录。

假设内容重复的字段为nb2,下面的代码只筛选出字段nb2重复的记录。

2.2 筛选出不重复的记录

(1)从完全重复的记录中筛选不重复的记录

若表中存在两条以上完全重复的记录,重复的原因是表设计不周产生的,增加唯一索引列即可解决问题。下面实现获得无重复记录的结果集,凡是重复的只要第一条记录。

(2)选出表中某个字段不重复的记录

选出字段nb2不相同的记录,其他字段数据有可能不一样,但保留第一条。

这里的group by分组参数起了关键作用。

上面给出的4种对表中重复记录的处理方式一般能够满足正常需求,由于查询时采用的都是SQL语句,可方便移植到大型数据库中使用。

3 报表的预览和打印标记

在软件实际运行中,需要知道哪条记录的报表已经打印过了,这需要在表中做一个标记。而对于操作员来说,可能打开一个报表仅仅是预览一下,并不打印。需要实现打印按钮的触发事件,就是说如果用户真的打印了,做一个标记。如果仅仅是预览,不做标记。报表的预览界面如图2所示。

3.1 设计报表时的设置

设计报表时,点击菜单上的Report>>Variables...,出现对话框后,在报表变量中添加一个报表变量,如“if_prn”,其中“Value To store”、“Initial”、“Reset Value based on”及“Calculation type”采用默认值。然后选中Release After report’,就是该变量打印后释放。最后点击确定’。如图3所示。

3.2 打印时的代码

报表预览命令如下:

Report Form报表名To Printer Preview

此句运行后,报表变量if_prn被定义全局变量。如果点击了打印按钮,进行了报表输出,报表变量就被释放了。如果点击了关闭按钮而不打印,报表变量并没有被释放。所以通过检测是否存在此变量,判断是否打印了就可以了。

4 结语

VFP数据库微课的设计与探讨 第2篇

【关键词】VFP数据库;教学模式;微课设计

1.引言

隨着网络技术与通信技术的不断发展,微课作为新型的教学资源模式,具有用时少,内容精、生动性强、可在网络上点击播放、不受教学时间和空间的约束等特点。在当今社会中,对于教育者来说运用微课进行教学,是必不可少的,微课程创始人戴维.彭罗斯曾把微课程称为“知识脉冲”[1]。他认为微型的知识脉冲只要在相应的作业与讨论的支持下,能够与传统的长时间授课取得相同的效果,将成为一种知识挖掘框架。微课提供的知识挖掘平台,允许学生对自己的学习有更多的主动权,自主地挖掘所需的知识点、有针对性地开展学习,这不仅提高了学生的学习效率,节约了时间,而且极大地激发了学生学习的兴趣。

所谓“微课”是指以视频为主要载体,记录教师在课堂内外教育教学过程中围绕某个知识点(重点难点疑点)或教学环节而开展的精彩教与学活动全过程[2]。

VFP数据库是高等院校非计算机专业学生必修的公共课,其理论性和实践性都很强,信息量大、且较为抽象,并且具有一定的难度,学生在学习时普遍存在一定的畏惧心理,导致对VFP数据库的学习兴趣不浓,进而影响到后续课程的学习。对此,教师应积极转变教学观念,运用微课这一新型的教学模式,优化VFP数据库课程教学势在必行。将微课技术用于VFP数据库课程的教学中,针对VFP数据库各个知识点或教学环节,运用各种教学资源,以教学视频为主要方式呈现给学生,将极大激发学生学习VFP数据库的兴趣,帮助教师补充和延伸VFP数据库课程的教学过程,从而实现较好的教学效果。基于微课程的优势,本文从VFP数据库教学现状、VFP数据库微课的设计、VFP数据库微课的实现三个方面,对VFP数据库教学模式进行探讨。

2.VFP数据库教学现状

目前,在VFP数据库教学中,学生们的普遍反映是:

(1)纸制教材对学生的吸引力较低。VFP数据库教材中大量的概念、定义、表格、命令、控件、数字、代码等,使得大部分学生犯晕,再加上呆板的章节形式,对学生吸引力较低。

(2)教材选用与学生需求的吻合度较差。纸制教材虽然具有重点突出、通俗易懂、详略得当等特点,但缺乏趣味性、时尚性,这不仅反映了目前大学生的心理追求,也说明了VFP数据库教材建设滞后于教学需求。

(3)学生对VFP数据库课程中的重点、难点的理解不够透彻。在VFP数据库课程中,知识点多,重点、难点多,例如数据模型、参照完整性等概念,都是十分重要且非常抽象。老师讲清楚了,学生当时可能也听明白了,但不一定就是掌握了,短短的课堂时间无法达到领会、理解、掌握的教学效果。

(4)教师教学努力方向与学生的兴趣点不能完全一致。当代的大学生思维比较活跃,兴趣广泛,他们的兴趣点在于新和乐上,如果教师还按照传统的教学模式按部就班,扎扎实实,一步一个脚印按照教学大纲要求向学生传授知识,学生对学习VFP数据库的意愿、兴趣点与教师教学努力方向不一致,没有形成教学上的合力,教学效果事倍功半。

3. VFP数据库微课的设计

基于VFP数据库特点及教学现状,可以通过设计VFP数据库微课来补充和丰富教学过程,从而实现更好教学效果。

(1)内容的选取与设计。VFP数据库微课的设计首先应从选题开始,只有题选好了,教师才能借“题”发挥。如果选题太大、太复杂,在有限的时间内无法把问题讲述清楚,就会影响教学效果。因此,在教学实践中,应选择VFP数据库中常见、典型、有代表性的知识点或针对某一个难点、重点问题进行微课设计,内容尽量“小而精”。时间一般控制在5-8分钟,最长不宜超过10分钟。譬如,VFP数据库课程中的“字段有效性”是VFP数据库中的一个重点、难点,它能保证数据库中数据的正确性。教师可以基于该知识点进行微课设计。

(2) VFP数据库微课导入环节的设计。一个好的微课,关键在于导入。微课教学时间短,不应在导入环节花费过多时间,所以切入主题必须迅速,力求做到新颖独到、引人注目。导入的方法很多,可以开门见山进入主题,可以设置一个疑问、悬念等引入主题,也可以从之前的基本内容引入主题,还可以通过一些实际问题引入主题。但不管采用哪种方法,都要与课堂教学内容紧密关联。

如前所述的“字段有效性”的微课中,导入方法上可根据实际生活中“学生成绩采用百分制,在0-100之间”,直接给学生展示一张表。让学生很快明白微课要解决的问题,做到了切题迅速,目的明确。

(3)VFP数据库微课教学过程的设计。微课通常只有一条主线,解决的是一个或一类问题或方法。因此在内容的安排上要围绕一条线索展开,主题要鲜明,突出重点内容,由浅入深,层次分明,巧妙运用启发式、问题式等方法,设计问题,激发学生学习兴趣,营造学生参与教学的氛围,提高学生积极学习、自主学习的热情。在VFP数据库微课教学过程设计中,每一个画面都配上感染力极强的精炼语言,在视觉受到强烈冲击的同时,听觉上也产生强烈共鸣,进而使主题深入学生内心。升华主题,精彩总结。一个好的微课要有一个好的结语。提纲挈领,升华主题是好的结语的具体表现。这样可以让学生清晰地感觉到学到的东西,加深对所学内容的印象,减轻记忆负担。

4.VFP数据库微课的实现

VFP数据库微课的质量直接影响到微课教学效果。因此,对于相关课件PPT的设计、教师魅力的展现、录制视频的方式等每一个环节都十分重要。

(1)VFP数据库课件制作。制作课件的总体原则是,在说明问题的前提下,越简单越好。教师应紧紧围绕选题的内容,制作图文并茂、动静结合的PPT课件。课件应尽可能利用图片、图表、表格、插图等[3]。课件动画设计以帮助学生理解问题为目的,夸张适度,恰如其分。课件字体、字号选择得当,颜色搭配不能过于复杂,强调协调和合理。图片和文字的使用不是越多越好,图片要清晰美观,有视觉震撼力;文字要言简意赅,感染力强。高质量的PPT课件为高质量的VFP数据库微课的教学打下坚实基础。

(2)VFP数据库微课视频制作。在视频制作方式的选择上, VFP数据库教师一定要根据内容的需要确定。要有团队合作意识,例如课堂教学可以用录屏软件录制,再配上摄像头和麦克风,也可以让一部分学生旁听,开展课堂互动,将老师讲课的激情体现出来。也可以用数码摄像机实时记录教学过程中老师、学生交流等实景画面,然后对视频进行后期的编辑制作、美化。

(3)VFP数据库教师精彩的讲解。教师精彩的讲解应该是VFP数据库微课的一个亮点,在讲解过程中教师要做到为人师表,教学语言要规范、清晰,有意识地完善自己的教学,实现教师的人格魅力。

5.结语

将微课引入VFP数据库课程中,改变了传统的教学方式、学习方式,打破了学生学习的地域限制和时空限制,满足了学生个性化学习和碎片化学习要求,对提高教学质量和提升学生自学能力都能起到促进作用。

参考文献:

[1] 胡铁生.“微课”:区域教育信息资源发展的新趋势[J].中国电化教育,2011,(10): 61-65.

[2] 梁乐明,曹俏俏,张宝辉 微课程设计模式研究[J]开发教育研究,2013,(1):65-73.

VFP的非数据库应用 第3篇

既然VFP的数据库功能已经被很多人所了解, 所以现在我就想谈谈VFP的非数据库应用。

服务器对于每一个公司来说都是很重要的, 因为里放着大量公司的数据, 如何保证服务器的安全不被外来程序所入侵就显得很重要了。我们的处理方法就是在保证服务器正常的情况下先记录着服务器运行的所有程序和进程, 服务器正式上线后就是这份记录为原本, 发现与原本不同程序或者进程在服务器里运行就要自动提示, 提示让服务器管理员来进行核查。先看一下实例:

DECLARE integer LoadLibrary IN WIN32API string&&载入指定的动态链接库

DECLARE integer FreeLibrary IN WIN32API integer&&释放指定的动态链接库

DECLARE integer GetProcAddress IN WIN32API integer hModule, string procname

DECLARE integer GetProcessHeap IN WIN32API&&获取和调用过程的堆句柄

DECLARE integer HeapAlloc IN WIN32API integer hHeap, integer dwFlags, integer dwBytes

DECLARE integer HeapFree IN WIN32API integer hHeap&&, integer dwFlags, integer lpMem

DECLARE integer GetWindowText IN WIN32API integer, string@, integer&&获得窗口名

DECLARE integer EnumChildWindows IN WIN32APIinteger hWnd, integer lpEnumProc, integer l Param

DECLARE INTEGER GetWindowThreadProcessId INuser32 INTEGER hWnd, INTEGER@lpdwProcId&&找创建者

DECLARE Integer RtlAdjustPrivilege IN ntdll.dll Integer Privilege, Integer Enable, Integer;

Client, Integer@Was Enabled&&提升当前系统用户的权限, 因为权限不够有API函数提取了进程

SE_DEBUG_PRIVILEGE=20

?RtlAdjustPrivilege (SE_DEBUG_PRIVILEGE, 1, 0, 0)

LOCAL c Cmd, hProcHeap, cCmdnAddr, hModule, nAddr

CREATE cursor WindHwnds (hWnd i, 窗口名C (100) , 返回值N (10) , 进程号N (10) )

指定的堆上分配内存, 并且分配后的内存不可移动。

检索指定的动态链接库) 中的输出库函数地址

EnumChildWindows (0, AdrCode, 0) &&枚举一个父窗口的所有子窗口

HeapFree (hProcHeap) &&作用与HeapAlloc相反

上面的实例就是显示本服务器正在运行的程序窗口和它的进程号, 只要加上数据库记录就可以成为一个完整的服务器监控程序了, 由于篇幅的原因, 我就仅做监控这一部份的描述了。

其实上面的代码也是一个杀毒软件的雏形了, 只要加上中断进程的代码就可以成为一个自己专用的杀毒软件, 也更能保证服务器的安全了, 由些可见VFP非但没有没落, 反而是有很大的前途, 所以广大的VFP爱好者不要灰心, 把自己的VFP用好。

参考文献

[1]VFP中的API应用大全

[2]杨文, 黄文涛.《通用自动测试系统的软件设计与实现》.《工业控制计算机》.2012年第25卷第1期

浅谈中职数据库VFP的教学 第4篇

一、合理安排教学内容

学语言一般都是从基础知识、概念和一些理论知识入手的, 但中职学生的文化课底子薄, 理解能力本来就差, 如果一开始就讲理论只能让学生不知所措或对这门课提不起兴趣。现在学校一般开设的数据库课程都是VFP 6.0版本的, 它的可视化功能很强, 我们在授课时, 应充分利用这一特点, 让学生先从外观上对这门课有个初步的认识和了解, 理论知识可以在操作中边讲边学的过程中穿插进去, 改变一般教材的课程设置。从数据库及其操作入门, 在此过程中把前面的基础知识插进去, 这样学生是在操作使用中去掌握理论, 会比较形象直观一些;而后为了使用所建数据库中的数据表, 让学生学习查询、视图、报表、菜单, 学习完这些内容以后, 再让学后接触SQL语言、程序设计基础、表单。最后是综合应用程序的开发, 由易到难, 由浅入深, 可以循序渐进地将理论与实践结合起来, 达到教学目的和要求。

二、联系实际举例

数据库应用技术VFP是一门操作性很强的专业课程。为了让学生学习有兴趣, 在举例时应举与学生有关的、学生经常用到的内容, 比如建立数据库, 可以以学籍管理中的学籍表、成绩表为例, 这些表学生经常都在填写使用, 学生以自己的同学作为记录去创建表、使用表, 这样一是提高了他们的学习兴趣;二是在建表的过程中自动完成了对数据的收集、整理、录入编辑工作, 这样在讲数据处理时学生就不会难理解了。一个数据库包含的数据表应至少是3张以上, 这是为后面的建立表之间联系和多工作区做准备, 学籍管理中可以再添加一个图书借阅表。

在VFP中使用的文件类型比较多, 比如学籍管理库, 一旦建立就会同时自动生成同名的3个文件:学籍管理.DBC、学籍管理DCT、学籍管理.DCX, 在应用中只要3个文件少了一个, 就会影响数据库使用的质量。对其他文件也是一样的, 在操作中, 学生们经常会丢失一些文件的备注文件致使原文件无法使用。所以一定要求学生及时对原数据文件做好备份。对学生自己的相关信息进行操作, 学生学习兴趣浓厚, 在学习过程中出现了你追我赶的局面, 学习氛围非常好。讲授的例子始终围绕“学籍管理”这个具体实例来讲解, 前后具有连贯性, 便于知识的巩固和理解。

VFP课程的内容比较灵活, 为了让学生对所讲知识点进一步理解, 达到举一反三的目的, 再引导学生建一个图书管理库 (含读者表、图书表、借阅表) , 两库对比练习操作, 教学效果会更好。

三、分层教学, 及时反馈

由于先天禀赋和生长环境不同, 每个人大脑的思维能力和对知识的接受能力也不尽相同, 为能让每一位学生学有所得, 需要根据差异调整教学策略, 实施分层教学, 对各层次提出相应的教学目标, 目标要接近所针对的各层学生, 这样学生在通过努力, 实现了学习目标后, 就会产生一种愉悦的心情, 这是他以后学习的动力。在教学中, 讲、演、练结合。针对知识点, 有难有易, 拉开梯度设成操作练习题, 在讲完知识点后, 学生可以根据自己情况去操作习题, 教师加以指导, 对普遍问题, 集中演示讲解, 对个别问题可以个别辅导。在每节或每章 (根据可视文件多少) 后, 及时检查学生完成的操作任务, 给予计分。这样爱学习的人会更积极, 因为时不时会当老师去辅导同学, 不爱学习的学生也会被号召起来, 形成了人人学习的良好气氛。

以上是笔者从事数据库这门课教学的几点经验。教学无定法, 贵在得法, 具体使用什么方法更好, 还需因时、因人、因地进行变通, 灵活地、创造性地去实践。

摘要:本文提出利用VFP 6.0可视化功能, 在授课时, 让学生先从外观上对这门课有个初步的认识和了解, 改变课程设置, 联系实际举例, 分层教学, 理论结合操作, 提高学生学习兴趣, 达到良好的教学效果。

关键词:中职,数据库,VFP,教学内容,联系实际举例,分层教学

参考文献

[1]魏茂林.数据库应用技术——Visual FoxPro 6.0[M].北京:电子工业出版社, 2000.

[2]范明, 叶阳东, 邱保志, 职为梅.数据库原理教程[M].北京:科学出版社, 2008.

[3]陈树平, 菅典兵.Access数据库教程[M].上海:上海交通大学出版社, 2009.

VFP环境下的数据库加密技术 第5篇

随着人们的生活水平的不断提高,电子商务等经济活动在在生活中的比重也越来越大,信息安全也越来越受到人们的关注。信息安全地核心问题就是提高数据库的安全性,如何有效的实现数据库的加密,成为人们迫在眉睫的问题。经过近几年的研究,我国数据库加密技术虽然已经比较成熟,但目前大部分数据库都是以明文存储,即是采用ASCII码明文存储,这样的话其他非法用户只要直接使用Winhex、Ulteaedit等工具,甚至是Dos系统下的Degbug命令来打开数据库文件,都可以直接阅读到数据库中的内容, 因此用一般的身份验证与识别无法保障数据库的安全。但是如果数据库加密技术将数据库中的数据作密文存储,可以更有效地保护数据库安全。以下介绍了在VFP的环境下几种主要的数据库加密的方法。

1 数据库加密原理

数据加密就是把数据信息即明文转换为不可辨识的形式即密文的过程, 目的是使非法人员不能够识别, 反之将密文转变为明文的过程就是解密[1]。基本过程如上图。

模型中的明文即以ASCII码形式存储的DBF文件, 通过加密算法利用加密密钥转成不可阅读的密文后存储在数据库中, 打开时再通过加密算法利用解密密钥又转换成为明文, 整个过程分为加密与解密的两个步骤, 我们所讨论的重点在第一个步骤上, 根据VFP环境下文件型数据库的特点, 数据库的加密一般可以有两种方式, 一种为库外加密, 一种为库内加密。

2库外加密

在VFP环境下数据库系统是文件型的, 因此库外加密的办法, 应该针对文件IO操作或操作系统。所以在采用库外加密的方法时, 可以将数据先在内存中使用EDS、RSA等方法进行加密, 然后文件系统把每次加密后的内存数据写入到数据库文件中去 (注意是把整个数据库普通的文件看待, 而不是按数据关系写入) , 读入时再逆方面进行解密就可以正常使用了。这种加密方法的缺点是对数据库的读写都比较麻烦, 每次都要进行加密、解密的工作, 都会有影响到对程序的编写和读写数据库的速度。因此它的可行性方面还有待在实际应用的过程中视情况而定。

3 库内加密

VFP环境中从关系型数据库的几个方面出发,形成库内加密的思想很简单。关系型数据库的关键术语有:字段、行、数据元素和表。可以针对这几方面形成一种加密的方法。

3.1 以记录或字段(即二维表的行或列)为单位加密

在这种情况下, 我们访问数据库时都是以二维表方式进行的, 二维表的每一行就是数据库的一条记录 (即元组) , 二维表的每一列就是数据库的一个字段。如果以记录为单位进行加密, 那么每读写一条记录只需进行一次加解密的操作, 对于不需要访问到的记录, 完全不需要进行任何操作, 所以使用起来效率会高一些。但是由于每一个记录都必须有一个密钥与之匹配, 因此产生和管理记录密钥比较复杂。以字段为单位的加密分析与以记录为单位的加密情况相似。基于记录的数据库加密技术一般而言, 数据库系统中每条记录所包含的信息具有一定的封闭性, 即从某种程度上说它独立完整地存储了一个实体的数据。因此, 基于记录的加密技术是最常用的数据库加密手段。这种方案的基本思路是:在各自密钥的作用下, 将数据库的每一个记录加密成密码文并存放于数据库文件中;记录的查找是通过将需查找的值加密成密码文后进行的。由于密码文数据一般不能代替明码文进行算术运算和关系运算, 因此, 采用这种方案时, 数据库将不能实现诸如索引、连接、统计、排序等多种操作, 并会影响数据库管理系统某些原有功能的作用。

3.2 以数据元素为单位加密

由于数据元素是数据库库内加密的最小单位,因而这种加密方式最彻底的但也是效率最低的。每个被加密的元素会有一个相应的密钥,所以密钥的产生和管理比记录加密方式还要复杂。结合VFP数据库,可使用以下三种方法对数据库加密[2]:第一种是用asc()、che()等函数对字段内容做转换;第二种用低级文件函数对库文件进行转换;第三种就是不用库形式,而用文本文件形式记录信息.并用低级文件函数进行加密。

3.3 以表文单位加密

比如更改文件分配表(FAT)中的说明等手段可以实现对文件的简单加密,但这种加密方式涉及到文件系统底层,误操作容易造成FAT混乱,而且与文件系统格式有关,因而通常不宜采用。

综合以上几种方法,各有各的优点与缺点,如何使用最终还是要根据数据库的大小,字段的多少,关系的复杂程度来定。

结束语

数据库加密技术的应用极大的解决了数据库中数据的安全性问题,实现的方法各有千秋,随着数据库加密技术的发展,相信数据库的使用会变得越来越安全。

参考文献

[1]常永亮.数据库加密技术概述.

VFP数据库系统 第6篇

关键词:VFP,SQL Server,数据库,备份,恢复

0 引言

SQL SERVER是微软发布的RDBMS(关系数据库管理系统),它相当于仓库的管理系统,但功能不仅仅是数据管理,微软的数据库产品从功能和规模由小到大排列依次是:ACCESS,VFP,SQL SERVER。如果用VFP本身做C/S系统,效果不是很明显,因为VFP的数据管理功能不是很强,比如加锁解锁都需要程序来操作,实践证明VFP和SQL SERVER的搭配应该是比较完美的。对于一个C/S系统,数据备份是必需的,数据库备份记录了在进行备份这一操作时数据库中所有数据的状态,以便在数据库遭到破坏时能够及时地将其还原[1]。因此经常备份可以防止数据错乱、硬盘损坏等故障造成的数据丢失。本文深入研究了用VFP备份和恢复SQL Server数据库的方法。

1 使用SQL语句进行数据库备份和恢复

1.1 数据库备份

数据库备份按照备份范围可以分为:完整数据备份、差异数据备份和事务日志备份。对于不同规模的数据库可以选择不同的备份范围和备份周期。由于SQL Server支持多种备份方式和介质,因此备份词句Backup的语法非常复杂,在实际应用中只需知道最常用的备份语句就可以了[2]。

备份整个数据库的语法可以简化为:

Backup Database 数据库名To备份设备类型=′备份设备名′[WITH[{INIT|NOINIT}][[,]DIFFERENTIAL]]

其中,INIT参数表示使用覆盖设备,如果不指定此参数或指定了NOINIT参数,将使用追加式备份,DIFFERENTIAL参数表示使用差异备份。

备份数据库事务日志的语法可以简化为:

Backup log数据库名To备份设备类型=′备份设备名′

在SQL Server中可以将数据库或事务日志直接备份到一个文件,语法为:

Backup Database 数据库名To备份设备类型=′完整路径文件名称′

下面是实现SQL Server数据库备份到硬盘的实例(本文中的实例都采用VFP开发环境,SQL SERV服务器名:ZYD2;登录用户名:sa;登录口令:″sa″;′SQL SERVE数据库为Pubs):

LOCAL nHandle,cSQL,nResult

nHandle=SQLSTRINGCONNECT(″Driver=SQLServer;Server=ZYD2;UID=sa;PWD=sa;Database=Pubs″)&&建立数据库连接

=SQLEXEC(nHandle,″EXEC spaddumpdevice′disk′,′diskdump′,′c:zyd2dumpdiskdump.bak′″) &&在硬盘上建立备份设备=SQLEXEC(nHandle,″Backup Database pubs to Disk=′diskdump′″) &&备份整个数据库到硬盘设备

=SQLEXEC(nHandle,″EXEC spaddumpdevice′disk′,′pubslogdump′,′c:zyd2dumppubslogdump.bak′″)

=SQLEXEC(nHandle,″Backup log pubs to Disk=′pubslogdump′″)&&备份事务日志到硬盘

=SQLEXEC(nHandle,″Backup Database pubs To Didk=′c:zyd2temppubsbak.bak′″)&&直接备份到文件

=SQLEXEC(nHandle,″Backup Database pubs To Disk=′C:zyd2cppubsbak.bak′with DIFFERENTIAL″) &&直接备份到文件的差异备份

1.2 数据库恢复

数据库还原是指将数据库备份加载到系统中的过程。恢复数据库可以使用RESTORE DATABASE 命令,需要注意的是,数据库还原操作是静态的,还原数据库时,必须限制用户对该数据库进行其他操作[1]。参考代码如下:

由备份设备恢复整个数据库:

LOCAL nHandle

nHandle=SQLSTRINGCONNECT(″Driver=SQL Server;Server=ZYD2;UID=sa;PWD=sa;Database=Pubs″)

=SQLEXEC(nHandle,″Use master″)&&必须要打开Master数据库才能对Pubs进行恢复

=SQLEXEC(nHandle,″restore database pubs from disk=′diskdump′″)

由备份文件恢复整个数据库:

LOCAL nHandle

nHandle=SQLSTRINGCONNECT(″Driver=SQL Server;Server=ZYD2;UID=sa;PWD=sa;Database=Pubs″)

=SQLEXEC(nHandle,″Use master″)&&必须要打开Master数据库才能对Pubs进行恢复

=SQLEXEC(nHandle,″restore log pubs from Disk=′pubslogdump′″)

2 使用SQL-DMO的Backup对象进行数据库备份和恢复

2.1 数据库备份

SQLDMO(SQL Distributed Management Objects,SQL分布式管理对象)封装 Microsoft SQL Server 2000 数据库中的对象[3]。使用SQL-DMO的Backup对象可以对数据库或数据库事务日志进行备份,根据备份参数定义生成一个Transact-SQL BACKUP语句,或监视一个备份操作,为用户报告备份状态[2]。

使用Backup对象进行数据库备份的步骤如下:

(1)使用CREATEOBJECT(″SQLDMO.Backup″)语句建立一个Backup对象。

(2)使用Backup对象的Database属性指定要备份的数据库名称。

(3)使用Backup对象的Devices属性可以指定将数据库备份到一个设备;Files属性表示直接备份到文件;Pipes属性表示将命名管道作为数据库备份目标;Tapes属性表示将数据库备份到磁带。

(4)使用Backup对象的initialize属性指定备份方式为覆盖式或者这追回式备份。

(5)使用Backup对象的Action属性指定备份范围,0表示完整备份,1表示差异备份,2表示只备份指定文件,3表示只备份数据库事务日志。

(6)使用Backup对象的SQLBackup()方法进行备份。

本文举一个应用SQL-DMO的Backup对象直接将数据库备份到文件的实例:

将上面代码中oBackup.Files=″C:TempPUBBack.Dat″语句更改为oBackup.Devices=″C:TempPubs.bak″可以备份到设备中。

2.2 数据库恢复

使用Restore对象可以进行数据库或数据库事务日志的恢复,步骤如下:

(1)使用CREATEOBJECT(″SQLDMO.Restore″)语句建立一个Restore对象。

(2)使用Restore对象的Database属性设置要恢复的数据库名称。

(3)使用Restore对象的Action设置恢复方式。

(4)使用Restore对象的Devices属性可以指定从一个设备进行恢复;Files属性表示从文件进行恢复;Pipes属性表示从命名管道进行恢复;Tapes属性表示从磁带进行恢复。

(5)调用SQLRestore方法进行恢复。

与Backup对象一样,Restore对象也具有一个GenerateSQL()方法,用来生成一个Transact-SQL语句。参考下列代码:

3 结束语

对于系统数据库的备份与普通数据库相同,但是在恢复系统数据库前必须以单用户模式启动MS SQL Server服务,启动方法是在MS-DOS窗口中输入:sqlservr-m。

备份和恢复还可以用作其他的用途,如:将一个数据库备份下来,然后恢复到别一个新数据库中,这比使用导入/导出功能要好得多,能够较好地保持数据的完整性,也可以使用这种方法快捷地移动数据库。

参考文献

[1]林成春.SQL Server 2000编程指南[M].北京:中国铁道出版社,2006:72-76.

[2]张洪举.Visual FoxPro开发答疑160问[M].北京:人民邮电出版社,2003:444-446.

VFP数据库系统 第7篇

江苏江南水务有限公司在2008年,对水费营收系统进行了升级改造。原有系统是我们自行用VFP6.0开发的C/S系统,新系统由我们和北京华电方胜软件公司合作开发,客户端用PB8.0实现,数据库选用了ORACLE9i,建立的数据库实例WATER。尽管VFP6.0的数据管理功能不是很强,特别是数据安全稳定方面的弱点很明显,但其通俗易懂,开发的应用系统快捷方便,短小精悍,其本身就是关系型数据库操作语言,用它建立数据表来储存中间统计基础数据容易简便,对数据处理的响应速度很快,特别是处理关系复杂的涉及多个表的统计报表,优势非常明显。而ORACLE是个大型的关系型数据库,数据功能强大专业,安全稳定性好,其自有的工作流系统,能对应用系统中的关键点进行工作流程控制,但其作为大型数据库,体积庞大,操作繁杂,规则较多,不易上手。在海量数据处理上,速度较快,但对于小型数据库,相对处理速度较慢。新的营销系统上线后,我们发现其在数据报表统计方面,反应速度慢,有的报表甚至超过10多分钟的统计时间,效率低下,使用不顺畅(程序设计有问题?),不能及时有效地满足管理的需求。如何集结VFP和ORACLE各自的优势,来提高系统的功能,使其既安全稳定,又能高效及时,满足各管理层对数据深层次的分析需求?笔者从事了多年的VFP的开发工作,经过探索我们发现,利用VFP技术,可以实现对ORA-CLE数据库的中的数据信息的调用,来进行中间数据的有效管理,进而进行统计查询、报表输出等的二次开发。下面我们针对系统已有的ORACLE数据库WATER,用户登录ID:DBO,对通过VFP调用WATER数据库中的数据的过程逐一进行介绍。

二、VFP与ORACLE数据源的链接

VFP与ORACLE数据源的链接,既可以用静态配置的方法实现,也可以利用VFP的函数进行动态链接。

静态配置的方法很简单,打开WINDOWS的控制面板中的ODBC数据源管理器,(需要安装ORACLE客户端软件)创建新的用户数据源(DSN),选择数据源驱动程序MICROSOFT ODBC FOR ORACLE,进行DNS的命名、ORACLE数据库的登录用户名和服务器名的配置,在VFP中建立一个数据库,用新建的DSN来建立连接通道,通过远程视图来实现对ORACLE数据表的调用。

但很多情况下,我们希望能在程序里动态设置数据源,与数据库建立链接,一来可以不用去为每个用户的机器手动设置,二来为了数据的安全性,使用完后,希望把ODBC数据源删掉。

1、利用API函数SQLConfig Data Source来设置和删除ODBC数据源。

DECLARE INTEGER SQLConfig Data Source IN odbccp32INTEGER,INTEGER,STRING,STRING

该函数有4个参数;

(1)一个窗口句柄(hwnd)

(2)配置类型:用户DSN 1-添加,2-修改,3-删除

(3)数据库驱动程序名

(4)连接参数信息串。

所有串参数必须以CHR(0)结尾,连接参数信息串(第四个参数)必须是一个参数和值的分隔列表,分隔符是CHR(0)。见下面的示例。

获取传递到SQLConfig Data Source函数的第四个参数的值的信息的最好办法是,运行ODBC管理器并用你所需要的连接信息创建一个FILE DSN.该信息会保存到一个文本文件中。

程序如下:

一般用完后,可以在退出系统表单DESTROY事件里删除ODBC。如果不想重复设置参数,可以把这些参数加到表单作为属性。

三、从VFP链接到ORACLE

1、可由VFP中的命令CREAT CONNECTION来实现和远程数据源的连接,在连接的基础上,用CREART SQL VIEW来建立远程视图

比如,利用前面建立的数据源SFYX来建立一个SFYXLJ的连接

CREAT CONNECTION SFYXLJ DATASOURCE SFXYUSERID DBO PASSWORD*****DATABASE WATER

连接就是视图和远程数据源的一个通道,用这个连接再建立一个名为USERVIEW的远程视图,其结果就是把ORACLE中数据库WATER中的一个用户基本信息库USERFILES中的信息调入本地VFP中的临时表中

CREA SQL VIEW USERVIEW CONN vfp_to_oracl AS(SE-LECT*from user_files)

再把远程视图转化为本地的临时表

SELE USERVIEW

Copy TO CXPDBF1

值得注意的是连接名是区分大小写的。

用命令的方法,建立连接的远程视图,事先必须先建立或打开数据库,新建的连接和视图是属于该数据库的对象。

2、利用SPT技术,用函数连接数据库方法:

SPT(SQL Pass Through)技术能使用户直接访问ODBC,并把SQL语句发送给服务器执行。与远程视图相比,它能够更直接地控制后台服务器上的数据库:1、可以使用服务器的特有功能,如存储过程和基于服务器的内部函数等;2、可使用服务器所支持的SQL扩展功能,而且可进行数据定义、服务器管理和安全性管理等;3、对后台数据库的更新、删除和插入等操作拥有更多控制权,对远程事务也拥有更多控制权。该方法的缺点在于不能使用图形化的设计器,而且必须在命令窗口或程序中直接输入SQL命令。常用的函数主要有:连接管理函数(如SQLCON-NECT、SQLSTRINGCONNECT、SQLDISCONNECT等)、SQL语句的执行和控制函数(如SQLEXEC、SQLMORERESULTS、SQL-COMMIT、SQLROLLBACK等)

下面举几个常用的函数加以说明

(1)利用SQLCONNECT()建立连接,连接名为LJSql

为节约连接数减少服务器负担,需要经常连接和断开,有时候并不希望每次连接都让用户登录,当用户首次登录后,可以把名字和密码存起来,以后的连接可以自动登录了。

断开连接:=SQLDisconnect(LJSql)

(2)利用SQLEXEC(n Connection Handle,c SQLCommand[,Cursor Name])函数进行远程数据处理

A:数据表的调用

ac=SQLEXEC(LJSql,"select*from ys_contents_price","papple")

LJSql为已建立的连接名,ys_contents_price为ORACLE的WATER数据库中的的一个表,papple为查询结果指定的表名

IF ac<0

MESSAGEBOX("读取数据错误!",16,'错误信息')

RETURN

ENDIF

查询结果表papple是临时表,是只读的,要想变成可读写,把它保存为本地的自由表

SELECT papple

COPY TO temp.dbf

在用SQLEXEC(n Connection Handle,c SQLCommand[,Cursor Name])进行远程数据处理时,其SQL命令必须符合ANSI或者T-SQL(微软的TRANSACTION SQL),因为命令是通过函数送到服务器上去执行的,语法必须遵守ORACLE中SQL语句的规则,而不是VFP的规则。凡符合ORACLE的规则的SQL语句,均可通过SQLEXEC()执行,但必须注意的是,我们只是为了能输出查询中间数据,进行报表管理、数据分析的二次开发,所以,在使用中,必须避免对后台数据库的更新、删除和插入等操作,以免产生非法NULL值或引起数据不一致。

B:存储过程的调用

在服务器上有一个存储过程,PROCEDURE Hot Line_Get Arrearages By YM(User Id VARCHAR2,--用户号YM in varchar2,--YM为年月(即201108这样的六位数字)Result Str IN OUT VARCHAR2--返回字符串varchar2),这是个和热线接口的程序,目的是根据用户号和年月,输出用户水量和水费的字符信息。

在VFP中,先定义返回值的变量,temp=''

userid='1000123456&&用户号

ym='201108'&&用水年月

ac=SQLEXEC(LJSql,"{call Hot Line_Get Arrearages By YM(?@userid,?@ym,?@temp)}")

?temp

"您2011年08月的水量为11吨,该月水费为28.6元"

C:自定义函数的调用

在服务器上有一自定义函数FUNCTION LOWER_TO_UPPER(p_num number)return varchar2,其目的就是把小写的金额转换成大写的金额。比如将"123.56"元转换成"¥壹佰贰拾叁元伍角陆分"

在VFP中,我们定义变量aa=123.56

ac=SQLEXEC(LJSql,"select lower_to_upper(?@aa)from dual","temp")

sele temp

brow

系统退出时,

=SQLDisconnect(LJSql)

运用实例:(略)

四、小结

利用VFP6.0技术对ORACLE9i数据库的调用,集合了VFP和ORACLE的各自优势,我们保存了中间统计基础数据,对系统中的报表统计,特别是数据关系复杂的月报、季报、年报进行了二次开发,即能保证数据信息的安全稳定性,系统中各关键点通过流程来得到有效控制,又能提高报表数据的统计速度,提高了新上线的水费营销系统的整体性能。

摘要:本文主要讲述在VFP6.0中利用API函数和SPT技术,动态链接ORACLE数据库,调用Orcale9i数据库中的数据表、存储过程和自定义函数的方法和技巧,进而在VFP中进行中间基础数据的输出,以便完成复杂的统计报表输出。

关键词:VFP,ODBC,ORACLE,SPT技术

参考文献

[1]VFP6.0使用手册及帮助文档.

VFP数据库系统 第8篇

VFP数据库是中职学校计算机及应用专业的一门主干专业课, 其主要任务是使学生掌握数据库的基础知识和基本技能, 培养学生利用数据库系统进行数据处理的能力, 提高学生的职业技能和素质, 为适应职业岗位和继续学习打下一定的基础。

项目教学法是通过实施一个完整的项目而进行的教学活动, 其目的是在课堂教学中把理论与实践教学有机地结合起来, 充分发掘学生的创造潜能, 提高学生解决实际问题的综合能力。基于建构主义的项目教学法与传统的教学法相比, 有很大的区别, 主要表现在改变了传统的三个中心, 由以教师为中心转变为以学生为中心, 由以课本为中心转变为以“项目”为中心, 由以课堂为中心转变为以实际经验为中心。所以, 在运用项目教学法进行教学设计的时候, 学生是认知的主体、是知识意义的主动建构者。在课堂教学中把理论与实践教学有机地结合起来, 提高学生的专业应用能力;促进学生的团队合作精神, 充分调动学生的学习兴趣。

2 项目教学法的实施应用

基于以上情况, 在教学中尝试应用项目教学法, 以项目模块为教学单元, 打破书本上原有章节限制, 将各部份知识分解成一个个知识点, 为了完成一个项目模块可以选取每个部份的不同知识点加以组合。使学生每完成一个项目模块都有成就感并增加学习兴趣。根据项目教学的教法思路和教学设计原则, VFP课程教学步骤如下:

2.1 项目的选择设计

通常教师根据所了解的社会需求情况, 由教师提出一个或几个项目任务设想, 然后同学生一起讨论, 最终确定项目的目标和任务。在此利VFP6.0软件制作一个“学生档案管理系统”。项目中包括五个模块:主界面模块、查询模块、维护模块、统计报表模块、退出模块。在此项目中, 可以将整本书中的内容串联起来, 而不是分章节的去讲解一些枯燥、很难理解记忆的list, delete等命令或者很难理解的编程设计。而且这些项目与学生实际情况密切相关, 材料准备简单, 又对以后找工作很有帮助, 学生兴趣浓。项目总体设计如下:

2.2 项目的具体实施

教师在教学中提供示范项目, 学生从应用者的角度来了解项目的功能作用, 了解此工程项目所需要完成的模块, 在教师的指导下, 各组组长带领下制定项目的进展计划、步骤和程序。让学生对于程序设计、数据库这些概念有更深的了解。

在确定好各自项目任务后, 怎么完成项目呢?针对这些疑惑在教学时可以把知识点转化为具体模块来让学生来完成的方式, 每一节课教授学生几个知识点, 以便完成一个模块, 让学生在学习过程中逐步完成设计制作。例如“学生信息查询模块”, 此模块的任务是根据输入学号或者姓名进行学生信息查询, 学习的目标是学习VFP中查询命令的使用, 以及循环程序设计思想。实施项目的技术要点是查询命令的命令参数。让项目组学生带着任务去看书学习, 每个项目组通过看书可以完成如下问题:

(1) 查询有几个命令;

(2) 每个命令的命令格式、各参数的含义;

(3) 每个命令各自的使用环境。

在此模块中主要教学目的是讲解:list, display两个显示命令, 以及SQL语言中的查询命令Select, 以及表单设计中的文本框、列表框等控件的使用。这样就可以避免学生对于数据库的一些命令感觉枯燥而不容易接受, 解决学生对于面向对象的表单设计无从下手的问题。从而使学生从简单的项目模块实例进入, 从实际出发去学习掌握知识。在看完书后, 按自己的理解完成各模块的简单制作, 同时老师要求同学回答以上任务问题, 要求各项目组在回答问题时充分发表意见, 同学间可相互提示帮助。教师根据学生的掌握情况进行及时补充。对学生在应用上有困难的地方教师提供给他们解决问题的方法, 让班上绝大多数学生能完成基本的教学内容。教学从简单到复杂, 把课堂上所学知道逐步应用到各自的项目上来, 把各模块逐步完善的完成。这样让学生掌握好每一个知识点, 完成每一个模块, 最后就如建高楼一样, 把所学知识点串起来, 学生就可以完成以前想象中不能完成的项目。

2.3 项目的评价和总结

每个项目模块完成过程中做相应的总结, 对学生的项目做出合理评价, 在课堂上利用学生做的结果对学生的学习和练习作出客观评价, 让每个学生都能体验到成功的乐趣。过程性检查评估是项目实施过程中必不可少的一个环节。学生一个阶段的学习结束后, 对本阶段的学习成果进行展示、评价;教师和学生一起做好本阶段的学习总结, 找出优点和不足, 不足之处及时改进, 为后续工作做好坚实的基础工作。每个项目模块完成后进行一个总评, 方法通常是采用分组讲解、展示模块效果, 由学生评价和老师评价构成。学期结束后整个项目后, 做一个阶段性的总结、展示, 以鼓励同学们。

3 项目教学法在教学中的意义

在采用项目教学法进行教学的过程中, 教师引导者、指导者。教师的作用不再是一部百科全书或一个供学生利用的资料库, 而成为了一名向导和顾问。他帮助学生在独立研究的道路上迅速前进, 引导学生如何在实践中发现新知识, 掌握新内容。学生成为学习的主体, 通过独立完成项目把理论与实践有机地结合起来, 不仅提高了理论水平和实操技能, 而且又在教师有目的地引导下, 培养了合作、解决问题等综合能力。同时, 教师在观察学生、帮助学生的过程中, 开阔了视野, 提高了专业水平。可以说, 项目教学法是师生共同完成项目, 共同取得进步的教学方法。

参考文献

[1]杨文明.高职项目教学理论与行动研究[Z].

[2]徐涵.行为导向教学中教师角色的转换[D].沈阳:沈阳师范大学教育科学学院.

相关文章
创新公共服务范文

创新公共服务范文

创新公共服务范文(精选12篇)创新公共服务 第1篇科学技术是第一生产力,科技公共服务平台对国家或区域的技术创新具有巨大的推动作用。科技...

3
2025-10-24
匆匆中学生读后有感

匆匆中学生读后有感

匆匆中学生读后有感(精选9篇)匆匆中学生读后有感 第1篇匆匆读后感500字_读《匆匆》有感当细细地品读完一本名著后,大家心中一定有不少感...

1
2025-10-24
草莓教学范文

草莓教学范文

草莓教学范文(精选17篇)草莓教学 第1篇“风儿轻轻吹,彩蝶翩翩飞,有位小姑娘上山摘草莓,一串串哟红草莓,好像……”优美的歌词,动听...

3
2025-10-24
仓储类课程范文

仓储类课程范文

仓储类课程范文(精选7篇)仓储类课程 第1篇物流产业是复合型产业,发达的物流能加速传统运输、仓储和零售等行业向现代物流服务领域延伸。...

1
2025-10-24
创造性批评:解说与解读

创造性批评:解说与解读

创造性批评:解说与解读(精选8篇)创造性批评:解说与解读 第1篇创造性批评:解说与解读作为诗性文化重要组成部分的审美批评,同文学艺术实践...

2
2025-10-24
初二地理试卷分析

初二地理试卷分析

初二地理试卷分析(精选6篇)初二地理试卷分析 第1篇莲山 课件 w ww.5 YK J.COM 4 初二地理试卷分析二、试题所体现的新课程理念和...

3
2025-10-24
常州市河海中学文明班小结

常州市河海中学文明班小结

常州市河海中学文明班小结(精选2篇)常州市河海中学文明班小结 第1篇常州市河海中学2008~2009学年第一学期 八(1)班创 文 明 班 ...

2
2025-10-24
财务负责人身份证明

财务负责人身份证明

财务负责人身份证明(精选14篇)财务负责人身份证明 第1篇财务负责人身份证明及签字样本兹证明为我公司财务负责人。特此证明。身份证复印...

1
2025-10-24
付费阅读
确认删除?
回到顶部