Ir para conteúdo
Fórum Script Brasil
  • 0

Como Inverter A Disposiçao De Um Campo No Banco De Dados?


Guest Fausto Mlheiros

Pergunta

Guest Fausto Mlheiros

Saudações!

Meu sistema sempre manda pro banco de dados(Interbase) um campo na seguinte formação: 012007. Onde 01 é o mês e 2007 é o ano no formato integer, mas o banco de dados TEM QUE INVERTER OS CAMPOS. Pegar 012007 e gravar 200701. É possivel fazer isso no banco de dados sem mexer nos fontes do sistema?

Abraços

Fausto Malheiros

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0
Guest HDELPHI
Saudações!

Meu sistema sempre manda pro banco de dados(Interbase) um campo na seguinte formação: 012007. Onde 01 é o mês e 2007 é o ano no formato integer, mas o banco de dados TEM QUE INVERTER OS CAMPOS. Pegar 012007 e gravar 200701. É possivel fazer isso no banco de dados sem mexer nos fontes do sistema?

Abraços

Fausto Malheiros

Colega não é possivel fazer isto sem alterar os fontes, mesmo que no banco de dados este campos seja integer, voce tem que transformar o seu inteiro em string e depois separar com copy esta string, ajuntar novamente invertido e depois transformar novamente em integer e gravar no banco: ex:

a : integer; b,c : string;

begin

a := 012007;

b := copy(a,1,2);

c := copy(a,3,4);

a := strtoint(c+B);

// gravar ....

end;

Link para o comentário
Compartilhar em outros sites

  • 0

Saudações!

Meu sistema sempre manda pro banco de dados(Interbase) um campo na seguinte formação: 012007. Onde 01 é o mês e 2007 é o ano no formato integer, mas o banco de dados TEM QUE INVERTER OS CAMPOS. Pegar 012007 e gravar 200701. É possivel fazer isso no banco de dados sem mexer nos fontes do sistema?

Abraços

Fausto Malheiros

Link para o comentário
Compartilhar em outros sites

  • 0

tem sim você pode usar uma trigger!!

CREATE TRIGGER NOMETRIGGER FOR NOMETABELA
ACTIVE BEFORE INSERT POSITION 0
AS
begin
NEW.NOMECAMPO  = substring(NEW.NOMECAMPO from 3 for 4) || substring(NEW.NOMECAMPO from 1 for 2);
end

toda vez que for inserido um noo registro ele chama a trigger e formata o seu campo!

Link para o comentário
Compartilhar em outros sites

  • 0

Fausto, o NEW se refere ao registro sendo gravado no banco.

Você está ciente que este processo irá realmente "Pegar 012007 e gravar 200701", mas se você ler este campo no seu programa ele aparecerá com a nova formatação e não a que você passa na gravação?

Link para o comentário
Compartilhar em outros sites

  • 0

Micheus! Estou fazendo essa rotina agora neste instante e surgiu um porem.

Essa rotina funciona no sentido da informação Banco de Dados ---> Aplicativo. Mas e o contrario? aplicativo ---> Banco de dados? Como faço pro banco de dados inverter o campo quando o aplicativo enviar "012007"?

Fazendo isso. FECHOU, não preciso mexer em nenhuma linha de código do sistema.

Link para o comentário
Compartilhar em outros sites

  • 0
Micheus! Estou fazendo essa rotina agora neste instante e surgiu um porem.

Essa rotina funciona no sentido da informação Banco de Dados ---> Aplicativo. Mas e o contrario? aplicativo ---> Banco de dados? Como faço pro banco de dados inverter o campo quando o aplicativo enviar "012007"?

Fazendo isso. FECHOU, não preciso mexer em nenhuma linha de código do sistema.

Fausto Malheiros, foi por isto que fiz o último comentário.

Você cria a trigger para está resolver um problema, sendo que o caminho inverso você não consegue com um procedimento similar. Então, até onde eu sei, não tem jeito não, tem que mexer no código mesmo.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...