ActiveX - COM y Java

 
Vista:

COM y Java

Publicado por Carlos (1 intervención) el 10/07/2001 12:12:25
Vereis desde java manejo ADO pero no soy capaz de capturar los eventos que
generan los objetos ADO. Sabeis como capturarlos?.
Hasta ahora para
capturar eventos por ejemplo de una ventana creaba una clase
que implementaba los eventos y luego decia aJFrame.addWindowsListener(laClase)
pero en ADO no veo nada similar (si clases de eventos pero no como decirle a la Maquina
Virtual que ejetute ese codigo )

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro Andrade

COM y Java

Publicado por Alejandro Andrade (213 intervenciones) el 28/03/2023 19:15:01
Para capturar eventos generados por objetos ADO desde Java, necesitas utilizar una técnica llamada "Event Sinking" o "Event Handling". Event Sinking te permite capturar eventos de objetos COM (Component Object Model), como los objetos ADO, en Java.

Para hacer esto, necesitarás utilizar una biblioteca de interoperabilidad COM/Java, como J-Integra o J-Interop. Estas bibliotecas te permiten interactuar con objetos COM desde Java, incluyendo la capacidad de capturar eventos.

Aquí te muestro un ejemplo de cómo capturar un evento de un objeto ADO utilizando J-Integra:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import com.jacob.com.*;
import com.jacob.activeX.*;
 
public class ADOEventSink {
   public static void main(String[] args) {
      // Crea un objeto ADO Connection
      ActiveXComponent connection = new ActiveXComponent("ADODB.Connection");
      // Registra un evento Sink
      connection.advise(ConnectionEvents.class, new ConnectionEventsSink());
      // Conecta a una base de datos
      connection.invoke("Open", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/mydatabase.mdb");
      // Ejecuta una consulta
      Variant results = connection.invoke("Execute", "SELECT * FROM MyTable");
   }
}
 
// Clase que implementa los eventos del objeto Connection
class ConnectionEventsSink implements ConnectionEvents {
   public void InfoMessage(String error, int errorStatus, String errorSource) {
      // Maneja el evento InfoMessage
      System.out.println("Info Message: " + error);
   }
   public void EndOfRecordset() {
      // Maneja el evento EndOfRecordset
      System.out.println("End of Recordset");
   }
   // Implementa otros métodos de eventos aquí...
}

En este ejemplo, se crea un objeto ADO Connection y se registra un Event Sink utilizando la clase 'ConnectionEventsSink', que implementa los métodos de eventos para el objeto Connection. Luego, se conecta a una base de datos y se ejecuta una consulta. Si se genera un evento durante la ejecución, se maneja en los métodos de eventos en la clase 'ConnectionEventsSink'.

Espero que esto te ayude a capturar eventos de objetos ADO desde Java.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar