Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-04-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
A ver si el sqlmanager (que no lo he usado nunca) abre dos conexiones por algún motivo.
Prueba al revés, cierra el sqlmanager y ejecuta tu programa, debe salir solamente una línea.
Responder Con Cita
  #2  
Antiguo 24-04-2017
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
¿Y como hago la prueba? Porque eso si que no se me ocurre.
Responder Con Cita
  #3  
Antiguo 24-04-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Un botón en el formulario principal de tu programa, ejecutas en select y muestras el resultado en un dbgrid, por ejemplo, o un shomessage( select count ... ))
Responder Con Cita
  #4  
Antiguo 24-04-2017
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Pues tienes razón, creo. He modificado el programa de forma que después de la primera conexión se borre el trigger que graba en la tabla y efectivamente sólo hay una entrada en la misma. Ahora ya si que no entiendo nada. Seguiré haciendo pruebas.
Responder Con Cita
  #5  
Antiguo 24-04-2017
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
A ver si el sqlmanager (que no lo he usado nunca) abre dos conexiones por algún motivo.
Prueba al revés, cierra el sqlmanager y ejecuta tu programa, debe salir solamente una línea.
Puede ser que tengas razón, todo apunta en esa dirección y parece que efectivamente SQL Manager abre una conexión por cada consulta. Tendré que tocar el trigger para que cuando entre con SYSDBA, por ejemplo, no grabe ninguna entrada en la tabla de conexiones.
Responder Con Cita
  #6  
Antiguo 24-04-2017
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Efectivamente el problema es el que señala Casimiro: SQL Manager abre una coexión para cada elemento que se trata de consultar y de ahí viene el error. He modificado el trigger de conexión dejándolo de esta manera:
Código:
CREATE TRIGGER CONECTADO
ACTIVE ON 
  CONNECT
POSITION 0
AS
BEGIN
  DELETE FROM Conexion 
  WHERE Id_Servidor NOT IN (SELECT MON$ATTACHMENT_ID FROM MON$ATTACHMENTS);

  IF (CURRENT_USER IN (SELECT Nombre FROM Conexion)) THEN
    EXCEPTION Usuario_conectado;

  IF (CURRENT_USER <> 'SYSDBA') THEN
    INSERT INTO Conexion (Id_Servidor, Nombre, Hora)
    VALUES (CURRENT_CONNECTION, CURRENT_USER, CURRENT_TIMESTAMP);
END
De esta forma, además de verificar si un usuario ya está conectado y sacar el correspondiente mensaje de error, siempre queda liberado el usuario SYSDBA por si hay que intervenir de forma inesperada en la base de datos con alguna herramienta externa. Muchas gracias todos por vuestra ayuda, ha sido inestimable.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como hacer una BD que se conecte a SqlServer2005 ivantj24 Conexión con bases de datos 17 02-03-2011 22:19:02
Evitar que el usuario escriba tildes con javascript cahosoft HTML, Javascript y otros 10 19-10-2006 21:27:25
INIDataSet ¿Existe un data set que se conecte a archivos .ini? Al González Conexión con bases de datos 6 11-05-2004 18:32:50
Como evitar que el usuario cierre la form! Waldo API de Windows 2 20-11-2003 18:46:47
Evitar que un usuario modifique la fecha y la hora @-Soft Windows 4 09-05-2003 01:30:17


La franja horaria es GMT +2. Ahora son las 11:09:22.


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