COM ActiveX

23/05/2008 - 09:49 por Ewat | Informe spam
Hola a todos:

He creado un ActiveForm (ActiveX) en C++ Builder, recibe parámetros y se
conecta a la base de datos Oracle y todo muy bien.

Desde una página aspx, inserto el código dentro del tag <object id=.>
javascrit. y bien.

Ejecuto la pagina aspx en mi ordenador y funciona muy bien.

Ahora bien, ejecuto la pagina aspx desde otro servidor y funciona bien,
siempre y cuando tenga instalado oracle cliente.

Como puedo hacer que el ActiveX funcione correctamente por internet, es
decir que se conecte a Oracle sin necesidad de tener en cada ordenador,
Oracle Cliente???



Desde luego desde otras páginas aspx me conecto a oracle por internet, pero
claro no utilizo en esas páginas el ActiveX.

Gracias.

Preguntas similare

Leer las respuestas

#6 Fernando Gómez
23/05/2008 - 18:05 | Informe spam
On May 23, 2:55 am, "Ewat" wrote:
Lo que quiero decir es como puedo hacer que el ActiveX se ejecute en el
Servidor y no en el CLiente?

Muchas gracias por su ayuda.

"Ewat" escribió en el mensaje de
noticias:

> Hola a todos:

> He creado un ActiveForm (ActiveX) en C++ Builder, recibe parámetros y se
> conecta a la base de datos Oracle y todo muy bien.

> Desde una página aspx, inserto el código dentro del tag <object id=.>
> javascrit. y bien.

> Ejecuto la pagina aspx en mi ordenador y funciona muy bien.

> Ahora bien, ejecuto la pagina aspx desde otro servidor y funciona bien,
> siempre y cuando tenga instalado oracle cliente.

> Como puedo hacer que el ActiveX funcione correctamente por internet, es
> decir que se conecte a Oracle sin necesidad de tener en cada ordenador,
> Oracle Cliente???

> Desde luego desde otras páginas aspx me conecto a oracle por internet,
> pero claro no utilizo en esas páginas el ActiveX.

> Gracias.



Pues simplemente no crees la instancia del objeto en el cliente, sino
desde tu código ASP / ASPX.

dim var = CreateObject("Mi.ActiveX")
call var.ejecutaMetodo1

etcétera. Si lo empotras como un "object" pues sí será necesario que
esté en los clientes.

Saludos.
Respuesta Responder a este mensaje
#7 Fernando Gómez
23/05/2008 - 18:07 | Informe spam
On May 23, 9:17 am, "Edison Abarca Tapia"
wrote:
El ActiveX es un formulario, no solo consiste en ida y vuelta al servidor
por medio de funciones, sino que tiene interfaz visual, al poner referencia
al objeto COM desde c# no hay probloema, puedo llamar a las funciones del
objeto COM sin ningun problema, el detalle es que me intereza la interfaz
visual que es un formulario.

Este formulario lo que que hace es recibir parámetros desde la página y
entocnes consulta la base de datos y el resultado lo inserta en un control
de tratamiento de texto que en este caso es el WPTOOLS, y para mantener la
compatibilidad del formato RTF debe ser un ActiveX pero con interfaz
visual...




Osea... esa interfaz visual... ¿es un HTML? Si no lo es, si no te
genera un HTML, pues obvio nunca va a funcionar desde el lado del
cliente.

Saludos.,
Respuesta Responder a este mensaje
#8 Alberto Poblacion
23/05/2008 - 19:55 | Informe spam
"Edison Abarca Tapia" wrote in message
news:uGWuw%
El ActiveX es un formulario, no solo consiste en ida y vuelta al servidor
por medio de funciones, sino que tiene interfaz visual, al poner
referencia al objeto COM desde c# no hay probloema, puedo llamar a las
funciones del objeto COM sin ningun problema, el detalle es que me
intereza la interfaz visual que es un formulario.

Este formulario lo que que hace es recibir parámetros desde la página y
entocnes consulta la base de datos y el resultado lo inserta en un control
de tratamiento de texto que en este caso es el WPTOOLS, y para mantener la
compatibilidad del formato RTF debe ser un ActiveX pero con interfaz
visual...



Pues si quieres mostrar un interfaz visual, no hay más remedio que
ejecutarlo en el cliente. Pero si en ese código que está ejecutándose en el
cliente haces llamadas a base de datos, esas llamadas se ejecutan en el
cliente, con lo que necesitas tener en el pc cliente instalado el cliente de
base de datos (que es lo que no querías) y, lo que es más grave, se necesita
tener abierto el acceso desde todos los puestos cliente al servidor de base
de datos.
¿Cómo se evita? Pues en lugar de escribir el ActiveX para que acceda a
base de datos directamente, se escribe para que haga llamadas a un Servicio
Web, y en el servidor se programa dicho Servicio Web para que ejecute las
correspondientes consultas a base de datos y devuelva los resultados al
ActiveX.
Respuesta Responder a este mensaje
#9 Javier Santamaria
26/05/2008 - 11:57 | Informe spam
Hola,

No, lo mio son solo metodos.

Saludos

"Ewat" wrote:

Hola Javier:

