DOUBLE NO MYSQL 5.1

KILLER 21/06/2010 10:34:31
#345347
Pessoal estou tendo um problema com o campo double no mysql 5, vou tentar explicar

crio uma tabela assim:
CREATE TABLE TESTE (
CodAuto mediumint(8) unsigned NOT NULL auto_increment,
CodProduto mediumint(8) unsigned default NULL,
Produto varchar(60) default NULL,
Quant double(7,6) default [ô]0.000000[ô],
CodComp mediumint(8) unsigned default [ô]0[ô],
Valor double(7,6) default [ô]0.000000[ô],
ValorTotal double(7,6) default [ô]0.000000[ô],
PRIMARY KEY (CodAuto)
)

mas quando insiro essa linha:

[Ô]INSERT INTO t063 VALUES([Ô]5[Ô], [Ô]1649[Ô], [Ô]MICRO DUEX ATOM 330/1G/160/MOUSE/TEC/CX SOM/GRAVADOR[Ô], [Ô]1.000000[Ô], [Ô]1653[Ô], [Ô]442.000000[Ô], [Ô]442.000000[Ô]);[Ô]

da esse erro:

Out of range value for column [ô]Valor[ô] at row 1

é estranho pq no mysql 4 funcionava certinho, se alguém puder me ajudar agradeço.
JONATHANSTECKER 21/06/2010 10:52:54
#345351
Resposta escolhida
Quando inserir, não insira o primeiro valor, pois ele é autoincrement.

[Ô]INSERT INTO t063 VALUES([Ô]1649[Ô], [Ô]MICRO DUEX ATOM 330/1G/160/MOUSE/TEC/CX SOM/GRAVADOR[Ô], [Ô]1.000000[Ô], [Ô]1653[Ô], [Ô]442.000000[Ô], [Ô]442.000000[Ô]);[Ô]

Veja se funciona.
KILLER 21/06/2010 11:01:07
#345353
deu a mesma coisa, o problema é no campo [ô]Valor[ô], se eu colocar assim:

[Ô]INSERT INTO t063 VALUES([Ô]1649[Ô], [Ô]MICRO DUEX ATOM 330/1G/160/MOUSE/TEC/CX SOM/GRAVADOR[Ô], [Ô]1.000000[Ô], [Ô]1653[Ô], [Ô]1.000000[Ô], [Ô]1.000000[Ô]);[Ô]

funciona.
JONATHANSTECKER 21/06/2010 11:11:21
#345356
DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]

Um número de ponto flutuante de tamanho normal (dupla-precisão). Valores permitidos estão entre -1.7976931348623157E+308 e -2.2250738585072014E-308, 0 e entre 2.2250738585072014E-308 e 1.7976931348623157E+308. Se UNSIGNED for especificado, valores negativos não são permitidos. O M é a largura do display e o D é número de casa decimais. DOUBLE sem argumento ou FLOAT(X) onde 25 <= X <= 53 são números de ponto flutuante de dupla-precisão.

Tente aumentar o valor de M.
ADHEL 21/06/2010 11:37:00
#345357
Killer bom dia, tudo bem?
Estava sumido?
Killer antes de mais nada você sabe bem que sou iniciante,portanto se eu disser alguma besteira me DESCULPE.
Eu tenho uma tabela parecida com a sua e o CAMPO VALOR na minha está como VARCHAR e está funcionando perfeitamente.Tambem estou utilizando o mysql 5.1
Até mais
FOXMAN 21/06/2010 12:15:12
#345364
Killer,

Citação:

:
DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]

Um número de ponto flutuante de tamanho normal (dupla-precisão). Valores permitidos estão entre -1.7976931348623157E+308 e -2.2250738585072014E-308, 0 e entre 2.2250738585072014E-308 e 1.7976931348623157E+308. Se UNSIGNED for especificado, valores negativos não são permitidos. O M é a largura do display e o D é número de casa decimais. DOUBLE sem argumento ou FLOAT(X) onde 25 <= X <= 53 são números de ponto flutuante de dupla-precisão.

Tente aumentar o valor de M.



O JONATHANSTECKER está correto.

Basta aumentar o Valor de M que seu problema estará resovlido.
KILLER 21/06/2010 13:22:50
#345372
pessoal eu aumentei aqui e funcionou, mais no mysql 4 estava assim e funcionava certinho, voces sabem porque não funciona mais?

JONATHANSTECKER você disse que M é a largura do Display mais se eu criar um compo assim Double(5,2) ele deveria aceitar o valor [Ô]99999,99[Ô] estou certo?

ADHEL tudo bem? eu não sumi não, eu continuo acompanhando o forum, mais estava meio sem tempo, sobre o VARCHAR eu não gosto de usar para valor não,
pois pode dar mais bugs, mais obrigado pela sugestão.

pessoal obrigado pelas respostas.
JONATHANSTECKER 21/06/2010 13:43:04
#345374
Não Killer, o M seria o tamanho total do Display.
Ex: Double(5,2) = 123,45
Double(7,6) = 1,234567

Em relação ao motivo de o MySQL na versão 4 funcionar, não sei te dizer não.
RODRECH 21/06/2010 13:56:21
#345376
O mysql 4 não dava erro, ignorando os valores que não contemplavam o tamanho, esse erro foi corrigido a partir da versão 5.0 do mysql, informando que está tentando gravar um valor fora da faixa do tamanho do campo.
KILLER 21/06/2010 13:57:52
#345377
muito obrigado JONATHANSTECKER entendi
Tópico encerrado , respostas não são mais permitidas