Problema com modificar tabela.
Ola pessoal, estou com um problema com alteração de tabela, é o seguinte:
Toda vez que altero uma tabela, acrecentando um campo por exemplo, não consigo fazer mais a conexão no Delphi, sempre da um tal de erro de SQL apresentando o novo campo como culpado.
Para resolver este problema tive que apagar a tabela ´drop table ...´ e criala novamente. O trabalho é que se alguma outra tabela tiver chave estrangeira, tenho que apagar, e depois criar tudo novamente, da um trabalho...
Alguem sabe como resolver este pequeno probleminha?
Estou usando o FireBird, IBExpert e no delphi o componente IBDataSet.
Toda vez que altero uma tabela, acrecentando um campo por exemplo, não consigo fazer mais a conexão no Delphi, sempre da um tal de erro de SQL apresentando o novo campo como culpado.
Para resolver este problema tive que apagar a tabela ´drop table ...´ e criala novamente. O trabalho é que se alguma outra tabela tiver chave estrangeira, tenho que apagar, e depois criar tudo novamente, da um trabalho...
Alguem sabe como resolver este pequeno probleminha?
Estou usando o FireBird, IBExpert e no delphi o componente IBDataSet.
Ullrich
Curtidas 0
Respostas
Thomaz_prg
06/03/2006
Verifique se o campo que você criou está listado no Fields Editos do IBDataset. Se não estiver, basta adicioná-lo.
GOSTEI 0
Ullrich
06/03/2006
Acho que pode ser isso mesmo, como vc faz para adicionar o novo campono Fields Editos?
GOSTEI 0
Thomaz_prg
06/03/2006
Dê 2 cliques sobre o IBDataset, clique com o botão direito sobre a tela que abrir e clique em Add Field. Então irá aparecer uma lista com os novos campos. Selecione todos e clique em Ok.
Apenas tome cuidado, pois ao adicionar os novos campos, a sintaxe SQL contida nas expressões de Insert, Delete, Update e Refresh, terão que ser alteradas também.
Apenas tome cuidado, pois ao adicionar os novos campos, a sintaxe SQL contida nas expressões de Insert, Delete, Update e Refresh, terão que ser alteradas também.
GOSTEI 0
Ullrich
06/03/2006
Ao ativar a tabela o seguinte erro ocorre.
attempted update of read-only column.
attempted update of read-only column.
GOSTEI 0
Thomaz_prg
06/03/2006
Faça o seguinte, exclua todos os campos do Fields Editor (Selecione os campos e pressione Delete). Clique com o Botão direito e Clique em Add All Fields. Após os campos terem sido adicionados, feche o Fields Editor, clique com o botão direito do mouse sobre seu IbDataset, clique em Dataset Editor. Na coluna da direita, deixe selecionado apenas o (s)campo(s) que são chave primária (ou unica) na sua tabela, ou seja, os campos que irão na cláusula Where. Na coluna da esquerda selecione todos os campos, menos os que estão selecionados na coluna da direita (a menos que você queira que eles também possam ser alterados). Feito isso, clique sobre o botão Generate Sql, e clique em Ok. Depois veja se o erro persiste.
GOSTEI 0
Ullrich
06/03/2006
Na coluna da direita, deixe selecionado apenas o (s)campo(s) que são chave primária (ou unica) na sua tabela, ou seja, os campos que irão na cláusula Where. Na coluna da esquerda selecione todos os campos, menos os que estão selecionados na coluna da direita (a menos que você queira que eles também possam ser alterados).
Desta forma funcionou, muito obrigado.
Desta forma funcionou, muito obrigado.
GOSTEI 0
Ullrich
06/03/2006
clique em Dataset Editor. Na coluna da direita, deixe selecionado apenas o (s)campo(s) que são chave primária (ou unica) na sua tabela, ou seja, os campos que irão na cláusula Where. Na coluna da esquerda selecione todos os campos, menos os que estão selecionados na coluna da direita (a menos que você queira que eles também possam ser alterados).
Desta forma funcionou, muito obrigado. :lol:
GOSTEI 0