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-2007
Avatar de jzginez
jzginez jzginez is offline
Miembro
 
Registrado: sep 2003
Ubicación: Puebla, México
Posts: 247
Poder: 21
jzginez Va por buen camino
Stack overflow al reabrir una tabla

Hola amigos estoy usando Delphi 7, FireBird 1.5 y las FibPlus 5.3

Tengo una forma general (o base por así llamarla) con un dbgrid, toolBar (sus respectivos botones) un actionlist, statusbar, un memo (para verificar sentencias), un datasource, etc.

Esta forma a grandes rasgo me permite ver el contenio de la tabla, moverme en ella, ocultar columnas, cambiar el orden en que se muestran los campos, ordenar en base a un campo (me falta lograr que ordene por mas de un campo), buscar un registro especifico y crear y aplicar un filtro.

Esta forma la tengo en una carpeta general, cuando realizo un nuevo proyecto incluyo esta forma y creo formas hijas escribo un aproximado de 63 lineas de código y listo, hasta el momento funciona bien (apenas llevo 4 proyectos usando esta forma) pero en el que estoy haciendo actualmente al quitar el filtro me da el siguiente error:

Proyect Eikou.exe. raised exception class EstackOverFlow whit message 'Stack overflow', process stopped

Alguien me puede ayudar.

Segun entiendo el error no tiene nada que ver con las sentencias SQL, por eso el rollo de que hace la forma, el código del botón que pone y quita el filtro es el siguiente:

Código Delphi [-]
procedure TFrmGBClientes.SpeedButton1Click(Sender: TObject);
Var
  i: Integer;
  Registro: Integer;
begin
  If not dataSource1.DataSet.Eof
    Then Registro:= DataSource1.DataSet.FieldByName('ID').Value;
  Directorio := ExtractFilePath(ParamStr(0));
  Directorio:= Directorio + 'SQL\';
  If SpeedButton1.Down
    Then begin
      SqlAnterior:= DtmDatos.A_pDstClientes.SelectSQL.Text;
      Insertar:= DtmDatos.A_pDstClientes.InsertSQL.Text;
      Actualizar:= DtmDatos.A_pDstClientes.UpdateSQL.Text;
      Borrar:= DtmDatos.A_pDstClientes.DeleteSQL.Text;
      Releer:= DtmDatos.A_pDstClientes.RefreshSQL.Text;
      DtmDatos.porFiltro:= False;
    End
    Else Begin
      CodigoSQL:= SQLAnterior;
      TSpeedButton(Sender).Enabled:= False;
      DtmDatos.PorFiltro:= True;
    End;
  DataSource1.DataSet.Close;
  if CodigoSql <> SQLAnterior
    Then DtmDatos.A_pDstClientes.SelectSQL.SaveToFile(Directorio+DtmDatos.A_pDstClientes.Name+'.sql')
    Else DeleteFile(pChar(Directorio+DtmDatos.A_pDstClientes.Name+'.sql'));
  DtmDatos.A_pDstClientes.InsertSQL.Text:= Insertar;
  DtmDatos.A_pDstClientes.UpdateSQL.Text:= Actualizar;
  DtmDatos.A_pDstClientes.DeleteSQL.Text:= Borrar;
  DtmDatos.A_pDstClientes.RefreshSQL.Text:= Releer;
  For i:= 0 to Length(Valores) - 1 do
    DtmDatos.A_pDstClientes.ParamByName(DtmDatos.A_pDstClientes.ParamName(i)).Value:= Valores[i];
//  memo1.Lines.Clear;
//  memo1.Lines.Add(DtmDatos.A_pDstClientes.SelectSQL.Text);
  DataSource1.DataSet.Open;
  DataSource1.DataSet.Last;
  DataSource1.DataSet.Locate('ID',Registro,[]);
  inherited;
end;
__________________
Espero poder seguir exprimiéndote el cerebro 8)
Jorge Zamora Ginez
Puebla, Pue. México
Responder Con Cita
  #2  
Antiguo 24-04-2007
Avatar de jzginez
jzginez jzginez is offline
Miembro
 
Registrado: sep 2003
Ubicación: Puebla, México
Posts: 247
Poder: 21
jzginez Va por buen camino
Hola amigos, ya despues de dormir un rato logre encontrar mi error, el problema no era en el procedimiento que escribi, el problema estaba en el evento BeforeOpen donde por error habia repetido el nombre de la tabla A_pDstClientes con el comando open (A_pDstClientes.Open) por lo cual se estaba ciclando el procedimiento hasta que provocaba el desbordamiento de la pila.

Gracias, problema solucionado
__________________
Espero poder seguir exprimiéndote el cerebro 8)
Jorge Zamora Ginez
Puebla, Pue. México
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
Stack Overflow agonzalez Varios 5 08-12-2006 22:26:46
float a decimal: overflow error sinalocarlos MS SQL Server 4 31-10-2006 18:53:17
Aritmetic excepcion, numeric overflow... andressanchez Firebird e Interbase 10 27-04-2006 15:40:56
Error: BCD Overflow bismarck_sierra Conexión con bases de datos 2 20-06-2004 01:34:44
Stack Overflow Mariana Varios 14 30-10-2003 11:37:47


La franja horaria es GMT +2. Ahora son las 16:04:55.


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