实现Access数据库的Web查询

北京建造师乐园

北京建造师乐园

2016-02-19 12:26

图老师小编精心整理的实现Access数据库的Web查询希望大家喜欢,觉得好的亲们记得收藏起来哦!您的支持就是小编更新的动力~
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);
  
  /
展开更多 50%)
分享

猜你喜欢

实现Access数据库的Web查询

编程语言 网络编程
实现Access数据库的Web查询

ACCESS:跨数据库查询的SQL语句

编程语言 网络编程
ACCESS:跨数据库查询的SQL语句

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Oracle组件实现动态Web数据库

编程语言 网络编程
Oracle组件实现动态Web数据库

通过查询返回access数据库对象的名称

编程语言 网络编程
通过查询返回access数据库对象的名称

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

SQL Server连接ACCESS数据库的实现

SQLServer
SQL Server连接ACCESS数据库的实现

在Access数据库中实现密码管理

编程语言 网络编程
在Access数据库中实现密码管理

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

无线键盘失灵如何解决

无线键盘失灵如何解决

如何访问文本文件(2)----用MicrosoftJet访问桌面数据库(四)

如何访问文本文件(2)----用MicrosoftJet访问桌面数据库(四)
下拉加载更多内容 ↓