Alterar tamanho do campo varchar Firebird Run Time
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]
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
Curtidas 0
Melhor post
Joaoshi
22/08/2005
Colega,
ALTER TABLE NomeDaTabela ALTER NomeDoCampo TYPE VARCHAR(60);
Espero ter ajudado.
ALTER TABLE NomeDaTabela ALTER NomeDoCampo TYPE VARCHAR(60);
Espero ter ajudado.
GOSTEI 2
Mais Respostas
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
---
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
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.
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
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
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
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
20/08/2005
ALTER TABLE NomeDaTabela ALTER NomeDoCampo TYPE VARCHAR(60);
otimo!!
GOSTEI 0