Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Erro: Stack Overflow no MySQL rodando Delphi 2010


LuloNet

Pergunta

Olá, pessoal.

Quando crio um programa no meu Delphi 2009/2010 no Windows 7 com o componente ZeosLib 7 e o MySQL 5.1

e o ocorre o ERRO: "Stack Overflow" e dai o programa não consegue fazer nenhuma manutenção do registo que

estou possicionado.

O que posso fazer para resolver isto ?

Desde já obrigado pelas dicas e ajuda.

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
Olá, pessoal.

Quando crio um programa no meu Delphi 2009/2010 no Windows 7 com o componente ZeosLib 7 e o MySQL 5.1

e o ocorre o ERRO: "Stack Overflow" e dai o programa não consegue fazer nenhuma manutenção do registo que

estou possicionado.

O que posso fazer para resolver isto ?

Desde já obrigado pelas dicas e ajuda.

Olá,

Bom, overflow geralmente é problema de memória ou algum loop infinito ou um evento q chame a ele mesmo. Se possível, poste aqui o código do evento q gera o erro para q possamos lhe ajudar.

Att

Dalton

Link para o comentário
Compartilhar em outros sites

  • 0

Olá, Pessoal.

Conforme o solicitado estou emviando um programa exemplo:

unit uZeos;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, DBGrids, ExtCtrls, DBCtrls, StdCtrls, DB, ZAbstractRODataset,

ZAbstractDataset, ZAbstractTable, ZDataset, ZConnection;

type

TfZeos = class(TForm)

zdbDisco: TZConnection;

tabBanco: TZTable;

dstBanco: TDataSource;

tabBancoCodigo_banco: TSmallintField;

tabBancoNome: TWideStringField;

tabBancoUsuario: TWideStringField;

tabBancoData: TIntegerField;

tabBancoHora: TTimeField;

Label1: TLabel;

edtCodigo: TEdit;

DBNavigator1: TDBNavigator;

DBGrid1: TDBGrid;

procedure FormCreate(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure edtCodigoEnter(Sender: TObject);

procedure edtCodigoExit(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

fZeos: TfZeos;

implementation

{$R *.dfm}

procedure TfZeos.edtCodigoEnter(Sender: TObject);

begin

edtCodigo.Text := '';

end;

procedure TfZeos.edtCodigoExit(Sender: TObject);

begin

tabBanco.Refresh;

if (tabBanco.Locate('codigo_banco',edtCodigo.Text,[])) then

begin

ShowMessage('Banco já cadastrado');

edtCodigo.SetFocus;

Exit;

end else

begin

// Segue para os demais dados do cadastro do banco

// ....Setfocus;

Exit;

end;

end;

procedure TfZeos.FormClose(Sender: TObject; var Action: TCloseAction);

begin

tabBanco.Active := False;

zdbDisco.Connected := False;

Close;

end;

procedure TfZeos.FormCreate(Sender: TObject);

begin

Show;

zdbDisco.Connected := True;

tabBanco.Active := True;

end;

end.

Gratos pela ajuda e atenção.

lulonet

Link para o comentário
Compartilhar em outros sites

  • 0

Olá,

Boa noite.

Bom pelo código q você postou, o problema so pode ta no create.

Então tente assim:

procedure TfZeos.FormCreate(Sender: TObject);

begin

Show;

zdbDisco.Connect;

if zdbDisco.Connected = True then

tabBanco.Active := True;

end;

Espero ter ajudado.

Att

Dalton

Link para o comentário
Compartilhar em outros sites

  • 0
ERRO: "Stack Overflow" e dai o programa não consegue fazer nenhuma manutenção do registo que

estou possicionado.

Tire o comando:

tabBanco.Refresh;

OBS: se quer atualizar sua tabela, está fazendo isso no lugar errado

Outra coisa: se voce não cria o seu form em tempo de execução, o comando para conectar e ativar usa tabela não deveria ser no evento OnCreate do Form e sim no evento OnActive do Form

zdbDisco.Connected := True;
tabBanco.Active := True;

entretanto a conexão tambem não deveria ser constante como está fazendo ( no evento onClose e no evento OnCreate ). somente a ativação da tabela é que seria necessaria.

A conexão do Banco voce faz apenas quando inicia o programa e fecha quando finaliza.

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...