estackoverflow

Delphi

10/08/2010

olá Galera que sempre me ajuda!!!!!!!!!!!!!!!!! Estou com um problema de estackoverflow no applyupdates, algumas pessoas falam que codigo com loop.Porem acredito que nao seja !!!!! segue o codigo: unit UfrmCadastraUsuario; interface uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Mask, DBCtrls, Buttons, ExtCtrls, ImgList; type
  TFrmCadastroUsuario = class(TForm)
    ImgLstCadastroUsuario: TImageList;
    Panel1: TPanel;
    BtbtnEdita: TBitBtn;
    BtBtnInserir: TBitBtn;
    BtBtnSalva: TBitBtn;
    BtbtnCancel: TBitBtn;
    BtBtnExcluir: TBitBtn;
    DbEdtCodigo: TDBEdit;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    procedure BtBtnInserirClick(Sender: TObject);
    procedure BtbtnEditaClick(Sender: TObject);
    procedure BtBtnSalvaClick(Sender: TObject);
    procedure BtbtnCancelClick(Sender: TObject);
    procedure BtBtnExcluirClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end; var
  FrmCadastroUsuario: TFrmCadastroUsuario; implementation uses UDMLogin; {$R *.dfm} procedure TFrmCadastroUsuario.BtBtnInserirClick(Sender: TObject);
begin
  IF NOT DmLogin.CdtstLogin.Active THEN
    DmLogin.CdtstLogin.OPEN;
  DmLogin.CdtstLogin.Insert;
 
end; procedure TFrmCadastroUsuario.BtbtnEditaClick(Sender: TObject);
begin
  IF NOT DmLogin.CdtstLogin.Active THEN
    DmLogin.CdtstLogin.OPEN;
  DmLogin.CdtstLogin.Edit;
end; procedure TFrmCadastroUsuario.BtBtnSalvaClick(Sender: TObject);
begin
  IF  NOT DmLogin.CdtstLogin.Active THEN
    DmLogin.CdtstLogin.OPEN;
  DmLogin.CdtstLogin.Post;
end; procedure TFrmCadastroUsuario.BtbtnCancelClick(Sender: TObject);
begin
  DmLogin.CdtstLogin.Cancel;
end; procedure TFrmCadastroUsuario.BtBtnExcluirClick(Sender: TObject);
begin
  DmLogin.CdtstLogin.Delete;
end; end. Valeu Galera
Gustavo Matos

Gustavo Matos

Curtidas 0

Respostas

Gustavo Matos

Gustavo Matos

10/08/2010

olá Galera que sempre me ajuda!!!!!!!!!!!!!!!!! Estou com um problema de estackoverflow no applyupdates, algumas pessoas falam que codigo com loop.Porem acredito que nao seja !!!!! segue o codigo: unit UfrmCadastraUsuario; interface uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Mask, DBCtrls, Buttons, ExtCtrls, ImgList; type
  TFrmCadastroUsuario = class(TForm)
    ImgLstCadastroUsuario: TImageList;
    Panel1: TPanel;
    BtbtnEdita: TBitBtn;
    BtBtnInserir: TBitBtn;
    BtBtnSalva: TBitBtn;
    BtbtnCancel: TBitBtn;
    BtBtnExcluir: TBitBtn;
    DbEdtCodigo: TDBEdit;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    procedure BtBtnInserirClick(Sender: TObject);
    procedure BtbtnEditaClick(Sender: TObject);
    procedure BtBtnSalvaClick(Sender: TObject);
    procedure BtbtnCancelClick(Sender: TObject);
    procedure BtBtnExcluirClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end; var
  FrmCadastroUsuario: TFrmCadastroUsuario; implementation uses UDMLogin; {$R *.dfm} procedure TFrmCadastroUsuario.BtBtnInserirClick(Sender: TObject);
begin
  IF NOT DmLogin.CdtstLogin.Active THEN
    DmLogin.CdtstLogin.OPEN;
  DmLogin.CdtstLogin.Insert;
 
end; procedure TFrmCadastroUsuario.BtbtnEditaClick(Sender: TObject);
begin
  IF NOT DmLogin.CdtstLogin.Active THEN
    DmLogin.CdtstLogin.OPEN;
  DmLogin.CdtstLogin.Edit;
end; procedure TFrmCadastroUsuario.BtBtnSalvaClick(Sender: TObject);
begin
  IF  NOT DmLogin.CdtstLogin.Active THEN
    DmLogin.CdtstLogin.OPEN;
  DmLogin.CdtstLogin.Post;
end; procedure TFrmCadastroUsuario.BtbtnCancelClick(Sender: TObject);
begin
  DmLogin.CdtstLogin.Cancel;
end; procedure TFrmCadastroUsuario.BtBtnExcluirClick(Sender: TObject);
begin
  DmLogin.CdtstLogin.Delete;
end; end. Valeu Galera
Segue a mensagem de erro:   Project Raised exception class estackoverflow with message 'stack overflow' Process stopped.use Step or run to Continue
GOSTEI 0
Eriley Barbosa

Eriley Barbosa

10/08/2010

Mova este código para o evento onshow do seu formulário: IF NOT DmLogin.CdtstLogin.Active THEN
    DmLogin.CdtstLogin.OPEN;
Amigo é possível fazer esta tela com teclas de atalho e sem nenhuma linha de código, veja meu artigo:   https://www.devmedia.com.br/post-17655-Criando-um-formulario-padrao-de-cadastro-com-teclas-de-atalho-e-sem-nenhuma-linha-de-codigo.html   Atenciosamente   Eriley
GOSTEI 0
Gustavo Matos

Gustavo Matos

10/08/2010

Olá bom amigo!!!!!!!!!! Tenho uma classe pai de cadastro baseado no imagelist e no actionlist como vc ensina, porem tive alguns problemas e resolvi como primeiro form seguir dessa forma . Porem continuo com o problema de over flow no applyupdates tirei o codigo com vc indico mas esta entrando em loop no applyupdates sera pq esse loop
GOSTEI 0
Eriley Barbosa

Eriley Barbosa

10/08/2010

Stack Overflow é um estouro de pilha de memória, tipo tentar gravar um valor maior do que uma variável comporta. Onde você está dando o ApplyUpdates? no código que passou ta dando post e delete. No seu clientDataset no seus eventos AfterPost e AfterDelete, coloque o ApplyUpdates(0);   Atenciosamente   Eriley
GOSTEI 0
Gustavo Matos

Gustavo Matos

10/08/2010

Bom Eriley, meu applyupdates estava no beforepost, porem troquei e esta retornando outra mensagem RAISED EXCEPTION CLASS E DATABASEERROR WITH MESSAGE 'TABLE UNKNOWNLOGIN'
GOSTEI 0
Eriley Barbosa

Eriley Barbosa

10/08/2010

Esta dizendo que a tabela login não existe.   Atenciosamente   Eriley
GOSTEI 0
Gustavo Matos

Gustavo Matos

10/08/2010

putz a tabela existi, o que eu fiz foi dar um drop na tabela Login e criei outar tabela com o mesmo nome pq ele nao acha minha  tabela
GOSTEI 0
Gustavo Matos

Gustavo Matos

10/08/2010

Eriley, isto esta meio ilogico pois em modo de leitura minha tabela é reconhecida
GOSTEI 0
Eriley Barbosa

Eriley Barbosa

10/08/2010

Após criar, você deu o COMMIT? Desative e ative o SQLConnection, desative e ative o ClientDataset.   Atenciosamente   Eriley
GOSTEI 0
Gustavo Matos

Gustavo Matos

10/08/2010

Após criar, você deu o COMMIT? Desative e ative o SQLConnection, desative e ative o ClientDataset.   Atenciosamente   Eriley
Entao ja tinha me certificado disso!!!!!!!!!!! E nao da erro ao ativar e desativar estes componentes
GOSTEI 0
Gustavo Matos

Gustavo Matos

10/08/2010

Muito esquisito.......... Devo estar comentendo um erro grande sem perceber hah help.............................................
GOSTEI 0
Gustavo Matos

Gustavo Matos

10/08/2010

Muito esquisito.......... Devo estar comentendo um erro grande sem perceber hah help.............................................
segue o erro exato project raised exception class edatabase error with message 'table unknown LOgin' at line 1 , column 8 process stopped.use step or run to continue help.....
GOSTEI 0
Eriley Barbosa

Eriley Barbosa

10/08/2010

Na pior das hipoteses, apague os componentes ligados a esta tabela e recrie-os.   Atenciosamente   Eriley
GOSTEI 0
Felipe Caputo

Felipe Caputo

10/08/2010

alguns erros assim contumam acontecer aki na empresa pq compilamos o executavel em outra pasta diferente da pasta do projeto e as vezes esquecemos de verificar o banco que o executavel está acessando por ser diferente do banco de dados do projeto (o q é bem útil para analisarmos o comportamento das atualizações nas maquinas dos clientes.) pode ser que seja o seu  caso.
Ou então, como golpe de sorte que funciona as vezes, dê um build all no projeto
GOSTEI 0
Gustavo Matos

Gustavo Matos

10/08/2010

Na pior das hipoteses, apague os componentes ligados a esta tabela e recrie-os.   Atenciosamente   Eriley
putz mesmo erro com outro quarteto de componentes
GOSTEI 0
Gustavo Matos

Gustavo Matos

10/08/2010

Continua nao encontrando minha tabela na hora de inseri no registro
GOSTEI 0
Felipe Caputo

Felipe Caputo

10/08/2010

você verificou se o banco acessado pelo sistema é o mesmo do projeto?
qual sgbd está usando?
GOSTEI 0
Eriley Barbosa

Eriley Barbosa

10/08/2010

Execute este select e veja se sua tabela está na lista de resultados: SELECT RDB$RELATION_NAME FROM RDB$RELATIONS WHERE
RDB$SYSTEM_FLAG=0   Se estiver, cole aqui o resultado e o script de criação da tabela de login.   Atenciosamente   Eriley
GOSTEI 0
Gustavo Matos

Gustavo Matos

10/08/2010

galera que sempre me ajuda !!!!!!!!!!!!!!!!!!!!!!!!!! Venho por meio desta!!!!!!!!!!!!!!!! hahahahha Agradecer o apoio concedido a aplicação ja esta salvando nao me pergutem o pq acredito que seja o build all no projeto fiz isso sem saber pra que funciona na integra o build
GOSTEI 0
POSTAR