ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Update pegando apenas os números.

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
ahbortolotto
Novato
Novato


Registrado: Sexta-Feira, 29 de Setembro de 2006
Mensagens: 18

MensagemEnviada: Ter Fev 27, 2007 3:27 pm    Assunto: Update pegando apenas os números. Responder com Citação

Moderadores Active-Delphi escreveu:

Tópico editado por Sufolk.
Motivo: Regras do Fórum.
Titulo Original: UPDATE PEGANDO APENAS OS NUMEROS


Boa tarde,
Preciso fazer um update pegando as informações de um campo e joga-las em outro campo, até ai, tudo tranquilo, o problema é que o campo origem é do tipo string e contém letras e números e quero jogar apenas os registros que contenham números para o outro campo.

Existe maneira de fazer isso??

Obrigado pela atenção!

André Bortolotto
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
thomazs
Moderador
Moderador


Registrado: Segunda-Feira, 1 de Março de 2004
Mensagens: 2835

MensagemEnviada: Ter Fev 27, 2007 3:54 pm    Assunto: Responder com Citação

Qual banco está usando???

Dependendo do Banco, dá pra se montar uma procedure, ou usar uma UDF ou Function... mas acho que,diretamente, num update será um pouco mais complicado.
_________________
Suporte e Consultoria em Desenvolvimento de Sistemas
Bacharel em Sistemas de Informação
Especialista em Bancos de Dados
Desenvolvimento: Clipper, Delphi, PHP, Python/Django
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
ahbortolotto
Novato
Novato


Registrado: Sexta-Feira, 29 de Setembro de 2006
Mensagens: 18

MensagemEnviada: Ter Fev 27, 2007 4:05 pm    Assunto: Responder com Citação

Então, esqueci de mencionar, mas estou usando o firebird 2.0
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
thomazs
Moderador
Moderador


Registrado: Segunda-Feira, 1 de Março de 2004
Mensagens: 2835

MensagemEnviada: Ter Fev 27, 2007 4:24 pm    Assunto: Responder com Citação

Se quiser usar uma procedure, poderia ser algo assim:

Código:
SET TERM ^ ;

CREATE PROCEDURE FAZ_UPDATE
AS
DECLARE VARIABLE VALOR VARCHAR(10);
DECLARE VARIABLE VALORN INTEGER;
begin
  FOR SELECT CODIGO FROM TAB INTO :VALOR DO BEGIN
    VALORN = CAST( VALOR AS INTEGER );
    UPDATE TAB SET OUTRO = :VALORN WHERE CODIGO = :VALOR;
    WHEN ANY DO VALORN = 0;
  END
end^

SET TERM ; ^


Nesse exemplo, TAB é a tabela, CODIGO é o valor do código que contém números e letras, e OUTRO é o campo que receberá o valor de código, caso código possua apenas números.
Como pode ver, fiz usando uma procedure. Isso ficaria mais difícil de se fazer, se fosse diretamente no UPDATE. Eu acho que teria que ser montada uma UDF ou uma procedure pra auxilio. Mas usando a procedure, como disposta acima, já faz o que você quer.
_________________
Suporte e Consultoria em Desenvolvimento de Sistemas
Bacharel em Sistemas de Informação
Especialista em Bancos de Dados
Desenvolvimento: Clipper, Delphi, PHP, Python/Django
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB