Fórum Erro ao Clicar no Botão Incluir #368787
04/03/2009
0
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
Curtir tópico
+ 0Posts
04/03/2009
Paullsoftware
Gostei + 0
04/03/2009
Peterpan
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
04/03/2009
Marco Salles
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
04/03/2009
Peterpan
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
04/03/2009
Peterpan
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
Clique aqui para fazer login e interagir na Comunidade :)