Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-08-2004
zuriel_zrf zuriel_zrf is offline
Miembro
 
Registrado: sep 2003
Posts: 31
Poder: 0
zuriel_zrf Va por buen camino
Error con CORBA y el OrbPas41.dll

Hola.
Aguien me puede ayudar a resolver un problema de CORBA en Delphi 6? Es que al correr el servidor me aparece un error de ejecucion que dice que una de las librerias vinculadas con la aplicacion no se encuentra o no se puede inicializar y me marca el archivo orbpas41.dll. Esto ocurre tanto con el servidor como con el cliente. Siempre antes de correrlos ya tengo corriendo el osagent. Ademas utilizo el visibroker 4 y hago las aplicaciones con la paleta de corba que viene en Delphi 6. Les Agradeceria si me pueden ayudar a resolver esto.

Gracias
Responder Con Cita
  #2  
Antiguo 06-08-2004
CORBATIN CORBATIN is offline
Miembro
 
Registrado: may 2003
Ubicación: España
Posts: 131
Poder: 22
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
  #3  
Antiguo 10-08-2004
zuriel_zrf zuriel_zrf is offline
Miembro
 
Registrado: sep 2003
Posts: 31
Poder: 0
zuriel_zrf Va por buen camino
Siguen los Problemas

Gracias por la informaciòn pero funciono en una maquina que tiene XP. Pero tengo otra maquina (que es la importante) que tiene ME y no quiere jalar. Da un error que dice que "Una de las librerias vinculadas a la aplicación no se encuentra: Orbpas41.dll".

Si saben de este error avísenme.

Gracias.
Responder Con Cita
  #4  
Antiguo 03-08-2005
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
si no mal me equivoco, tienes que copiar ese archivo a donde tienes tu aplicacion, para que funcione, ya que corba utiliza ese archivo y otros para que corra en una maquina que no tiene instalado delphi ni corba.

Checa a ver si funciona y si no, pues vuelve a poner el error que te sale, creo que ya no te deberia de salir ese mismo error.
Responder Con Cita
  #5  
Antiguo 10-06-2006
omegaelite omegaelite is offline
Registrado
 
Registrado: abr 2006
Posts: 4
Poder: 0
omegaelite Va por buen camino
OrbPas41.dll

Yo tuve un problema similar y lo solucioné descargando la libreria e instalandola en el .bin del ORB que estes utilizando, yo por ejemplo estoy usando visibroker. Y otra cosa que hice fué configurar el path. Veo que esta pregunta la hicieron hace mucho pero espero que le pueda servir a alguien mas en un futuro.
Saludos...
Responder Con Cita
  #6  
Antiguo 10-06-2006
omegaelite omegaelite is offline
Registrado
 
Registrado: abr 2006
Posts: 4
Poder: 0
omegaelite Va por buen camino
Ahh!

Ahhhh!
Me acabo de acordar que Visibroker 4 no es compatible con Delphi 6, entonces lo que tienes que hacer es instalar Visibroke 3.3 y fijate que te configure bien el path, sino hazlo manual.
Ahora si, adios.
Responder Con Cita
Respuesta



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 18:58:29.


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