只用DELPHI就可以完成WEB数据库的开发工作。
起码具备以下的几点知识(DELPHI方面)
 1。MIDAS多层数据库开发知识;
 2。XML的基础知识;
 3。MTS的基础知识;
 4。DELPHI的WebBorker技术;
 5。熟练使用DELPHI的InternetExpress技术;

解决方案 »

  1.   

    李维的DELPHI分布式多层应用电子商务篇是本参考书.
      

  2.   

    以下是我编的一个简单聊天室的源码:
     基本思路是这样的。
           一个后台CGI程序进行处理,它有两个响应例程,一个在登录时用,一个聊天时用。
           用一个数据库 talker.DB来存放聊天发言。
           用一个talker.htm来存放最近40条发言记录。
           当用户提交请求时,首先要求用户登录信息,提交登录信息后,自动保存该
       用户的名称,进入聊天界面。
           聊天界面是由后台程序返回的一个带浮动框架的HTML页面,分两个部分:
               1,浮动帧内用来存放talker.htm,(talker.htm在表头加上<meta http-equiv="refresh" content="10">
                  实现聊天记录每10秒刷新一次,而不需服务器起动进程。
               2, 另外用一个窗体来实现数据的提交。
                  用户提交数据后,进行分析处理,在写入数据库的同时,同时更新TALKER。HTM文件。
        
     缺陷所在:
           1。没有身份验证功能。
           2。刷新时间不能由用户定义
           3。功能不强
     工作环境:WIN98+PWS 
    unit HTML;interfaceuses
      Windows, Messages, SysUtils, Classes, HTTPApp, Db, DBTables;type
      TWebModule1 = class(TWebModule)
        Table1: TTable;
        procedure WebModule1WebActionItem1Action(Sender: TObject;
          Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
        procedure WebModule1WebActionItem4Action(Sender: TObject;
          Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
        private
        { Private declarations }
      public
        { Public declarations }
      end;var
      WebModule1: TWebModule1;implementation{$R *.DFM}procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
      Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
    var html,talker:string;
        htmlfile:textfile;
        i:integer;
        data:tstrings;
    begin
      data:=nil;
      data:=request.ContentFields;
      table1.Open;
      table1.Last;
      table1.append;  table1.FieldByName('name').asstring:=data.Values['username'];
      table1.fieldbyname('sex').asstring:=data.values['sex'];
      table1.fieldbyname('age').asstring:=data.values['age'];
      table1.FieldByName('city').asstring:=data.values['city'];
      table1.fieldbyname('email').asstring:=data.values['email'];
      table1.fieldbyname('talk').asstring:=data.values['textarea'];
      if table1.FieldByName('talk').asstring<>'' then
        table1.Post
        else
        table1.Cancel;
      {提交数据入库结束}  {写聊天记录文件}
      assignfile(htmlfile,'talker.htm');
      rewrite(htmlfile);
      html:='';
      html:=html+'<html><meta http-equiv="refresh" content="10"><head></head><body>';
      table1.open;
      table1.last;
      i:=0;  while ((table1.recno<>1) and (i<=40 )) do  begin
      talker:=table1.fieldbyname('name').asstring;
      if talker='' then
      talker:='匿名者';
      html:=html+'<td>'+'<font color="#0000FF">'+talker+'</font><font color="#00c0c0">说:</font>';  html:=html+table1.fieldbyname('talk').asstring+'</td>';
      html:=html+'<p>';
      table1.prior;
      i:=i+1;
      end;
      html:=html+'</body></html>';
      writeln(htmlfile,html);
      closefile(htmlfile);
      {写聊天文件}
      html:='';
      html:=html+'<html><head><title>留言簿</title></head><center><H2>聊天室</H2>';
      html:=html+'</center><body background="" bgcolor="#fffff"><td></td><td>';
      html:=html+'<iframe align="right" height="250" width="100%" marginwidth="40" marginheight="40" name="data" scrolling="yes" src="\scripts\talker.htm">';
      html:=html+'<font color="#0000FF"></iframe><br><br>';
      html:=html+'<p><form action="/scripts/web.exe/a"';
      html:=html+'method="post" id="form1" name="form1" style="FONT-SIZE: larger">';
      html:=html+'<br><br><br><br><br><br><br><br><br><br>';
      html:=html+'</p><p>姓名:<input size="12" maxlength="10" name="UserName" value="';
      talker:=data.Values['username'];
      html:=html+talker;
      html:=html+'">';
      html:=html+'</p><p>留言:<textarea name="Textarea" rows="2" cols="50">';
      html:=html+'</textarea>';
      html:=html+'&nbsp;&nbsp;<input type="submit" Name="submit" value=" 提     交 ">';
      html:=html+'&nbsp;<input type="reset" value=" 取    消">';
      html:=html+'</form></center></BODY></html>';
      Response.Content :=html;
    end;
    procedure TWebModule1.WebModule1WebActionItem4Action(Sender: TObject;
      Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
      var html:string;
      begin
      html:='';
      html:=html+'<HTML><HEAD><title>聊天登记</title>';
      html:=html+'<body>';
      html:=html+'<center><font color="red"><h2>请详细填写个人信息</h2></font></center>';
      html:=html+'<p><p><p><p>';
      html:=html+'<form action="/scripts/web.exe/a" method="post" id="form1" name="form1" style="FONT-SIZE: larger">';
      html:=html+'<p>&nbsp;&nbsp;&nbsp;&nbsp;姓名:<input size="12" maxlength="10" name="UserName"></p>';
      html:=html+'<p>&nbsp;&nbsp;&nbsp;&nbsp;性别:<input type="radio" name="Sex" value="Man" checked>男';
      html:=html+'&nbsp;&nbsp;&nbsp;&nbsp;<input type="radio" name="Sex" value="Woman">女</p>';
      html:=html+'<p>&nbsp;&nbsp;&nbsp;&nbsp;年龄:<input size="5" maxlength="3" name="Age"></p>' ;
      html:=html+'<p>&nbsp;&nbsp;&nbsp;&nbsp;所在城市:<input size="20" maxlength="16" name="City"></p>' ;
      html:=html+'<p>&nbsp;&nbsp;&nbsp;&nbsp;Email:<input size="24" maxlength="30" name="Email"></p>';
      html:=html+'<p>&nbsp;&nbsp;&nbsp;&nbsp;个人信息:<textarea name="Textarea" rows="5" cols="30"></textarea></p>';
      html:=html+'<center><input type="submit" Name="submit" value=" 进入聊天室">';
      html:=html+'&nbsp;&nbsp;<input type="reset" value=" 重   填">';
      html:=html+'</form></center>';
      html:=html+'</BODY></html>';
      Response.Content:=html;
    end;end.
      

  3.   

    to SMALLFANGZI(官才): 请问html的语句要自己写吗?
                     如果是的话会不会很麻烦呢?因为如果页面太多的不同内容就会很那个啦!to bpc():有没有相关的书籍或例程呢?本人现需要开发一个基于web的数据库,可能比较小型的,数据库底层不会很复杂,两个表就够了。有没有比较快捷的方法呢?
      

  4.   

    刚刚看了《delphi 5开发人员指南》的电子版,看来自己还有很多东西要加强一下!!终于下大决心去买《delphi 5开发人员指南》这本书啦!!好书一本啊!!
      

  5.   

    to SMALLFANGZI(官才): 终于知道是可以用web pages edit来编写web 页的!!