Erro no Add Filds

23/02/2006

Adicionei um campo no banco de dados Hor_ID_Funcionairo
e quado tento adicionar(add all filds) no fields editor do IBDataSet
ocorre o seguinte erro.

Dynamic SQL Error
SQL error code = 206
Column unknown
At line 2, column 16.

Alguem poderia me informar como posso resolver isso?


Ullrich

Respostas

23/02/2006

Paullsoftware

Dynamic SQL Error SQL error code = 206 Column unknown At line 2, column 16


Dê uma olhada na Propriedade SelectSQL do componente IbDataSet e veja a segunda linha digitada contém erro, se vc mostrasse o tem digitado lá ficaria mais fácil de te ajudar!
tente simplesmente muda a propriedade Active para True ou invés de tentar adicionar o Field a tabela...


Responder Citar

23/02/2006

Ullrich

Não sei o que aconteceu mas resolvi.

O problema é: toda vez que vou fazer um upgrade em alguma tabela tenho problemas no delphi para reconhecer o novo campo.

No caso de aumentarmos os campos da tabela, qual procedimento a ser seguido para validar esse campo no delphi.


Responder Citar

24/02/2006

Ullrich

Aconteceu novamente, já apaguei toda conexão com o banco de dados e refiz outra vez, não adianta, sempre da erro ao fazer um update na tabela. Quais são os passos certos para que não ocorra mais este tipo de erro?

Obrigado pela atenção.


Responder Citar

24/02/2006

Ullrich

Dê uma olhada na Propriedade SelectSQL do componente IbDataSet e veja a segunda linha digitada contém erro, se vc mostrasse o tem digitado lá ficaria mais fácil de te ajudar!


Propriedade SelectSQL contem: select * from Tab_Horas


tente simplesmente muda a propriedade Active para True ou invés de tentar adicionar o Field a tabela...

ocorre o mesmo erro.


Responder Citar

02/03/2006

Paullsoftware

só por curiosidade... vc tentou fazer o mesmo em outro componente?
tipo, coloca outro IbDataSet e testar...

retorne o resultado!


Responder Citar

02/03/2006

Ullrich

Não da, refiz tudo, e o delphi não aceita o novo campo, é encrivel.

O que posso fazer?


Responder Citar

02/03/2006

Ullrich

Apaguei todo o data module, criei outro, começei as ligações com o banco de dados do zero, não adiantou.

então fiz um teste, criei uma nova aplicação, criei um novo data module, e tentei a conexão, funcionou perfeitamente.

Acho que o erro não está no data module, deve estar em outro formulário, que não deixa o IBDataSet atualizar o novo campo. Mas onde devo procurar este erro. ?


Responder Citar

02/03/2006

Paullsoftware

É que o componente IbDataSet possui uma outra prorpiedade chamada DataSet Editor, onde vc vai informar a estrutura que vai ser aplicada nas instruções SQL (DeleteSQL, InsertSQL, UpdateSQl e REfreshSQL) nesta propriedade vc deve verificar se todos os campos estão selecionados...

vamos testar:
no seu banco crie uma tabela chamada [b:80ecf90aa8]TESTE[/b:80ecf90aa8] com os seguintes campos:
Cod = Integer; Primary Key
Nome = VarChar(50);
Fone = VarChar(20);

somente isso...
agora va ao delphi, inclua um IbDataSet no seu DataModule, vincule o DataBase para a sua base e em SelectSQL faça: [b:80ecf90aa8][i:80ecf90aa8]´select * from TESTE´[/i:80ecf90aa8][/b:80ecf90aa8] agora clique com o botão dereito sobre IbDataSet(TESTE) e escolha DataSet Editors...
Select Primary Key do lado esquedo marque o campo Cod(Chave Primaria) e depois clique em ok agora tente abrir o IbDataSet e veja se funciona!....


Responder Citar

02/03/2006

Ullrich

Fiz este teste e não deu em certo, entretanto não desisti, e desconfiei do banco de dados FB, estou usando a ferramenta IBExpert para
gerencia - lo, foi ai que descobri o erro, olha só:

A tabela estava assim:

Tab_Horas

ID_Horas
Entrada
Saida
...

Então eu fiz as seguintes modificações (No IBExpert):

Tab_Horas

ID_Horas
Entrada
ID_Funcionario
Saida
...

Quando adicionei o campo ID_Funcionario, na tabela usando o IBExpert tudo ocorreu normalmente, aos meus olhos, pois acho que deve ter dado algum erro de SQL no banco FB, pois eu modifiquei a posição dos campos e isso deve ter gerado alguma incompatibilidade dos campos.

Para resolver o problema:

Apaguei a tabela (drop table )no IBexpert e recriei, voltei ao delphi refiz as conexoes e funcionou normalmente.

Para que nunca ocorra este erro:

Quando for adicionar camos em uma tabela já criada, nunca adicione o novo campo no começo ou no meio, e sim ao final da tabela, que o erro não existirá, pois os outros campos não serão movidos de lugar.

Simples e me deixou com os cabelos em pé.

Muito obrigado pela ajuda PaullSoftware.


Responder Citar

03/03/2006

Ullrich

Desculpe pessoal, estava totalmente enganado,
não consegui descobrir como ´evitar´ este erro danado,
toda vez que altero uma tabela, não consigo trabalhar com
ela no Delphi, a não ser que eu apague a tabela e crie novamente,
pode ser uma solução, mais tem um porem, se outras tabelas
estiverem ligadas através de chaves estrangeiras, eu preciso apagar
todas anter de apagar a tabela, e depois quando cria-la novamente
tem o trabalho de ligar todas as chaves estrangeiras novamente, que
trabalho absurdo. Alguem já passou por esse problema?

Se tiverem alguma idéia podem postar, agradeço a atenção


Responder Citar

14/03/2006

Ullrich

Dynamic SQL Error
SQL error code = 206
Column unknown
At line 2, column 16.

Este erro era ocasionado pelo IBExpert, pois quando eu adicionava um novo campo na tabela, não sei por qual motivo o IBexpert escriva a linha de código desta maneira:

alter table Tabela (
add ´Nome´ varchar (40))

As aspas não deixavam que o delphi aceitasse este novo campo.


Responder Citar

14/03/2006

Ullrich

Dynamic SQL Error
SQL error code = 206
Column unknown
At line 2, column 16.

Este erro era ocasionado pelo IBExpert, pois quando eu adicionava um novo campo na tabela, não sei por qual motivo o IBexpert escriva a linha de código desta maneira:

alter table Tabela (
add ´Nome´ varchar (40))

As aspas não deixavam que o delphi aceitasse este novo campo.


Responder Citar

14/03/2006

Ullrich

Dynamic SQL Error
SQL error code = 206
Column unknown
At line 2, column 16.

Este erro era ocasionado pelo IBExpert, pois quando eu adicionava um novo campo na tabela, não sei por qual motivo o IBexpert escriva a linha de código desta maneira:

alter table Tabela (
add ´Nome´ varchar (40))

As aspas não deixavam que o delphi aceitasse este novo campo.


Responder Citar

14/03/2006

Ullrich

Dynamic SQL Error SQL error code = 206 Column unknown At line 2, column 16.

Este erro era ocasionado pelo IBExpert, pois quando eu adicionava um novo campo na tabela, não sei por qual motivo o IBexpert escriva a linha de código desta maneira:
alter table Tabela (
add "Nome" varchar (40))


As aspas não deixavam que o delphi aceitasse este novo campo.

Para Resolver apenas retirei as aspas.
alter table Tabela (
add Nome varchar (40))


Obrigado a todos pelas dicas.


Responder Citar