Fórum Usando Delphi 7.0 para acessar um WebService .NET (.asmx) #228677

28/04/2004

0

Pesquisei aqui no fórum e vi que a maioria das dúvidas sobre webservices permaneceram sem respostas, mas sempre há a esperança, espero que algum de voces me ajude.

Seguinte: estive presente a uma palestra no último TechDay sobre WebServices e Delphi 7 do Bruno Lichot, e desde então venho utilizando este recurso com sucesso. Porém agora me deparei com um problema.

As funções de WebServices do Delphi que retornam um DataSet, o retornam num tipo OLEVariant, que pode ser associado a propriedade Data do ClientDataSet.

Porém, por limitações do servidor, tive que desenvolver o WebService em .NET com C# dessa vez, que nao retorna OLEVariant, retorna um tipo maluco qualquer dentro de uma WideString.

Quando eu tento associar esta WideString à propriedade Data de um ClientDataSet obtenho a mensagem de erro: ´Invalid data packet´.

Será que alguém aí podia me dar uma ajuda, uma luz, indicar um site, um livro, ou qualquer coisa que possa me encaminhar a uma solução, pois estou quebrando a cabeça aqui e nao consigo resolver o problema.

Vai aqui o Codigo gerado pelo WSDL Importer do Delphi da funcao que retorna o DataSet:


type
  pegamenuResult       = class;

  pegamenuResult = class(TRemotable)
  private
    Fschema: WideString;
  published
    property schema: WideString read Fschema write Fschema;
  end;

  wsexemploSoap = interface(IInvokable)
  [´{8AE18F11-3667-5B89-77A0-09CB0E74E6B9}´]
    function  pegamenu: pegamenuResult; stdcall;
    function  HelloWorld: WideString; stdcall;
  end;


Detalhe: a funcao HelloWorld funciona perfeitamente, mas é apenas para teste, e retorna apenas uma string simples.

A função pegamenu deveria retornar um dataset. Vai a declaração dessa função em C:

public DataSet pegamenu()


Se alguém puder me ajudar estarei infinitamente agradecido. Obrigado.


Thiago Vidal

Thiago Vidal

Responder

Posts

29/04/2004

Maxwell_monteiro

Eu não conheço muito bem esse tipo WideString! mas se esse tipo contiver dados legiveis e com alguma organização vc pode fazer um algoritmo que transporte esses dados para o client data set! vamos supor esses exemplo:

atributos: codigo, nome
atributos separados por virgula e registros por ponto-virgula

1,joao;2,marcos;3,maria;

Ou seja se o seu Data Set em formato Wide String tiver uma logica de formação que com certeza vai ter. vc pode muito bem fazer um algoritmo vc mesmo para migra-los para o client data set!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar