Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Providers
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 06-08-2004
CORBATIN CORBATIN is offline
Miembro
 
Registrado: may 2003
Ubicación: España
Posts: 131
Poder: 24
CORBATIN Va por buen camino
Wink

Hola, no sé exactamente como lo estas haciendo. Yo me estoy iniciando en el tema de Corba, pero si he podido realizar algunas pruebas y me han funcionado, así es como yo lo hago:

Creo un objeto corba (quedate con este nombre que pongas, luego te va a hacer falta).
En el Type Library creo una función (en el type library llamada metodo)llamada suma (es para que pruebes) en la que recibe un param1 tipo long y devuelve un param2 de tipo long* (ojo al asterisco, esto indica un parametro de salida). En el siguiente cuadro cambias la directiva in por out,retval.
Ahora le das al botón refrescar (algo parecido a una hoja de notepad).
Esto te crea un archivo nombredelproyecto.idl, compila el proyecto (ojo, no ejecutar, solo compilar) guarda este archivo a través del type library (con el botón que hay al lado del botón de refrescar, "Export to CORBA IDL") es la base de todo.
Después cierras todo, en la paleta de proyectos "corba" pinchas sobre "corba serve object" o algo así, y entonces añades el archivo *.idl anterior.
Esto te crea el stub (lado del cliente) y el skeleton (lado del servidor), que son los archivos que necesitas para poner en el lado del cliente y del servidor (también crea automáticamente archivos que continen toda la implementación nombre_c.pas,nombre_i.pas,nombre_s.pas,nombre_impl.pas).

A partir de aquí te puedes guiar con el demo de delphi 6 en demos\cobar\idl2pas\account gui, es básico y fijate en las declaraciones de los archivos mencionados anteriormente.

Esta operación anterior, crea el código necesario para hacerlo funcionar pero este te lo pone como comentario. Entonces lo que debes hacer es quitar estas barras de comentario y sustituir el tipo de la variable account por el nombre de tu interface, es decir, el nombre del tipo que escribiste (recuerda que tenías que memorizarlo), en los create de los form correspondiente del servidor y cliente tienes que poner la llamada al procedimiento InitCorba.

Iniciando el smart agent te debe funcionar sin problemas y para hacer la llamada al procedimiento almacenado es así:
Código:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := FormatFloat('Balance = $#,##0.00', Acct.suma(2));
end;
Destacar que en el proyecto cliente, tienes que añadir al uses los archivos nombreproyecto_I, nombreproyecto_C. Estos archivos son los que forma el stub para que se pueda poner en contacto el cliente con el servidor.

También añadir, que en el archivo nombreproyecto_impl.pas es dónde tienes que implementar la función suma que anteriomente creamos en el type library. Esto no es dificil de ver, ya que estara ya creada, solo tendrías que añadir el código, sería algo así:
Código:
function  TAccount.suma(param1: integer) : integer;
begin
  { *************************** }
  { *** User code goes here *** }
  { *************************** }
  result := param1 + 2;
//este el código que tendrías que añadir o en vez de manejar
end;

Bueno, es un pequeño manual más o menos bueno, si necesitas más ayuda tal vez te pueda mandar algún manual sobre esto o simplemente ayudar a través de este foro, un saludo.
__________________
No hay vientos favorables para quién no conoce su rumbo.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 21:30:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi