Erro ao Clicar no Botão Incluir

Delphi

04/03/2009

:) Ola Amigos Delphianos

Algum de vcs ja passou por esse tipo de erro ao clicar no botao de incluir um registro ?

Erro: Invalid Request BLR at offset 74 generator GEN_CLIENTE_ID is not defined.

Estou achando esse erro estranho pois o Codigo do Cliente esta definido no banco de dados, tanto o Generator qto sua Trigger.

Obs.: Aproveitando como postar a imagem aki dentro do forum, é que acho que as vezes fica melhor mostrar o erro junto...

Estarei no aguardo de um ajuda.

abços


Peterpan

Peterpan

Curtidas 0

Respostas

Paullsoftware

Paullsoftware

04/03/2009

A Mensagem diz que existe um erro no Gerado ou ele não está definido... dê uma verificada se consegue incluir normalmente diretamente no banco, caso consiga verifique se as ligações feitas no Delphi está normal, isso me parece mais um erro na ligação entre os componentes dataware e seu banco de dados. :wink:


GOSTEI 0
Peterpan

Peterpan

04/03/2009

A Mensagem diz que existe um erro no Gerado ou ele não está definido... dê uma verificada se consegue incluir normalmente diretamente no banco, caso consiga verifique se as ligações feitas no Delphi está normal, isso me parece mais um erro na ligação entre os componentes dataware e seu banco de dados. :wink:


Ola paullsoftware blz...

Bem seguindo a sua instrução de tentar cadastrar direto no banco de dados, isso ja foi testado antes mesmo de eu publicar a duvida ele cadastra normal e não da o mesmo erro.

Com relação a ligação dos componentes dataware estão corretos tbem...
Aguma outra ideia...

Abços


GOSTEI 0
Marco Salles

Marco Salles

04/03/2009

Qual o Codigo do Botão incluir ??

Em qual evento vc esta disparando esta Trigger pelo Delph ?

Observe o Nome que vc esta usando se é o mesmo Nome definido
em seu Banco de Dados


GOSTEI 0
Peterpan

Peterpan

04/03/2009

[quote:30f27fceaf=´Marco Salles´]Qual o Codigo do Botão incluir ??

Em qual evento vc esta disparando esta Trigger pelo Delph ?

Observe o Nome que vc esta usando se é o mesmo Nome definido
em seu Banco de Dados[/quote:30f27fceaf]

Ola Marcos Blz...

Segue abaixo o código do Botão Incluir;

procedure TfrmModelo.Act_IncluirExecute(Sender: TObject);
begin
  PageControl1.ActivePage := tbCadastro;
  if not Ds.DataSet.Active then
    Ds.DataSet.Open;
  Ds.DataSet.Insert;
end;


No evento onCreate do DataModule tenho esse código para disparar o codigo a ser gerado;

procedure TDM.DataModuleCreate(Sender: TObject);
var
  I: Integer;
begin
  for I := 0 to Pred(ComponentCount) do
   if Components[I] is  TClientDataSet then
   begin
    TClientDataSet(Components[I]).OnNewRecord := GetID;
    TClientDataSet(Components[I]).OnReconcileError := GetError;
   end;
end;


E tbem tenho uma function chamada GetId para isso conforme segue abaixo;

function TDM.GenID(tablename: String): Integer;
var
  Qry: TSQLQuery;
begin
  Qry := TSQLQuery.Create(Self);
  Qry.SQLConnection := DBAcesso;
  Qry.SQL.Add(´SELECT GEN_ID(GEN_´+tablename+´_ID,1) FROM RDB$DATABASE´);
  Qry.Open;
  Result := Qry.Fields[0].AsInteger; 
end;


Espero que seja isso que vc deseje de informação...qquer duvida é so postar ai que te informo outros detalhes.

Abços


GOSTEI 0
Peterpan

Peterpan

04/03/2009

[quote:ddcadb33dc=´Marco Salles´]Qual o Codigo do Botão incluir ?? Em qual evento vc esta disparando esta Trigger pelo Delph ? Observe o Nome que vc esta usando se é o mesmo Nome definido em seu Banco de Dados


Ola Marcos Blz...

Segue abaixo o código do Botão Incluir;

procedure TfrmModelo.Act_IncluirExecute(Sender: TObject);
begin
  PageControl1.ActivePage := tbCadastro;
  if not Ds.DataSet.Active then
    Ds.DataSet.Open;
  Ds.DataSet.Insert;
end;


No evento onCreate do DataModule tenho esse código para disparar o codigo a ser gerado;

procedure TDM.DataModuleCreate(Sender: TObject);
var
  I: Integer;
begin
  for I := 0 to Pred(ComponentCount) do
   if Components[I] is  TClientDataSet then
   begin
    TClientDataSet(Components[I]).OnNewRecord := GetID;
    TClientDataSet(Components[I]).OnReconcileError := GetError;
   end;
end;


E tbem tenho uma function chamada GetId para isso conforme segue abaixo;

function TDM.GenID(tablename: String): Integer;
var
  Qry: TSQLQuery;
begin
  Qry := TSQLQuery.Create(Self);
  Qry.SQLConnection := DBAcesso;
  Qry.SQL.Add(´SELECT GEN_ID(GEN_´+tablename+´_ID,1) FROM RDB$DATABASE´);
  Qry.Open;
  Result := Qry.Fields[0].AsInteger; 
end;


Espero que seja isso que vc deseje de informação...qquer duvida é so postar ai que te informo outros detalhes.

Abços[/quote:ddcadb33dc]

Caso Resolvido, não sei dizer ao certo, mas reconstrui o DataModule com seus componentes DataWare e tudo funcionou certinho. Acho que deve ter acontecido de gravarf alguma sujeira junto...

De qquer maneira fico grato a ajuda de todos.

Abços


GOSTEI 0
POSTAR