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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-06-2006
Avatar de Durbed
Durbed Durbed is offline
Miembro
 
Registrado: ago 2004
Posts: 166
Poder: 20
Durbed Va por buen camino
Error 'Desbordamiento de Pila' en SQL.Clear;

Houston Houston tenemos un problema, de repente la aplicacion sobre la que estoy trabajando me da un desbordamiento de pila, decir que el trozo de codigo donde se produce dicho desbordamiento ni es un bucle ni nada, es un simple If ... else ... y lo he puesto aqui, porque me pasa al hacer el SQL.Clear; a continuacion os pongo el fragmento de codigo donde salta el error:

Código Delphi [-]
  Begin
      PSubcategorias.Visible := True;
      LBSubCatDisp.Clear;
      //Cargo las subcategorias en la lista de disponibles
      With DMAgenda.IBQEjecutar Do
        Begin
          SQL.Clear; <--Error
          SQL.Add('Select distinct subcat from emails');
          Open;
          First;
          While not eof Do
            Begin
              LBSubCatDisp.Items.Add(FieldByName('subcat').AsString);
              Next;
            End;
          Close;
        End;
      LBSubCatDisp.Selected[0] := True;
      //Si no hay ninguna subcategoria, desactivo los botones
      If LBSubCatDisp.Count = 0 Then
        Begin
          BaddUnoSubCat.Enabled := False;
          BAddTodasSubCat.Enabled := False;
        End;
    End;

Para conectar con la base de datos utilizo los IBX que trae D7 y la version de firebird es la 1.5.2, como he dicho me ha estado funcionando hasta hoy que ha salido el error y no he introducido ninguna modificacion.

Un saludo y gracias
__________________
Intentando hacer algo con Delphi 7 y Firebird 1.5

Última edición por Durbed fecha: 21-06-2006 a las 21:13:10.
Responder Con Cita
  #2  
Antiguo 21-06-2006
Avatar de Durbed
Durbed Durbed is offline
Miembro
 
Registrado: ago 2004
Posts: 166
Poder: 20
Durbed Va por buen camino
Pongo un circo y me crecen los enanos, el desbordamiento a desaparecido de igual forma que aparecio , bueno de todas formas si veis algo raro en el código me avisais, que seguro que le sale a un cliente y se mosquea
__________________
Intentando hacer algo con Delphi 7 y Firebird 1.5
Responder Con Cita
  #3  
Antiguo 21-06-2006
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Pues sí que he visto algo, aunque puede que no sea relevante: Haces el "clear" sin cerrar la base de datos. Yo, por precaución siempre la cierro antes.
Código Delphi [-]
  miBD.Close;
  miBD.SQL.Clear;
  miBD.SQL.Add('lo que sea');
// O cualquier otra cosa que pongas aquí.
  miBD.Open;

Además suelo asegurarme de que la consulta tiene datos antes de ejecutar cualquier tipo de bucle (lo sé, soy un poco maniática).
Responder Con Cita
  #4  
Antiguo 21-06-2006
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Lo olvidaba... jejeje
A mí a veces también me da desbordamientos de memoria y se queda totalmente muerto. Creo que es del entorno de programación, no del programa en sí, porque me ha sucedido después de borrar una etiqueta del formulario o cambiar el nombre de una variable que aún no uso... Lo soluciono reiniciando el entorno de trabajo (santo remedio en Windows )
Responder Con Cita
  #5  
Antiguo 21-06-2006
Avatar de Durbed
Durbed Durbed is offline
Miembro
 
Registrado: ago 2004
Posts: 166
Poder: 20
Durbed Va por buen camino
Gracias por contestar, pero dudo mucho que el hacer el clear con la base abierta afecte en algo, puesto que la propiedad SQL es un TString que almacena la consulta que se pasa al hacer el open o execSQL.

Por cierto no es del entorno porque me lo hace tambien el ejecutable al realizar una tarea (que implica a varios procedimientos en distintos modulos) unas tres o cuatro veces, por lo que deduzco que tengo algo que crece en cada ejecucion del proceso, pero no tengo ni idea de lo que sera, creia que era un TStringList pero le hago un Free despues de cada ejecucion del proceso y he comprobado con F7 que ejecuta dicha linea.

Tengo un IBQuery abierto continuamente en mi aplicacion y el proceso que provoca el desbordamiento de la pila recorre dicho Query con un While, pero no creo que eso me provoque el desbordamiento, no?

Un saludo y gracias.
__________________
Intentando hacer algo con Delphi 7 y Firebird 1.5
Responder Con Cita
  #6  
Antiguo 21-06-2006
Avatar de Durbed
Durbed Durbed is offline
Miembro
 
Registrado: ago 2004
Posts: 166
Poder: 20
Durbed Va por buen camino
El desbordamiento es aleatorio y sale con mucha frecuencia , necesito ayuda.
__________________
Intentando hacer algo con Delphi 7 y Firebird 1.5
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Pila con Listas enlazadas (problema con apuntadores) desve Varios 2 30-03-2005 11:07:47
PageControl me produce desbordamiento de pila apicito OOP 1 24-09-2003 18:07:55


La franja horaria es GMT +2. Ahora son las 23:06:25.


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