PDA

Ver la Versión Completa : Webservice + DESESPERACION TOTAL


delphijm
17-07-2010, 21:35:26
Hola a todos,

DESESPERACION TOTAL...

Estoy probando la creacion de servicios web SOAP con Delphi... Todo muy bien a excepcion de un MISTERIO que me tiene DESESPERADO...

Cree el primer TDataSetProvider en la parte del servidor y despues de crearlo unas diez veces (borrandolo y volviendolo a configurar igual), cerrar Delphi otras diez veces y un sin fin de pruebas sin sentido en las que no acabe cambiando nada de codigo, FINALMENTE, en el ProviderName del TClientDataSet de la parte del cliente me acaba apareciendo el TDataSetProvider que tenia exportado en el servidor... Eleluia... No se porque, pero Aleluia...

Bien, implemento el tema (mantenimiento de datos, etc...)...

Ahora creo un segundo TDataSetProvider en el servidor y lo declaro, claro, exportado... Y VUELTA A EMPEZAR... No lo veo en el desplagable del ProviderName del TClientDataSet del cliente...

Antes de cerrar y abrir Delphi, Windows el WebApp Debuger entre 10-20 veces hasta que funcione por arte de magia....

Alguien sabe que puede estar pasando?????

Perdonad por el tono pero como pongo en el titulo --> Desesperacion total...

Gracias amigos

yapt
21-07-2010, 23:32:55
Crees que podrías crear un ejemplo mini con una parte servidor y otra cliente y ponerlo aquí para que podamos testear y decirte algo más ?

:(

Eso si, yo estoy con Delphi 2010. No indicas cual es tu versión.

Saludos.

delphijm
02-08-2010, 20:38:23
Hola yapt,

Perdona por no responderte... Reemprendi el tema hace unos dias y ya vi lo que ocurria... O al menos llegue a una conclusion y me funciona...

Como decia necesitaba tener varios TDataSetProvider en el servicio web suministrandi diferente tipo de informacion de la BBDD...

El tema esta en que estaba creando un modulo de datos remoto para cada TDataSetProvider, cuando parece ser que en un proyecto webservice solo debe de haber un modulo de datos remoto (SOAP Server DataModule) y, dentro de el, todos los TDataSetProvider que hagan falta...

Lo hice asi y ya me empezo a funcionar todo el tema...

Ya ves un tema de novato en esto...

Ahora estoy viendo que en Delphi puede tratarse el tema de los webservices de diferentes formas:
1.- Creando las funciones en las librerias de Interface e Implementacion. Aqui parece que los tipos de datos que pueden pasarse como parametros de las funciones no pueden ser TDataSets.
2.- Usando los modulos de datos remotos que si permiten pasar TDataSets...

Asi parece que si necesito un servicio web que le pase un parametro integer y me devuelva un string usaria el metodo 1 y si lo que necesito es un DataSet usaria el metodo 2...

Me esta bien, el metodo 2 es como si estuviera programando una aplicacion de 2 capas normal...

La duda que tengo es, si el servicio web ha de consumirlo un cliente que no es delphi, por ejemplo PHP, podra consumir este servicio???? En la definicion de los servicios web wsdl no se ve muy clara su definicion... En cambio las funciones programadas usando el metodo 1 si se ve claro cuales son los parametros de entrada y retorno...

Quizas el metodo 2 (Modulos de datos remotos) sea para uso exclusivo cuando el consumidor del servicio es Delphi???

Muchas gracias de antemano yapt...

delphijm
02-08-2010, 20:39:09
Uff se me olvidaba lo que me pedias...

Uso Delphi 2007...

Gracias

yapt
03-08-2010, 00:01:09
La duda que tengo es, si el servicio web ha de consumirlo un cliente que no es delphi, por ejemplo PHP, podra consumir este servicio???? En la definicion de los servicios web wsdl no se ve muy clara su definicion... En cambio las funciones programadas usando el metodo 1 si se ve claro cuales son los parametros de entrada y retorno...

Quizas el metodo 2 (Modulos de datos remotos) sea para uso exclusivo cuando el consumidor del servicio es Delphi???

Pues gracias por la información. Por lo poco que se de WebServices, dudo que PHP (por ejemplo), pueda llamar a un WebService que le devuelva un TDataSet. Creo que tendrás que implementar esa "información" en XML (como mínimo).

A ver si algún compañero nos lo puede aclarar...

Un saludo y suerte.