Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JonatasFn

[Resolvido] Stack Overflow

Recommended Posts

Pessoal eu tenho um Form de consulta no MySQL, só que ele tá dando este erro:

 

[...] raised exception class EStackOverflow with message 'Stack Overflow'. Process Stopped.

 

Aparece quando clico no DBGrid. Já encontrei n sites explicando q isso é Estouro de Pilha, mas nenhum explica como resolver.

Creio que o meu code não entrou em Loop Infinito, vou postar o código para análise.

 

unit ConsFuncionario;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Grids, DBGrids, DB, ZAbstractRODataset,
  ZAbstractDataset, ZDataset, ZConnection, ZAbstractTable;

type
  TfrmConsFuncionarios = class(TForm)
    GroupBox1: TGroupBox;
    edNome: TEdit;
    Label1: TLabel;
    btPesquisar: TButton;
    Panel1: TPanel;
    ZConConsulta: TZConnection;
    ZQuery1: TZQuery;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    ZTable1: TZTable;
    procedure btPesquisarClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmConsFuncionarios: TfrmConsFuncionarios;

implementation

{$R *.dfm}

procedure TfrmConsFuncionarios.btPesquisarClick(Sender: TObject);
begin
ZQuery1.Active := True;
ZQuery1.Close;
ZQuery1.SQL.Clear;
ZQuery1.SQL.Append('SELECT * FROM funcionarios WHERE nome_func LIKE (:nome) ORDER BY nome_func');
ZQuery1.Params.ParamByName('nome').Value:= edNome.Text;
ZQuery1.Open;



end;

end.

É só isso. O que pode estar causando este erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique se você não esta fazendo um loop entre dunções, ou seja, se duas ou mais funções não estão se chamando recursivamente. Quando o delphi executa uma função ele o coloca em uma pilha de rotinas.. porem esta pilha tem um limite de tamanho e seu programa esta chegando neste limite.

 

você pode tentar aumentar o tamanho desta pilha clicando em "Project>Options" e ir até a aba "Linker". Os tamanhos estão em "Memory Stack Size". Mas acredito que este tamanho esteja bom, verifique se as funções não estão em loop. Ou se você não esta colcando coisas de mais em um vetor ou string..

 

 

espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Demorou, mas descobri(ou acho) o q era.

Eu tinha colocado uma Query e uma Table no mesmo form, acho q não tem problema.

O problema é q eu tinha alterado uma popriedade MasterSource no ZTable e acho q isso fez entrar em loop.

 

Brigadu

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.