Alterar tamanho do campo varchar Firebird Run Time

Firebird

20/08/2005

Alguem sabe com alterar tamanho do campo varchar
em Firebird com DBExpress.
Fiz:
ALTER TABLE NOMETABELA ADD NOMECAMPO VARCHAR(60)

deu erro.
O campo é varchar(40) quero passar para varchar(60) . Banco de dados
já em trabalho, com dados que não podem ser perdidos.

´Tudo no fim dá certo. Se não deu certo, é porque
não chegou ao fim ainda.´



[color=red:392d9d1a1d]Movido: de Delphi para Interbase/Firebird.[/color:392d9d1a1d]


Rinez

Rinez

Curtidas 0

Melhor post

Joaoshi

Joaoshi

22/08/2005

Colega,

ALTER TABLE NomeDaTabela ALTER NomeDoCampo TYPE VARCHAR(60);

Espero ter ajudado.


GOSTEI 2

Mais Respostas

Marcio.theis

Marcio.theis

20/08/2005

Uma das formas que você pode fazer isto é criar um campo auxiliar e alterar.... mais ou menos assim:

ALTER TABLE NOMETABELA
ADD NOMECAMPOAUX VARCHAR(60)
---
UPDATE TABLE NOMETABELA
SET NOMECAMPOAUX = NOMECAMPO
---
ALTER TABLE NOMETABELA
DROP NOMECAMPO
---
ALTER TABLE NOMETABELA
ADD NOMECAMPO VARCHAR(60)
---
UPDATE TABLE NOMETABELA
SET NOMECAMPO = NOMECAMPOAUX
---
ALTER TABLE NOMETABELA
DROP NOMECAMPOAUX
---


GOSTEI 0
Rinez

Rinez

20/08/2005

Prezado amigo:
Agradeço muito sua ajuda.
Não teria como, após criar o campo temporário e este campo receber
os dados do campo antigo, apagar o campo antigo e renomear o nome do campo temporário para o nome do campo antigo?
Aguardo sua resposta.
Zenir.


GOSTEI 0
Marcio.theis

Marcio.theis

20/08/2005

acredito que não tenha como... se fosse no oracle você poderia dar um modify e alterar, mas no firebird até hoje não vi nada parecido.


GOSTEI 0
Rinez

Rinez

20/08/2005

Prezado joaoshi:
Agradeço sua dica. Valeu cara. Fiz da seguinte forma:

If Application.MessageBox(´Fez Backup do Banco??´,´Confirmação´,MB_ICONQUESTION+ MB_YESNO+MB_DEFBUTTON2)=idno then exit;

try
with qprocura do begin
close;
sql.Clear;
sql.Add(´ALTER TABLE MOORC ALTER SERVICO TYPE VARCHAR(60)´);
EXECSQL;
end;
except
on e:exception do begin
showmessage(´Erro.Tamanho do Campo não alterado´+E.MESSAGE);
exit;

end;
end;
showmessage(´Tamanho do Campo alterado com sucesso´);

//******* onde qprocura é uma sqlquery do DBExpress *************
Esta dica pode ser util a outros programadores.

Aproveito, para dar os Parabéns ao ClubeDephi, pela excelente revista
e pela atenção dispensada aos programadores.
Zenir Curitiba


GOSTEI 0
Gladstone Matos

Gladstone Matos

20/08/2005


ALTER TABLE NomeDaTabela ALTER NomeDoCampo TYPE VARCHAR(60);


otimo!!
GOSTEI 0
POSTAR