实现Access数据库的Web查询

2016-02-19 12:26 20 1 收藏

图老师小编精心整理的实现Access数据库的Web查询希望大家喜欢,觉得好的亲们记得收藏起来哦!您的支持就是小编更新的动力~

【 tulaoshi.com - 编程语言 】

ISAPI与DAO简介
  
  ISAPI(InternetServerApplicationPrgrammingInterface)是微软公司提供的,和其IIS紧密结合的API。用它可以编制Internet/Intranet的数据库、网络管理和BackOffice等应用。
  
  数据访问对象(DAO即DataAccessObjects),原来是微软为VisualBasic和AccessBasic设计的可编程接口。后来有了OLEAutomation(自动控制)技术,它就可以用于C++编程了。
  
  程序员可以用DAO的三种类型编制C++代码:
  
  *DAOOLEAutomation接口;
  
  *dbDAO类;
  
  *MFCDAO类。
  
  其中dbDAO类和VisualBasic的DAO类非常相似,易于使用,笔者就是用它来进行数据库编程。
  
  表1宏变量名FORM中对应数据域类中的属性变量解释
  SZTXTDATABASENAMEDATABASENAMEm—szDatabaseName数据库名
  SZTXTTABLENAMETABLENAMEm—szTableName表名或查询名
  SZTXTFIELDNAMEFIELDNAMEm—szFieldName搜索字段名
  SZTXTFIELDVALUEFIELDVALUEm—szFieldValue字段值
  编程背景
  
  现在有不少中小企业或部门的数据库都基于Access,且其一般用Client/Server模式组建MIS。在当今流行Internet/Intranet且必将成为今后主流的形势下,有必要把原先的数据库搬上Internet/Intranet。
  
  不少人正使用ASP、IDC、VBScript、JavaScript、Perl甚至ShellScript来编制Web应用程序,虽然它们比ISAPI编制起来较容易,但其安全性较差,而且不如用C、C++等灵活强大,所以,作为一名较专业的程序员,选择用C++等高级语言来编制Web应用是更明智的选择。
  
  Microsoft公司的系统和开发软件正处于流行的时候,基于上述因素,笔者用VisualC++(4.2以上)提供的ISAPI和DAO开发工具,设计了Access数据库的通用Internet/Intranet查询程序,可运行于IIS2.0、PeerWebServer和PersonalWebServer等Web服务器。
  
  程序使用方法和功能介绍
  
  程序编译连接后,生成search.dll,置于Web服务器的可执行目录中(如/cgi-bin)。
  
  Web主页制作人员可以把以下HTML片断插入页面:
  
  〈formaction=″/cgi-bin/search.dll″method=″GET″〉
  
  〈inputtype=″hidden″name=″DATABASENAME″value=″Northwind.mdb″〉
  
  〈inputtype=″hidden″name=″TABLENAME″value=″产品″〉
  
  〈inputtype=″hidden″name=″FIELDNAME″value=″产品名称″〉
  
  〈p〉〈inputtype=″text″name=″FIELDVALUE″size=″30″〉〈/p〉
  
  〈p〉〈inputtype=″submit″value=″按此查询″〉〈/p〉
  
  〈/form〉
  
  以上三个“hidden”类型的输入数据由主页制作人员输入,在浏览器中不显示出来,以求界面美观,FIELDVALUE则由客户由浏览器填入数据。四个数据域分别解释如下:
  
  *DATABASENAME:Access数据库名,缺省在%system%system32目录,如输入全路径名,则用C语言格式,如:c:datamydata.mdb。
  
  *TABLENAME:表名或查询名,可以自定义一个符合输出的查询。
  
  *FIELDNAME:要以之为查询条件的字段名,为文本型。
  
  *FIELDVALUE:字段值,由客户输入。
  
  客户在浏览器中输入数据后,按下查询按钮,则由服务器输出以下查询结果:
  
  select*fromTABLENAMEwhereFIELDNAMElike″*FIELDVALUE*″
  
  因为*为Access查询语句的通配符,所以本程序能实现基于字段FIELDNAME的模糊查询。
  
  程序流程和主要函数说明
  
  图1本程序对一个客户请求的处理流程
  
  (一)头文件MyTable.h
  
  1.定义了4个宏变量分别和FORM中的四个输入数据域对应,用于解析参数以取得值,如表1所示。(下转B7版)
  
  2.定义了CHttpServer类的派生类CMyTableExtension:
  
  classCMyTableExtension:publicCHttpServer
  
  {
  
  public:
  
  CStringm—stReadError;
  
  LPSTRm—szDatabaseName;
  
  LPSTRm—szTableName;
  
  LPSTRm—szFieldName;
  
  LPSTRm—szFieldValue;
  
  voidcdbSetupPage(CString&stPage);
  
  CHARatoiHex(CHARch);
  
  //ParseInput函数解析客户输入数据
  
  BOOLParsetInput(LPSTRszInput,LPSTRszItem,LPSTR*pszData);
  
  //strVARIANT函数把变体变量值转换成一般数据类型值
  
  CStringstrVARIANT(constCOleVariant&var);
  
  CMyTableExtension();
  
  ~CMyTableExtension();
  
  //{{AFX—VIRTUAL(CMyTableExtension)
  
  public:
  
  virtualBOOLGetExtensionVersion(HSE—VERSION—INFO*pVer);
  
  virtualDWORDHttpExtensionProc(EXTENSION—CONTROL—BLOCK*PECB);
  
  /

来源:https://www.tulaoshi.com/n/20160219/1600886.html

延伸阅读
本文描述如何在VC下动态创建access数据库(mdb)文件,方法是用ADO和ADOX来操作数据库,操作环境为winxp/VC6.0/ACCESS2000。具体方法如下。       使用ADO前必须在工程的stdafx.h文件最后用直接引入符号#import引入ADO库文件,以使编译器能正确编译。代码如下: #import "C:Program Filescommon filessystemadomsado15....
标签: ASP
  Shows how to perform a search with a WAP page and use ASP on the server to do the database query and then display the results. <%Response.ContentType = "text/vnd.wap.wml"% <?xml version="1.0"?<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum...
下面的函数用来压缩access数据库 需要增加ComObj单元 function CompactDatabase(AFileName,APassWord:string):boolean; //压缩与修复数据库,覆盖源文件 const   SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'       +'Jet OLEDB:Database Password=%...
如果在 Access 数据库中删除数据或对象,或者在 Access 项目中删除对象,Access 数据库或 Access 项目可能会产生碎片并会降低磁盘空间的使用效率。压缩 Access 数据库或Access项目实际上是复制该文件,并重新组织文件在磁盘上的存储方式。压缩同时优化了 Access 数据库和 Access 项目的性能。 所以我们在对日益增大的数据库导致的ASP...
在当前数据库领域,已有越来越多的人开始采用Access。它是一个功能强大的数据库管理系统和MIS系统开发工具,具有界面友好、易学易用、开发简单、接口灵活等特点。现将本人在使用Access时体会到的一些经验在此与大家交流。 数据库设计的技巧 1. 统一规划 所谓数据库设计是指从对现行非计算机管理的数据库系统的分析到最...

经验教程

972

收藏

85
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部