Fórum Problema de gravação de informação em banco firebird em ordem diferente #409635

22/11/2011

0

EX: No Meu banco tem uma TAbela TESTE tem os campos nesta ordem.
[0] Cod
[1] Nome
[2] Endereco
[3] Bairro

Mas no cliente, por algumas alteracoes no bd, a tabela TESTE ficou os campos com ordem diferente
[0] Cod
[1] Nome
[2] Bairro
[3] Endereco

ou seja, o bairro e endereco esta em ordem diferente (apenas um exemplo, a tabela tem mais de 80 campos)...

No delphi, uso o TIBDatase, na propriedade Select SQL uso apenas (select * from TESTE)
e faço os processo para gerar as propriedades de insercao, refresh, etc..

Acontece que em um cliente, nao gravava um informação. tentei de tudo, percebi que o modivo é que a tabela usada na programacao no Delphi esta em uma ordem diferente da tabela do cliente. So deu certo depois que comecei a usar no Select SQL (Select cod, nome.... ou seja todos os campos).... ai ele grava.

Isto é normal. os atributos de cada tabela deve estar na mesma ordem de criação que o banco de dados usados nos clientes ?

ou o mais certo é nunca usar na propriedade Select SQL (Select *)
Sistemp

Sistemp

Responder

Posts

23/11/2011

Wilson Junior

O mais correto é sempre utilizar o nome dos campos, justamente para não ocorrer este tipo de erro futuramente.

Espero ter colaborado.
Responder

Gostei + 0

28/12/2011

Alisson Santos

referente essa sua duvida é o seguinte o select * from é para funcionar normal independente da ordem que está o banco no cliente e no seu micro, por que. Na hora da programação que vai efetuar a inserção ele não vai verificando as posições do banco e granvando, ele apenas faz a gravação nos respectivos campos preenchidos.
Esse tipo de erro pode ocorrer quando trabalha com indice da tabela ai sim tem que referenciar.
O que tem que ser feito é analisado a maneira que estava efetuando a gravação, caso seja por indice ai tem que usar os nomes, caso não não tem necessidade.

Espero poder ter ajudado nessa duvida.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar