说也麻烦,为你写了一个大致的代码如下(一个标准的 CGI 演示):
unit Unit1;
interface
uses
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 WebModuleBeforeDispatch(Sender: TObject;
Request: TWebRequest
Response: TWebResponse
var Handled: Boolean);
private
Content,Name,Password:String;
public
{ Public declarations }
end;
var
WebModule1: TWebModule1;
implementation
{$R *.DFM}
// ======= 这里只是做一个演示程序 =============
// 设计的数据库 test.db 结构如下:
// FieldName Type Size
// No. Autoincrement
// Name Memo 25
// Password Memo 25
// ==================================
// 程序是一个标准的 CGI 程序,要放到 web 的可执行目录
// 将 test.db 和 test.mb 放到和 test.exe 同一个目录下
// 实际使用中,可以使用 ODBC 驱动或数据库别名。
// ==================================
// 网页的 Post 代码如下:
// <body>
// <form method="POST" action="../script/Test.exe?">
// <input type="text" name="Name" size="20"><br>
// <input type="text" name="Password" size="20"><br>
// <input type="submit" value="GO" name="B1">
// <input type="reset" value="REW" name="B2">
// </form>
// </body>
// 注意到 action="../script/Test.exe?" 这行,是描述 Test.exe
// 的实际目录,如果你的路径不是这样,就根据实际情况修改
// ===========================================================
procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
Request: TWebRequest
Response: TWebResponse
var Handled: Boolean);
begin
Table1.TableName:='test.db'
Table1.Open;
Table1.Append;
Table1.FieldValues['Name']:=Name;
Table1.FieldValues['Password']:=Password;
Table1.Post;
Table1.Close;
Response.Content :=Content
// 显示结果
end;
procedure TWebModule1.WebModuleBeforeDispatch(Sender: TObject;
Request: TWebRequest
Response: TWebResponse
var Handled: Boolean);
begin
Name:=Request.ContentFields.Values['Name'];
Password:=Request.ContentFields.Values['Password'];
Content:=Name+'-'+Password
// 用来调试查看结果
end;
end.