TIPO DO CAMPO: TEXTO OU NUMERO AFETA NA ORDENACAO?

FBUR 08/09/2009 10:37:28
#322264
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.
FBUR 08/09/2009 11:36:29
#322281
Esse é o tópico onde tratamos o assunto.

http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=Abrir&varID=317064&varWorld=

:)
ROBIU 09/09/2009 09:21:56
#322364
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:
Private Sub Text1_LostFocus()
If Text1.Text <> [Ô][Ô] Then Text1.Text = Format(Text1.Text, [Ô]000000[Ô])
End Sub



FBUR 09/09/2009 10:56:11
#322378
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.

:)
Tópico encerrado , respostas não são mais permitidas