![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Copia el código completo de las dos Unit
|
|
#2
|
|||
|
|||
|
Hola AgustinOrtu,
//al momento de enviar el unit recibo este mensaje en el foro El texto que has ingresado es muy largo (53228 caracteres). Por favor acórtalo a 30000 caracteres de largo. Lo adjuntare en dos mensajes. Gracias, ahora agrego el código. Hace un momento logre que compile sin errores, pero al generar la acción en el boton, la aplicación genera un error de "Access Violation at Address" . No se como recuperar la información. Unit principal (VCL)
|
|
#3
|
|||
|
|||
|
Este el código del unit generado, tras la importación:
Lo adjunto en un txt, ya que no permite incluirlo en un mensaje, porque sobre pasa la cantidad de caracteres. lo adjunto en el siguiente enlace de pastebin, ya que no logre subirlo al foro http://pastebin.com/gsMqgKwh Toda ayuda es bienvenida. Saludos. Última edición por gersojn fecha: 28-01-2017 a las 03:50:01. Razón: agregar codigo |
|
#4
|
||||
|
||||
|
El codigo que publicaste en el primer mensaje es distinto al ultimo:
Por otra parte, el codigo que publicaste en el segundo mensaje compila y no se da el error que comentas |
|
#5
|
||||
|
||||
|
Otra cosa importante es que no estas inicializando los objetos que estas usando
sugarsoapPortType es una interface, es decir, para poder usarla, debes primero asignar una referencia a un objeto que imlpemente esa interface a la variable. De no hacerlo, la referencia contiene el valor nil. Cualquier metodo que quieras ejecutar sobre una interface que vale nil, produce un error en tiempo de ejecucion EAccessViolation El wizard te genera automaticamente una funcion para crear esta interface, GetsugarsoapPortType Para usar la interface deberias hacer algo como esto:
Esta misma "regla", se cumple para todos los tipos involucrados. Debes inicializarlos (crearlos, ya sea con un constructor, o con una funcion) y luego utilizarlos. Es cierto que existen los llamados "tipos primitivos" (Integer, string, record, etc) que si bien no es necesario resulta importante inicializarlos para darles un valor que tenga sentido: Este codigo no da error, pero que valor tiene la variable I? No hay forma de saberlo ya que I va a tener el valor que estaba almacenado en la direccion de memoria que le fue asignado. Se dice en la jerga que el valor de I es "residuo"
Hago enfasis en esto porque del mismo modo que invocas metodos sobre una interface sin antes inicializarla, y tambien le pasas parametros que no son inicializados Por ejemplo, user_auth es una clase:
Osea que debes inicializar una variable y luego tambien darle valores a sus propiedades internas (user_name y password, sino quedan como string vacios y quiza no tenga sentido, lo ideal seria darle valores concretos) |
|
#6
|
|||
|
|||
|
Hola,
Gracias por la ayuda. Realice la siguiente modificacion sobre el procedimiento:
Al momento de invocar la función, obtengo el siguiente error: Conversion from class TForm1 to SOAP is not supported - SOAP classses must derive from TRemotable No consigo comprender la forma correcta de crear una instancia , para utilizar la función de Login. Toda ayuda, es bienvenida. Saludos. Última edición por gersojn fecha: 28-01-2017 a las 17:51:55. |
|
#7
|
||||
|
||||
|
La verdad es que nunca use SOAP. Yo primero leería la documentación
Luego una guía de un hola mundo está bien para no ir tan a tientas, por ejemplo, esta. En la primer parte crea el servidor también en Delphi, eso te lo podes saltear e ir directo a la parte del cliente |
|
#8
|
|||
|
|||
|
El importador genera una función que devuelve la interfaz a usar, por ejemplo en un importador tengo:
Yo llamo a GetpreventaPortType, y guardo la interfaz del tipo preventaPortType (este es el nombre de mi caso) en una variable, y luego la uso para acceder a los dos métodos download y upload de dicha interfaz, cuando acabas la igualas a nil y se libera. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Consumir Webservice | darkerbyte | Delphi para la web | 5 | 17-11-2012 20:59:50 |
| webservice WCF | consultasmq | Internet | 0 | 19-03-2012 21:10:00 |
| Consumir WebService. Ayuda con XML,WSDL,XSD,SOAP | josemmerida | Internet | 2 | 23-12-2010 13:37:16 |
| WebService y D4 | Nose | Internet | 1 | 02-08-2005 22:18:23 |
|