Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   latencia en la red provoca que mi aplicación pierda conexión... (https://www.clubdelphi.com/foros/showthread.php?t=83359)

novato_erick 08-06-2013 01:16:23

latencia en la red provoca que mi aplicación pierda conexión...
 
Hola a todos chicos algo curioso tengo con la aplicación desarrollada:

Utilizo una computadora con firebird 2.5 instalado el cual se encuentra ahi mi BD "Mi servidor de Base de Datos" sistema operativo XP Profesional PIV 3.0 GHz y 2 de memoria Ram Solamente corre la DB

En la aplicacion cliente que tengo en Dos maquinas nada mas..

Lo extraño es que los dos unicos usuarios me han informado que si dejan mi aplicación sin utilizar durante cierto tiempo o dejan un formulario por ejemplo: Sin Terminar de registrar Registro porque fueron a tomar su taza de cafe "Tipico de funcionarios" al regresar el sistema no responde...

lo otro extraño es que en mi pc de Desarrollo no sucede eso... Pero mi db está como localhost. pensé que podría ser problema en la latencia de paquetes de datos de la red lan interna pero todo esta bien, el Swich tiene su ups, las conexiones de latencia y transmision es correcta no hay caida etc. pero nada...

también en la aplicación que desarrolle de escritorio tiene componente de conexión DBExpress, TSQLQuery el cual solamente abro y cierro cuando los necesito trato de no dejar abierta una transaccion.

Alguien con alguna sugerencia?...

Saludos


novato_erick

orodriguezca 08-06-2013 18:16:21

Hola novato_erick,

No suelo utilizar dbexpress para conexiones a firebird y nunca me ha ocurrido el caso que planteas o al menos no me lo han reportado, pero parece que si puede ocurrir sobre maquina con OS Windows. Te invito a leer el siguiente artículo de Microsoft, tal vez te sirva: http://support.microsoft.com/default.aspx?kbid=140325

novato_erick 08-06-2013 22:39:40

Gracias orodriguezca . Muy interesante la información que posteaste muchas gracias...

Estuve realizando pruebas desde los componente de conexión del DBExpress hasta los de consulta y me percaté que el problema estaba en que cuando mi formulario de ingresar un colaborador lo dejaban abierto tenia un procedimiento de transacción que me refrescaba mis datos provocando que si el usuario al ingresar otro registro bloqueaba la otra maquina o viceversa...

Lo corregí solo abriendo la transacción y cerrándola como debe de ser...

Un error de novato en cuanto a manejo de transacciones...

Pero vuelvo a mencionar que tu aporte fue interesante... Gracia por tu respuesta..


Saludos

novato_erick

darkbits 20-06-2013 05:45:29

a mi me paso lo mismo talvez cuando una PC se conecta la DB funciona bien, el problema es cuando las 2 PC se conectan a la DB ahi tienes el problema

novato_erick 06-02-2014 16:45:59

Hola chicos después de cierto tiempo de iniciar este hilo y que la aplicación estuviese corriendo el usuario se comunico conmigo ya que el comportamiento aparentemente volvió a ocurrir... (Cuando un usuario dejaba la estación de trabajo y volvía la aplicación no mostraba cierta información en el combobox que necesitaba tener para introducir) bueno lo arreglé realizando en el post anterior la implementación.

Sin embargo me pareció extraño que volviera a ocurrir pero me percaté que los otro combobox no estaban conectándose a la base de datos realizando consulta etc. si no que en la propiedad items tenia los tres datos de selección. Provocando que la aplicación al realizar un click no desplegaba ningún items y los itemsindex que debería proporcionar siempre estarían en -1.

Aun no entiendo porque sucede eso en el Componente ComboBox de delphi porque no es un comportamiento en todos los ComboBox pero lo corregí creando la tabla en la db con sus respectivos datos a seleccionar y creando un procedimiento en el evento OnDropDown esto:
Código Delphi [-]
  dmConecta.qConsultarDepto.Open;
  try
    while not dmConecta.qConsultarDepto.Eof do
    begin
      cbxDeptosArt.AddItem(dmConecta.qConsultarDepto.FieldByName('COD_DEPTO')
        .AsString + ' ' + dmConecta.qConsultarDepto.FieldByName('NOMBRE')
        .AsString, TObject(dmConecta.qConsultarDepto.FieldByName('ID_DEPTO')
        .AsInteger));
      dmConecta.qConsultarDepto.Next;
    end;
  finally
    dmConecta.qConsultarDepto.Close;
  end;

//En el evento OnClick siemplemente esto:
procedure TFrmIngresarArticulo.cbxDeptosArtClick(Sender: TObject);
begin
  id_Depto := Integer(cbxDeptosArt.Items.Objects[cbxDeptosArt.ItemIndex]);
end;

Así que la duda en cuanto utilizar items directamente con el combobox se encuentra aún pero es fácilmente por mi parte solucionable siendo una aplicación con BasedeDatos hacerla de la manera planteada anteriormente.

Saludos

novato_erick


La franja horaria es GMT +2. Ahora son las 01:06:11.

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