Tengo un ActiveForm (ActiveX) con interfaz visual, que es un formulario
avanzado de tratamiento de texto que se conecta a Oracle, he tenido que
hacerlo asi ya que por asp.net no me permite crear formulario de tratamiento
de texto como el que necesito, es por compatibilidad del rtf, por asp.net
puedes crear texto pero en formato HTML, y luego convertir a rtf, y no hay
compatibilidad 100% con la aplicación windows que tenemos, es por ello que
necesito crear el formulario windows que tenemos para internet explorer por
medio de un ActiveX. Pero no consigo que el activeX con interfaz visual se
ejecute en els ervidor, se ejecuta en el cliente sin problema, pero eso no
me sirve, en una intranet valepero no me sirve para internet.


Lo que has hecho tu, tiene interfaz visual? o solo son metodos?



"Javier Santamaria" escribió en
el mensaje news:
> Hola,
>
> No se si sera exactamente lo mismo, pero yo he hecho una aplicacion que
> utiliza componentes COM para conectar a base de datos. Lo que hacia era
> modificar el codigo del componente y compilaba a una libreria DLL. Luego
> en
> el administrador de componenetes creaba una nueva aplicacion vacia y en
> los
> componentes arrastraba la DLL y los cargaba. Una vez hecho esto arrancaba
> la
> aplicacion y podias funcionar desde cliente sin problemas. Eso si, en el
> servidor si neceesitaras el cliente de base de datos aunque tengas los
> componenetes.
>
> Espero que te sirva
>
> Saludos
>
> "Ewat" wrote:
>
>> Lo que quiero decir es como puedo hacer que el ActiveX se ejecute en el
>> Servidor y no en el CLiente?
>>
>>
>> Muchas gracias por su ayuda.
>>
>>
>>
>> "Ewat" escribi en el mensaje de
>> noticias:
>> > Hola a todos:
>> >
>> > He creado un ActiveForm (ActiveX) en C++ Builder, recibe parmetros y se
>> > conecta a la base de datos Oracle y todo muy bien.
>> >
>> > Desde una pgina aspx, inserto el cdigo dentro del tag <object id=.>
>> > javascrit. y bien.
>> >
>> > Ejecuto la pagina aspx en mi ordenador y funciona muy bien.
>> >
>> > Ahora bien, ejecuto la pagina aspx desde otro servidor y funciona bien,
>> > siempre y cuando tenga instalado oracle cliente.
>> >
>> > Como puedo hacer que el ActiveX funcione correctamente por internet, es
>> > decir que se conecte a Oracle sin necesidad de tener en cada ordenador,
>> > Oracle Cliente???
>> >
>> >
>> >
>> > Desde luego desde otras pginas aspx me conecto a oracle por internet,
>> > pero claro no utilizo en esas pginas el ActiveX.
>> >
>> > Gracias.
>> >
>> >
>> >
>> >



Respuesta Responder a este mensaje
#10 Matias Iacono
27/05/2008 - 17:14 | Informe spam
Si el activex esta en el cliente, o sea, en el HTML, declarado con
<object..., quiere decir que estas dejando que el cliente (navegador, PC) lo
interprete y lo ejecute.

Así, si o si es necesario que cada computadora que requiera ejecutarlo lo
tenga instalado.

Ahora, dentro de la etiqueta object, puedes agregar el atributo CODEBASE,
con la ruta donde se encuentre este activex en el servidor o en algun lugar
accesible publico. Asi, si el usuario no lo tiene instalado, se descargara e
instalara.

Ahora, el uso de activex no es para nada recomendado, primero, requieres de
Internet Explorer o un sistema operativo Windows para que corra. Tu pagina no
funcionaria en un FireFox o algun otro navegador.

Por otro lado, tienes problemas de seguridad. O sea, este activex es tomado
como inseguro ya que puedes hasta formatear el disco duro del usuario sin
pedirle permiso, por lo que si el mismo no esta firmado, para lo cual debes
pagar, el navegador no lo ejecutara, salvo que le bajes el nivel de seguridad
al navegador, que te traera otros problemas, ya que lo bajas para todos los
sitios webs.

Ahora, si lo ejecutas por medio de un interop en el servidor, el problema
que tendras es que, si haces uso de una interface en el activex, este no se
vera en el cliente, solo te servira para ejecutarlo en el servidor.

La otra contra es que requieres registrar el activex en el servidor, y
generalmente, en servidores de pago, esto no lo puedes hacer.

En cualquier caso, si quieres ejecutarlo en el servidor, .Net es lo
suficientemente rico, en termino de conecciones a bases de datos, para poder
hacerlo sin necesidad de un activex.

Y si quieres hacerlo en el cliente por cuestiones de "amigabilidad" con el
usuario, puedes usar AJAX para lograr un comportamiento similar.

Saludos.

Matías Iacono
Microsoft MVP
Orador Regional INETA
http://mvpfiles.spaces.live.com


"Ewat" wrote:

Hola a todos:

He creado un ActiveForm (ActiveX) en C++ Builder, recibe parmetros y se
conecta a la base de datos Oracle y todo muy bien.

Desde una pgina aspx, inserto el cdigo dentro del tag <object id=.>
javascrit. y bien.

Ejecuto la pagina aspx en mi ordenador y funciona muy bien.

Ahora bien, ejecuto la pagina aspx desde otro servidor y funciona bien,
siempre y cuando tenga instalado oracle cliente.

Como puedo hacer que el ActiveX funcione correctamente por internet, es
decir que se conecte a Oracle sin necesidad de tener en cada ordenador,
Oracle Cliente???



Desde luego desde otras pginas aspx me conecto a oracle por internet, pero
claro no utilizo en esas pginas el ActiveX.

Gracias.




email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida