Como colocar mais de uma função no meu WebService

Delphi

19/07/2005

Olá...

Tenho um webservice que tem um datamodule para o acesso a um DB.

Eu criei uma função , implementei, compilei... importei na minha app... e rodou legal... mas surgiu a necessidade de adicionar mais uma função no webservice... fiz tudo novamente, declarei, implementei, compilei o ws e quando eu uso o WSDL importer na minha APP, dá um erro...

´Access violation at address 502A3EC2 in Module ´dclsoap.bpl´. Read of adress 51EC8B61.´

O estranho é que quando eu acesso o endereço do WSDL pelo browser, eu consigo visualizar a função, seus parametros, etc... normalmente...

Abaixo o Código do WebService...



Unit Unt_DataModule;

interface

uses SysUtils, Classes, InvokeRegistry, Midas, SOAPMidas, SOAPDm, Lock, DB,ADODB,DateUtils;

type
IwsDataModule = interface(IAppServerSOAP)
[´{A7058B04-82C3-4FFD-9A20-30AC8A909514}´]

function getSerialStatus(_senha, _serial: String): Integer; stdcall;
function setRegistro(_senha, _serial,_nome,_cpf,_cnpj,_telefone,_email,_rua,_bairro,_cidade,_estado,_pais,_cep : String;_clitipo : Integer;_dtnasc:TDateTime): String; stdcall;
end;

TwsDataModule = class(TSoapDataModule, IwsDataModule, IAppServerSOAP, IAppServer)
DBConnection: TADOConnection;
private
function getSerialStr(_serial: string; _pos: Integer): String;
public
function getSerialStatus(_senha, _serial: String): Integer; stdcall;
function setRegistro(_senha, _serial,_nome,_cpf,_cnpj,_telefone,_email,_rua,_bairro,_cidade,_estado,_pais,_cep : String;_clitipo : Integer;_dtnasc:TDateTime): String; stdcall;
end;

implementation

{$R *.DFM}

CONST SenhaWS = ´SENHA´;

{ TwsDataModule }

procedure TwsDataModuleCreateInstance(out obj: TObject);
begin
obj := TwsDataModule.Create(nil);
end;

/////////////////////////////////////////////////////////////////
// FUNCÃO DO WEBSERVICE
/////////////////////////////////////////////////////////////////
function TwsDataModule.getSerialStatus(_senha, _serial: String): Integer; stdcall;
Begin

..... implementação da funcao

end;

/////////////////////////////////////////////////////////////////
// FUNCÃO DO WEBSERVICE
/////////////////////////////////////////////////////////////////
function TwsDataModule.setRegistro(_senha, _serial,_nome,_cpf,_cnpj,_telefone,_email,_rua,_bairro,_cidade,_estado,_pais,_cep : String;_clitipo : Integer;_dtnasc:TDateTime): String; stdcall;
Begin

..... implementação da funcao

end;



////////////////////////////////////////////////////////////////
// FUNÇÕES LOCAIS
////////////////////////////////////////////////////////////////
function TwsDataModule.getSerialStr(_serial: string; _pos: Integer): String;
begin
..... implementação da funcao
end;

initialization
InvRegistry.RegisterInvokableClass(TwsDataModule, TwsDataModuleCreateInstance);
InvRegistry.RegisterInterface(TypeInfo(IwsDataModule));
end.


O que poderia ser?

Obrigado...
Fábio


Stratofabius

Stratofabius

Curtidas 0
POSTAR