estou com uma duvida em try e except
segue o codigo abaixo:
onde coloque um locate, ou algo que teste se o registro existe, nao gravando de forma nenhuma para que n perca o generator? ate mesmo que perca, mas nao quero gravar um registro repetido. A tabela possui somente 2 campos (ID_EXAME, TIPO_EXAME) e estou usando DBEDIT para inserir os campos
obrigado pela força
try Tabela.Post; Tabela.ApplyUpdates; Trans.CommitRetaining; except Trans.RollbackRetaining; end;
onde coloque um locate, ou algo que teste se o registro existe, nao gravando de forma nenhuma para que n perca o generator? ate mesmo que perca, mas nao quero gravar um registro repetido. A tabela possui somente 2 campos (ID_EXAME, TIPO_EXAME) e estou usando DBEDIT para inserir os campos
obrigado pela força
Njuniorba
Curtidas 0
Respostas
Jáder Medeiros
08/08/2006
O certo é você inserir um índice único nessa tabela. Impossibilitando gravar um registro duplicado. Vou explicar o porquê: O método Locate da classe TDataSet move o cursor para localizar o registro e com o DataSet em modo de edição isso não será possível.
Se deseja fazer uma coisa mal feita, mas sem o uso de índice único, o certo é você executar uma consulta ao banco antes de salvar o registro. Mas isso abriria outro cursor com o banco e consumiria mais recurso de memória para o procedimento.[/code]
Se deseja fazer uma coisa mal feita, mas sem o uso de índice único, o certo é você executar uma consulta ao banco antes de salvar o registro. Mas isso abriria outro cursor com o banco e consumiria mais recurso de memória para o procedimento.[/code]
GOSTEI 0
Njuniorba
08/08/2006
[quote=´Jáder´]O certo é você inserir um índice único nessa tabela. Impossibilitando gravar um registro duplicado. Vou explicar o porquê: O método Locate da classe TDataSet move o cursor para localizar o registro e com o DataSet em modo de edição isso não será possível.
Se deseja fazer uma coisa mal feita, mas sem o uso de índice único, o certo é você executar uma consulta ao banco antes de salvar o registro. Mas isso abriria outro cursor com o banco e consumiria mais recurso de memória para o procedimento.[/code]
Se deseja fazer uma coisa mal feita, mas sem o uso de índice único, o certo é você executar uma consulta ao banco antes de salvar o registro. Mas isso abriria outro cursor com o banco e consumiria mais recurso de memória para o procedimento.[/code]
Ola amigo.. o campo eh unico mesmo, ja q n pode ser repetido.. vou fazer uma SP mesmo, acho a forma mais relativa e robusta pra isso.. o sistema n roda em rede remota e sim local, entao a demora n sera tanta. Mesmo assim, obrigado pela ajuda!
GOSTEI 0
Marco Salles
08/08/2006
sinceramente eu não entendi o final :cry: :cry: :cry:
se o campo é unico , mesmo que voce quisesse , com voce faria para gravar un numero repedito...Parece ser redunte.. Voce querer evitar uma coisa que por si so ja seria evitada pela construçao do campo no banco
:?: :?: :?:
Ola amigo.. o campo eh unico mesmo, ja q n pode ser repetido
..... nao quero gravar um registro repetido.
se o campo é unico , mesmo que voce quisesse , com voce faria para gravar un numero repedito...Parece ser redunte.. Voce querer evitar uma coisa que por si so ja seria evitada pela construçao do campo no banco
:?: :?: :?:
GOSTEI 0