TIPO DO CAMPO: TEXTO OU NUMERO AFETA NA ORDENACAO?
Bom dia!
Outro dia postei sobre qual seria a melhor maneira de armazenar uma campo de código: Texto ou número.
Uma lógica legal que sugeriram mas eu já usava era: se vc vai fazer cálculo use número, se não, use texto.
Logo, como não vou fazer cálculos com os códigos dos cadastros de clientes, utilizo o campo tipo texto.
A questão é que em uma consulta, os campos texto são ordenados desta forma:
1
11
115
2
21
224
3
4
5
6
7
771
8
Enquanto os campos numéricos são ordenados desta forma:
1
2
3
4
5
6
7
8
9
11
21
115
224
771
A pergunta é: Tem como ordenar [Ô]corretamente[Ô] este campo código, mas mantendo o tipo TEXTO??
Usando MySQL.
Outro dia postei sobre qual seria a melhor maneira de armazenar uma campo de código: Texto ou número.
Uma lógica legal que sugeriram mas eu já usava era: se vc vai fazer cálculo use número, se não, use texto.
Logo, como não vou fazer cálculos com os códigos dos cadastros de clientes, utilizo o campo tipo texto.
A questão é que em uma consulta, os campos texto são ordenados desta forma:
1
11
115
2
21
224
3
4
5
6
7
771
8
Enquanto os campos numéricos são ordenados desta forma:
1
2
3
4
5
6
7
8
9
11
21
115
224
771
A pergunta é: Tem como ordenar [Ô]corretamente[Ô] este campo código, mas mantendo o tipo TEXTO??
Usando MySQL.
Esse é o tópico onde tratamos o assunto.
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=Abrir&varID=317064&varWorld=
:)
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=Abrir&varID=317064&varWorld=
:)
Eu sempre uso Text para o campo Código. A vantagem é que posso gravar o campo já formatado. Seu problema é que você não está salvando o campo com o formato. EX
Campo código com 6 caracteres:
000112
000002
000198
Campo com dois niveis.Esse formato já define os grupos. Ex. Estoque de material para construção
01.0007 - Tubo Agua 20 mm
01.0002 - Torneira 1/2
02.0001 - Lâmpada 40w
Neste caso, os materiais do grupo 01 - Hidráulico e 02 - eletrico. Quando fazer o filtro, colocando 02, aparecerá todos materiais eletricos.
Isso é só um exemplo, mas podemos fazer para uma infinidade de situações.
Por isso que eu uso Text em código.
Para funcionar, você precisa configurar sua textbox para gravar os dados no formato apropriado. Para o primeiro exemplo:
Campo código com 6 caracteres:
000112
000002
000198
Campo com dois niveis.Esse formato já define os grupos. Ex. Estoque de material para construção
01.0007 - Tubo Agua 20 mm
01.0002 - Torneira 1/2
02.0001 - Lâmpada 40w
Neste caso, os materiais do grupo 01 - Hidráulico e 02 - eletrico. Quando fazer o filtro, colocando 02, aparecerá todos materiais eletricos.
Isso é só um exemplo, mas podemos fazer para uma infinidade de situações.
Por isso que eu uso Text em código.
Para funcionar, você precisa configurar sua textbox para gravar os dados no formato apropriado. Para o primeiro exemplo:
Private Sub Text1_LostFocus()
If Text1.Text <> [Ô][Ô] Then Text1.Text = Format(Text1.Text, [Ô]000000[Ô])
End Sub
ROBIU,
Vcs estão certos. é exatamente esse o X da questão, assim como o colega OCELOT disse: Gravar a string com um formato pré-fixado, ou seja, uma quantidade fixa de zeros.
Eu gravava a string sem formato e em seguida as retornava nos controles (grids, textbox, labels) formatando-as, mas a questão é gravar com formato no banco de dados.
Feito isso, problemas resolvidos. é só gravar no banco já com formato.
:)
Vcs estão certos. é exatamente esse o X da questão, assim como o colega OCELOT disse: Gravar a string com um formato pré-fixado, ou seja, uma quantidade fixa de zeros.
Eu gravava a string sem formato e em seguida as retornava nos controles (grids, textbox, labels) formatando-as, mas a questão é gravar com formato no banco de dados.
Feito isso, problemas resolvidos. é só gravar no banco já com formato.
:)
Tópico encerrado , respostas não são mais permitidas