Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-06-2004
lavtaro lavtaro is offline
Miembro
 
Registrado: jun 2003
Ubicación: Chile
Posts: 88
Poder: 21
lavtaro Va por buen camino
Llamar desde aplicación DOS una Delphi 6 o 7

Hola

Tengo el siguiente problema. Necesito llamar desde una aplicación DOS una aplicación Delphi 6, para tomar un archivo de texto generado por la aplicación DOS. Este archivo lo voy a traspasar a una base de datos para efectuar operaciones con estos datos. Como puedo crear una aplicación que sea eficiente al ser llamada repetidas veces. Será posible llamar desde la aplicación DOS solamente una parte de la aplicación en DELPHI (la parte que importa el archivo de texto) para no tener que habrir repetidamente la base de datos.

De antemano muchas gracias.
Responder Con Cita
  #2  
Antiguo 22-06-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
Le verdad es que siempre vi llamadas de Delphi a DOS pero no la inversa ¿?, sin embargo Delphi permite compilar proyectos en modo consola (no sé si todas las versiones) así que podrías ver por ese lado, es decir constuirte un módulo intermedio entre ambas.
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #3  
Antiguo 22-06-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
¿En que lenguaje está programada tu aplicación DOS?
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #4  
Antiguo 23-06-2004
lavtaro lavtaro is offline
Miembro
 
Registrado: jun 2003
Ubicación: Chile
Posts: 88
Poder: 21
lavtaro Va por buen camino
Mi aplicación DOS está hecha en DataEase.

Quiero traspasar un informe a una base de datos. Los pasos de la apicación DOS son los siguiente:

- Generar informe a texto.
- Llamar aplicación en Delphi para que importe el informe.

La aplicación en Delphi debe hacer lo siguiente:

- Abrir la base de datos (debo escoger pero quiero hacerlo con Interbase 6)
- Importar el informe.
- Generar otro informe en Delphi.

Mi duda es si al abrir repetidamente la base de datos puede volverse lento.
Este informe es emitido en forma muy frecuente. Se puede en delphi mantener la base de datos abierta y solamente llamar desde Dos la parte que importa los datos.


De antemano muchas gracias.
Responder Con Cita
  #5  
Antiguo 23-06-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Yo desconozco DataEase (y de hecho también Interbase) así que el primer punto a aclarar aquí sería saber si DataEase tiene algún comando para ejecutar un programa externo. De no ser así pues veo pocas posibilidades de comunicarte desde DataEase a Delphi.

Lo que pensaría así en primera instancia sería dejar abierta la aplicación Delphi y que continuamente esté checando la existencia del fichero que genera DataEase. En cuanto vea que está presente lo importa y lo borra.

En lo que concierne a la baja de rendimiento por estar haciendo esto frecuentemente yo no creo que haya que preocuparse mucho, Interbase es un servidor sólido y quiero pensar que está diseñado para soportar muchos accesos.

// Saludos
Responder Con Cita
  #6  
Antiguo 23-06-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Mi pregunta iba por la línea de si la aplicación de DOS tiene acceso al API de windows. Por ejemplo, una aplicación hecha en modo protegido, con turbo pascal 7, podria llamar a una función en una DLL y tener acceso al API de windows.

Si DataEase te da esta facilidad, podes incluso enviar un mensaje a la aplicación en delphi con PostMessage.

Para evitar la complejidad de detectar la aplicación en delphi... podes establecer el hWnd a HWND_BROADCAST, de manera que el mensaje sea enviado a todas las aplicaciones.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #7  
Antiguo 23-06-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
No creo que unas cuantas conexiones/desconexiones de la base de datos te den problema... aunque ciertamente consumirán tiempo de proceso.

Otra posibilidad, además de lo ya dicho por roman y por mi en mi mensaje anterior, y suponiendo que DataEase no te da acceso al API de windows. para evitar la conexión/desconexión repetida, sería tener una aplicación corriendo siempre en la máquina, que sea la que esté conectada a la base de datos, y una segunda aplicación que se encargue solamente de "señalar" a la primera. Ambas hechas en delphi, la primera GUI y la segunda de consola.

De esta manera, la segunda aplicación alcanzaría un tamaño realmente pequeño (unos cuantos Kb), de manera que se cargaría rápidamente a memoria. Al ser invocada, simplemente enviaría un mensaje a la aplicación GUI para que realice su trabajo.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 22:41:21.


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