delphi数据库课程设计报告

上传人:ji****72 文档编号:37524988 上传时间:2018-04-17 格式:DOC 页数:8 大小:146.38KB
返回 下载 相关 举报
delphi数据库课程设计报告_第1页
第1页 / 共8页
delphi数据库课程设计报告_第2页
第2页 / 共8页
delphi数据库课程设计报告_第3页
第3页 / 共8页
delphi数据库课程设计报告_第4页
第4页 / 共8页
delphi数据库课程设计报告_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《delphi数据库课程设计报告》由会员分享,可在线阅读,更多相关《delphi数据库课程设计报告(8页珍藏版)》请在金锄头文库上搜索。

1、 数数 据据 库库课程设计报告课程设计报告专业:专业: 学号:学号: 姓名:姓名: 老师:老师: 王王 晓晓 刚刚 武汉纺织大学武汉纺织大学数学与计算机学院数学与计算机学院2014 年年 6 月月 19 日日摘摘 要要使用客户/服务器版本的 Delphi 可以快速、迅捷的进行 Web 数据库的开发,比如开发像 CGI(Common Gateway Interface,即通用网关接口) 、DLL(Dynamic-Link Libraries,即动态链接库)等的服务器程序。这些服务器程序通常会包括一些不对见部件,Delphi 的 Internet 部件组提供了许多这种部件,从而使编写服务器程序不再

2、困难。Delphi 中的 Internet 部件组提供的部件可以用于获得来自某个 URI(Uniform Resource Identifier)的请求,然后触发一定的事件对请求进行处理,最后通过编程创建 HTML页面将对客户请求处理的结果返回给客户。一、 项目的意义随着网络技术的发展,新的技术层出不穷,往往一个问题有多种解决方案。比如 Web服务器程序包括 ISAPI 动态链接库、NSAPI 动态链接库、标准 CGI、WIN-CGI 等,但是又不局限于这几种方式,使用 ActiveX 技术同样可以完成 Web 服务器程序的功能。二、项目具体步骤及结果分析项目一项目一:按照下面的步骤编写一个能

3、够返回一个静态页面的 ISAPI 类型的动态链接库。1.1 步骤:步骤:1. 新建一个项目 在主菜单中选择 New,并在出现的对话框中选择 Web Server Application 选项。 2. 选择创建 ISAPI 动态链接库 在选择服务器程序类型的对话框中选择 ISAPI/NSAPI 选项。 3. 程序框架 这时将得到一个 ISAPI 动态链接库的框架,整个框架就包括一个 Web Module 部件。 这个部件和 Data Module 部件没有多大区别。利用它们,用户可以方便地拖放部件。开发 ISAPI 动态链接库时可以输出许多函数,这些函数可以生成回应信息。函数的生成是通过 Web

4、 Dispatcher Action Items 实现的,这在后面就会提到。 4. 创建 ActionItem 每个 Web Module 中包含一个缺省的 Web Dispatcher 部件。这个 Web Dispatcher 部件 在 Web 服务器程序中起着举足轻重的作用:每个从 Web 浏览器向 ISAPI DLL 发出的用户 请求都是由 Web Dispatcher 接收,并且确定由哪一个 ActionItem 来执行;程序中所有可用 的 ActionItem 都由 Web Dispatcher 记录,由 Web Dispatcher 确定是否执行某个 ActionItem 的 on

5、Action 事件。这里创建一个 ActionItem 帮助返回一个响应用户请求的静态页面。 双击 Web Module 部件,激活 Action Editor 对话框。 在 Action Editor 对话框中单击 Add 按钮,为程序创建一个 ActionItem。 在 Action Editor 对话框中选中新建的 ActionItem,在 Object Inspector 中编辑它的属性。 改变 ActionItem 的 Name 属性,命名为 dllStatic。 为这个 ActionItem 指定一个 URI(即 Universal Resource Identifier,在 In

6、ternet 上用于标 识某个特殊实体的通用资源标识符) ,可以通过修改 PathInfo 属性来实现。这里将这个 ActionItem 的 PathInfo 属性设置为 first。 5. 为 ActionItem 编写代码 为 ActionItem 指定 URI 如同命名一个方法,这样根据 URI 就可以调用动态链接库中的 这个 ActionItem 来响应用户的请求。至于 ActionItem 响应用户的请求后要完成什么操作就 取决于 ActionItem 的 OnAction 事件。这个 ActionItem 的 0nAction 事件代码如下: procedure TWebModul

7、e1.dllStaticAction(Sender:TObject;Request:TWebRequest;Response:TWebResponse;var Handle:Boolean) varHTML:String; begin下面的语句都是用来产生 HTML 页面HTML:=;HTML:=HTML+;HTML:=HTML+HELLO WORLD WIDE WEB;HTML:=HTML+这是个 ISAPI 类型的动态链接库例子;HTML:=HTML+;HTML:=HTML+;Response.Content:=HTML; end;6. 设置服务器 用户调试编写好的 ISAPI 动态链接库

8、首先需要一个与 ISAPI 兼容的 HTTP 服务器来使 用编写好的服务器程序。如果用户的 HTTP 服务器支持 ISAPI,它就会在安装时创建一个 目录,专门用于存放 ISAPI 的动态链接库(以.dll 为文件后缀名) ,用户还需要将这个目录 设置为允许动态链接库从这个目录执行。 这里使用的 HTTP 服务器是 Windows 2000 系统自带的 IIS(即 Internet Information Server) , 在 IIS 中专门用于存放 ISAPI 动态链接库的目录是 scripts。 将 scripts 目录(在当前机器上的路径)设置为可执行的。 用户调试 ISAPI 动态链

9、接库还需要知道 scripts 目录在机器上的实际路径。在调试前,用户 需要将编译后的 ISAPI 动态链接库文件存放在 scripts 目录。只有在这个目录里,IIS 服务 器才能执行这个服务器程序。这个 scripts 目录实际上是一个别名,这个别名表示一定的实 际路径,和数据库别名的作用一样。 7. 调试 ISAPl 动态链接库程序 服务器可以执行的服务器程序是动态链接库,是以.dll 为后缀名的文件。在 Delphi 中 编写的 ISAPI 动态链接库文件还只是一个项目文件,需要进行编译。编译可以选择 Delphi 主菜单中 Project 子菜单的 Compile first 选项(

10、first 是项目文件名),然后将编译后得到的 first.dll 存放到指定的 scripts 目录下,实际路径为 C:Inetpubwwwrootscripts。 在 Internet Explorer 浏览器的地址栏中输入 http:/localhost/scripts/first.dll/first,就会得到如 图所示的内容。地址中最后的 first 就是由 ActionItem 的 PathInfo 属性设置的。1.2 实验结果实验结果1.3 结果分析结果分析这里所说的静态页面,就是针对用户不同的请求返回的是同样的 HTML 页面,即HTML 页面的内容不变。 项目二项目二 :这个例

11、子完全可以在生成静态页面的例子上进行,需要完成的工作就是在生成 HTML 页面的语句中加入系统日期和时间。 2.1 步骤步骤 在 first 项目文件中选择 Web Module 组件,激活 Action Editor 对话框; 在 Action Editor 中添加一个 ActionItem; 将第二个 ActionItem 命名为 dllDynamic,PathInfo 属性设置为 DateTime; 为新建的 ActionItem 的 onAction 事件编写如下代码: procedure TWebModule1.dllDynamicAction(Sender:TObject;Requ

12、est:TWebRequest;Response:TWebResponse;var Handle:Boolean) var HTML:String; begin下面的语句都是用来产生 HTML 页面HTML:=;HTML:=HTML+;HTML:=HTML+现在的时间是:;HTML:=HTML+DateTimeToStr(Now);HTML:=HTML+;HTML:=HTML+;Response.Content:=HTML; end;加入系统日期和时间可以使用 Delphi 的 Now 函数来完成,DateTimeToStr 函数是用来将系 统日期和时间值转化为字符串用于输出。将编译改进后的

13、ISAPI 动态链接库更名为 first1, 在浏览器的地址选项中输入 http:/localhost/scripts/first1.dll/datetime,就会得到如图所示的 内容。注意:如果运行过 first.dll/first,它在服务器的内存中可能还存在着,这是用户需要重新启 动一次服务器,然后才可以写入一个新的动态链接库。 2.2 实验结果实验结果2.3 结果分析结果分析将服务器程序稍作修改,就可以返回一个动态页面,即在响应每次用户请求时生成的 HTML 页面不一样。在这个例子里,服务器程序接收到用户请求后,将在生成的 HTML 页面中显示当前的 时间。生成这种动态页面时,用户不需

14、要从用户获取任何输入。日期和时间虽然是动态的, 但是和用户请求的类型没有关系。项目三:项目三:添加 PageProducer 组件,这个例子将完成这样的功能,用户在用户输入界面输入 数据,然后服务器程序将用户输入数据作为小子响应信息给出。 3.1 步骤步骤 打开 first1 项目文件,在原来的基础上进行改进; 从 Delphi 的 Internet 组件页将 PageProducer 组件拖入到 Web Module 中; 设置 PageProducer 组件的 HTMLDoc 属性值输入以下代码:Thank you!Web 服务器程序对用户请求的响应信息以下是用户输入的数据图 17-13

15、String List Editor 对话框姓名:地址:电话号码:E-Mail:这些 HTML 代码的作用是根据用户输入的数据产生相应的信息。这个文件中的 Tags 在服 务器程序获得用户输入数据和给出响应信息种类起着重要作用。当 PageProducer 组件处理 这个 HTML 模板时,每遇到一个 Tag 就触发一个 OnHTMLTag 事件。OnHTMLTag 事件的 过程可以用于确定哪个 Tag 触发这个事件,然后通知 PageProducer 用哪个值代替这个 Tag。 编写 PageProducer 组件的 OnHTMLTag 事件,代码如下:procedure TWebModul

16、e1.PageProcedure1HTMLTag(Sender:TObject;Tag:TTag;const TagString:String;TagParams:TStrings;var ReplaceText:String)varData:TStrings;beginData:=nil;with Request dobegincase MethodType ofmtPost: Data:=ContentFields;mtGet: Data:=QueryFields;end;ReplaceText:=Data.ValuesTagString;end;end;3.2 运行结果运行结果3.3 结果分析结果分析程序中用 MethodType 方法无额定浏览器向服务器发出用户请求才用的

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号