如何用delphi2005的WebService返回各种类型数据

阅读:211次   时间:2003-10-09 00:00:00   字体:[ ]
本文指出了如何在delphi2005状态下通过WebService返回字符型单字符串、多字符串、浮点数字符串的编程方法。
一、 建立WebService文件,
二、 引入.Net下的Unit,并改名为ClassFactory,
三、 在WebService中的Uses中加入ClassFactory。
四、 注意WebService中的每一个方法都要有[WebMethod]作引导。
具体程序如下:

==========================以下为WebService的单元文件==========================
unit WebService1;

interface

uses
 System.Collections, System.ComponentModel,
 System.Data, System.Diagnostics, System.Web,
 System.Web.Services, System.Data.Odbc, Borland.Data.Provider,
 ClassFactory;

type
 ///


 /// Summary description for WebService1.
 ///

 TWebService1 = class(System.Web.Services.WebService)
 {$REGION 'Designer Managed Code'}
 strict private
  ///
  /// Required designer variable.
  ///

  procedure InitializeComponent;
 {$ENDREGION}
 strict protected
  ///
  /// Clean up any resources being used.
  ///

  procedure Dispose(disposing: boolean); override;
 private
  { Private Declarations }
 public
  constructor Create;
  // Sample Web Service Method
  [WebMethod]
  function HelloWorld: string;
  [WebMethod]
  function YourName(NameNo:Integer): string;
  [WebMethod]
  function getEmp(NameNo:Integer): TEmpInfo;
  [WebMethod]
  function getDoubleArray(DoubleNo:Double): TArrayOfDouble;
  [WebMethod]
  function getIntegerArray(IntegerNo:Integer): TArrayOfInt;

 end;

implementation

{$REGION 'Designer Managed Code'}
///


/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///

procedure TWebService1.InitializeComponent;
begin

{$ENDREGION}

constructor TWebService1.Create;
begin
 inherited;
 //
 // Required for Designer support
 //
 InitializeComponent;
 //
 // TODO: Add any constructor code after InitializeComponent call
 //
end;

///


/// Clean up any resources being used.
///

procedure TWebService1.Dispose(disposing: boolean);
begin
 if disposing and (components <> nil) then
  components.Dispose;
 inherited Dispose(disposing);
end;

// Sample Web Service Method
// The following method is provided to allow for testing a new web service.
function TWebService1.HelloWorld: string;
begin
 Result := 'Hello World';
end;

function TWebService1.YourName(NameNo: Integer): string;
begin
 if NameNo<>0 then Result:='YourName is Bird'
 else Result:='YourName Is null';
end;

function TWebService1.getEmp(NameNo: Integer): TEmpInfo;
begin
 Result:=TEmpInfo.create;
 Result.Name :='Apple';
 Result.Age  :=13+NameNo;
end;

function TWebService1.getDoubleArray(DoubleNo: Double): TArrayOfDouble;
var
 I:Integer;
begin
 SetLength(Result,6);
 For I:=0 to 5 do
  begin
   Result[I]:=DoubleNo+I;
  end;
end;

function TWebService1.getIntegerArray(IntegerNo: Integer): TArrayOfInt;
var
 I:Integer;
begin
 SetLength(Result,6);
 For I:=0 to 5 do
  begin
   Result[I]:=IntegerNo+I;
  end;
end;

end.

========================以下为ClassFactory的单元文件========================
unit ClassFactory;

interface

type
TEmpInfo = Class
 Private
  FName  :String;
  FAge   :Integer;
 Published
  Property Name  :String  Read FName  Write FName;
  Property Age  :Integer Read FAge  Write FAge;
end;

TArrayOfInt   = array of Integer;

TArrayOfDouble  = array of Double;

implementation

end.

 源码推荐
关于本站 - 广告服务 - 会员指南 - 联系方法
Copyright ©2003-2011 源码天空 All Rights Reserved