Table: Record not found ?
Olá para todos!
Estou com um probleminha aqui:
Quando executo um [i:8a1ec5ad95]post[/i:8a1ec5ad95] em uma determinada tabela ocorre tudo perfeito,
porém quando tento inserir um novo registro nessa tabela é lançada uma
exceção [b:8a1ec5ad95]´Table: Record not found´[/b:8a1ec5ad95].
As vezes essa exceção é somente lançada depois do 3º ou 4º registro
inserido na tabela.
Como você podem ver, esta exceção é diferente da exceção
[b:8a1ec5ad95]Record not found or changed by another user[/b:8a1ec5ad95] que lançou muitas
dúvidas aqui no forum.
Alguém tem alguma dica para a resolução deste problema?!
Estou usando o Firebird 2.0.
Desde já Obrigado!
Estou com um probleminha aqui:
Quando executo um [i:8a1ec5ad95]post[/i:8a1ec5ad95] em uma determinada tabela ocorre tudo perfeito,
porém quando tento inserir um novo registro nessa tabela é lançada uma
exceção [b:8a1ec5ad95]´Table: Record not found´[/b:8a1ec5ad95].
As vezes essa exceção é somente lançada depois do 3º ou 4º registro
inserido na tabela.
Como você podem ver, esta exceção é diferente da exceção
[b:8a1ec5ad95]Record not found or changed by another user[/b:8a1ec5ad95] que lançou muitas
dúvidas aqui no forum.
Alguém tem alguma dica para a resolução deste problema?!
Estou usando o Firebird 2.0.
Desde já Obrigado!
Fabricio.ribeiro
Curtidas 0
Respostas
Osocram
06/07/2009
Amigo, faltou vc dizer qual os componentes de acesso ao banco vc esta usando.
Mas ja vou adiantando se vc estiver usando DBExpress... vc precisa configurar as propriedade InKey dos campos que sao PK
e mudar no DataSetProvider a opção WhereAll para WhereKeyOnly.
Se não achar as propriedade da um alo que eu posto detalhado aqui para vc... é que estou sem delphi aqui no momento.
So por curiosidade vc tem campos Not null e com default no banco nessa tabela que esta fazendo os insert?
Flw.
Mas ja vou adiantando se vc estiver usando DBExpress... vc precisa configurar as propriedade InKey dos campos que sao PK
e mudar no DataSetProvider a opção WhereAll para WhereKeyOnly.
Se não achar as propriedade da um alo que eu posto detalhado aqui para vc... é que estou sem delphi aqui no momento.
So por curiosidade vc tem campos Not null e com default no banco nessa tabela que esta fazendo os insert?
Flw.
Olá para todos!
Estou com um probleminha aqui:
Quando executo um [i:116aa0f462]post[/i:116aa0f462] em uma determinada tabela ocorre tudo perfeito,
porém quando tento inserir um novo registro nessa tabela é lançada uma
exceção [b:116aa0f462]´Table: Record not found´[/b:116aa0f462].
As vezes essa exceção é somente lançada depois do 3º ou 4º registro
inserido na tabela.
Como você podem ver, esta exceção é diferente da exceção
[b:116aa0f462]Record not found or changed by another user[/b:116aa0f462] que lançou muitas
dúvidas aqui no forum.
Alguém tem alguma dica para a resolução deste problema?!
Estou usando o Firebird 2.0.
Desde já Obrigado!
GOSTEI 0
Fabricio.ribeiro
06/07/2009
[b:bd83c6cc04]osocram[/b:bd83c6cc04] estou utilizando nesta tabela um [b:bd83c6cc04]Trasnaction[/b:bd83c6cc04] e [b:bd83c6cc04]Table[/b:bd83c6cc04] que estão
na aba Interbase, e um [b:bd83c6cc04]DataSource[/b:bd83c6cc04] (Dara Acess).
Nesta tabela há dois campos não Nulos.
Obrigado pela atenção![b:bd83c6cc04][/b:bd83c6cc04]
na aba Interbase, e um [b:bd83c6cc04]DataSource[/b:bd83c6cc04] (Dara Acess).
Nesta tabela há dois campos não Nulos.
Obrigado pela atenção![b:bd83c6cc04][/b:bd83c6cc04]
GOSTEI 0
Osocram
06/07/2009
Então sobre table..... faz uns 10 anos q num uso... mas por ter transaction. vc tem q comitar isso ae para ele gravar no banco.
deve ter um comando Transaction.commit algo do genero.
Qto as campos nulos inicializa eles no after insert da table.
Pois o erro ´Record not found or changed by another user´
Acontece geralmente qdo tem campos not null e default dae vc manda null p o banco e ele preenche com o default e qdo o sistema vai traz de novo e vc faz algum update... ele acusa q o registro foi mudado por alguem pois ele mandou null e retornou diferente de null.
Essa é uma das maneira de se resolver isso.
deve ter um comando Transaction.commit algo do genero.
Qto as campos nulos inicializa eles no after insert da table.
Pois o erro ´Record not found or changed by another user´
Acontece geralmente qdo tem campos not null e default dae vc manda null p o banco e ele preenche com o default e qdo o sistema vai traz de novo e vc faz algum update... ele acusa q o registro foi mudado por alguem pois ele mandou null e retornou diferente de null.
Essa é uma das maneira de se resolver isso.
[b:1fcacceb57]osocram[/b:1fcacceb57] estou utilizando nesta tabela um [b:1fcacceb57]Trasnaction[/b:1fcacceb57] e [b:1fcacceb57]Table[/b:1fcacceb57] que estão
na aba Interbase, e um [b:1fcacceb57]DataSource[/b:1fcacceb57] (Dara Acess).
Nesta tabela há dois campos não Nulos.
Obrigado pela atenção![b:1fcacceb57][/b:1fcacceb57]
GOSTEI 0
Fabricio.ribeiro
06/07/2009
Eu estou dando os [b:1ff3667b97]COMMIT[/b:1ff3667b97].
Identifiquei a origem do problema:
Tenho uma tabela [b:1ff3667b97]CONTA[/b:1ff3667b97] e uma [b:1ff3667b97]QUARTO[/b:1ff3667b97]. Insiro os valores na tabela
CONTA, sendo que também é necessário inserir o ID da tabela QUARTO,
logo tem uma chave estrangeira na tabela CONTA que faz referência a tabela
QUARTO. Quando chega por volta do 3º ou 4º registro inserido sequencialmente
na tabela CONTA esta EXCEÇÃO é lançada, ou seja a conta não está mais
localizando a referência a tela QUARTO que por sua vez é feita por um
componente DBLookupCombox.
A messagem da Exceção lançada é: [b:1ff3667b97]tbQuarto: Record not found[/b:1ff3667b97]
Espero que tenha entendido.
Identifiquei a origem do problema:
Tenho uma tabela [b:1ff3667b97]CONTA[/b:1ff3667b97] e uma [b:1ff3667b97]QUARTO[/b:1ff3667b97]. Insiro os valores na tabela
CONTA, sendo que também é necessário inserir o ID da tabela QUARTO,
logo tem uma chave estrangeira na tabela CONTA que faz referência a tabela
QUARTO. Quando chega por volta do 3º ou 4º registro inserido sequencialmente
na tabela CONTA esta EXCEÇÃO é lançada, ou seja a conta não está mais
localizando a referência a tela QUARTO que por sua vez é feita por um
componente DBLookupCombox.
A messagem da Exceção lançada é: [b:1ff3667b97]tbQuarto: Record not found[/b:1ff3667b97]
Espero que tenha entendido.
GOSTEI 0
Osocram
06/07/2009
Dae complicou então amigo.
parece que é algo especifico com o TTable, e eu não lembro mais como usar isso.
Uma dica seria vc migrar seu sistema para DBExpress... principalmente por ser melhor e tbm por ter mais tutoriais.
Mas sobre o seu real problema não saberei resolver.. lamento.
parece que é algo especifico com o TTable, e eu não lembro mais como usar isso.
Uma dica seria vc migrar seu sistema para DBExpress... principalmente por ser melhor e tbm por ter mais tutoriais.
Mas sobre o seu real problema não saberei resolver.. lamento.
Eu estou dando os [b:f3064a86dd]COMMIT[/b:f3064a86dd].
Identifiquei a origem do problema:
Tenho uma tabela [b:f3064a86dd]CONTA[/b:f3064a86dd] e uma [b:f3064a86dd]QUARTO[/b:f3064a86dd]. Insiro os valores na tabela
CONTA, sendo que também é necessário inserir o ID da tabela QUARTO,
logo tem uma chave estrangeira na tabela CONTA que faz referência a tabela
QUARTO. Quando chega por volta do 3º ou 4º registro inserido sequencialmente
na tabela CONTA esta EXCEÇÃO é lançada, ou seja a conta não está mais
localizando a referência a tela QUARTO que por sua vez é feita por um
componente DBLookupCombox.
A messagem da Exceção lançada é: [b:f3064a86dd]tbQuarto: Record not found[/b:f3064a86dd]
Espero que tenha entendido.
GOSTEI 0
Fabricio.ribeiro
06/07/2009
Ainda assim obrigado por tentar [b:1fcacceb57]osocram[/b:1fcacceb57].
GOSTEI 0
Fabricio.ribeiro
06/07/2009
==== sobe ====
GOSTEI 0
Fabricio.ribeiro
06/07/2009
==== sobe ====
GOSTEI 0
Fabricio.ribeiro
06/07/2009
Caso alguém tenha o mesmo problema que eu, fica a dica para
a provável resolução do problema:
[b:e844f1617d]Excluir a TABLE, DARASOURCE e TRASACTION...[/b:e844f1617d]
depois basta recrialos re refazer a coxão com os componentes
e se for necessário alterar o código!
:D
a provável resolução do problema:
[b:e844f1617d]Excluir a TABLE, DARASOURCE e TRASACTION...[/b:e844f1617d]
depois basta recrialos re refazer a coxão com os componentes
e se for necessário alterar o código!
:D
GOSTEI 0