Boa noite amigos, hoje me deparei com um erro que não acontecia na versão anterior do MYSQL o erro e o seguinte, antes podia gravar um campo TIME vazio.
essa validação ocorreu depois que atualizei o MYSQL é ele não aceita mais grava vazio. “MySQLConecta : Error executing query: Incorrect time value: ‘’ for column ‘COMOD_HR_SAIDA’ at row 1.”
Amigos, estou passando o campo vazio “”
Outra coisa a atualização não foi do 4 pra o 5 Só foi a realese da 5.5.27 para 5.5.29
e o pior que ate campos Integer e Decimal, Ta dando erro.
olha a estrutura
CREATE TABLE IF NOT EXISTS `iHotel`.`VEND_COMODATO` (
`COMOD_PK` INT NOT NULL AUTO_INCREMENT ,
`QUAR_PK` INT NULL ,
`CLIE_PK` INT NULL ,
`COMOD_DT_ENTRADA` DATE NULL ,
`COMOD_PREVISAO_SAIDA` DATE NULL ,
`COMOD_DT_SAIDA` DATE NULL ,
`COMOD_HR_ENTRADA` TIME NULL ,
`COMOD_HR_SAIDA` TIME NULL ,
`COMOD_ESTADIA` INT NULL ,
`COMOD_SITUACAO` VARCHAR(10) NULL COMMENT 'COMODATO;RESERVADO/FECHADO/CANCELADO' ,
`COMOD_VALOR_DIARIA` DECIMAL(9,2) NULL DEFAULT 0 ,
`COMOD_VALOR_ADIANTADO` DECIMAL(9,2) NULL DEFAULT 0 ,
`COMOD_ACRESCIMO` DECIMAL(9,2) NULL DEFAULT 0 ,
`COMOD_DESCONTO` DECIMAL(9,2) NULL DEFAULT 0 ,
`COMOD_TOTAL` DECIMAL(9,2) NULL DEFAULT 0 ,
`COMOD_SOBRE_VIAGEM` TEXT NULL ,
`COMOD_OBS` TEXT NULL ,
`COMOD_N_ADULTOS` INT NULL ,
`COMOD_N_CRIANCAS` INT NULL ,
`COMOD_REQUERIMENTOS` VARCHAR(250) NULL ,
`COMOD_PK_TRANSF` INT NULL ,
`COMOD_DATACADA` DATE NULL ,
`COMOD_HORACADA` TIME NULL ,
PRIMARY KEY (`COMOD_PK`) ,
INDEX `PROD_INDEX_PADRAO` (`CLIE_PK` ASC, `COMOD_TOTAL` ASC) ,
INDEX `fk_VEND_COMODATO_CDTR_CLIENTE1_idx` (`CLIE_PK` ASC) ,
INDEX `fk_VEND_COMODATO_CDTR_QUARTO1_idx` (`QUAR_PK` ASC) ,
CONSTRAINT `fk_VEND_COMODATO_CDTR_CLIENTE1`
FOREIGN KEY (`CLIE_PK` )
REFERENCES `iHotel`.`CDTR_CLIENTE` (`CLIE_PK` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_VEND_COMODATO_CDTR_QUARTO1`
FOREIGN KEY (`QUAR_PK` )
REFERENCES `iHotel`.`CDTR_QUARTO` (`QUAR_PK` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
Cara, se vc esta passando vazio ("") vai rolar erro de formatação.
Vazio ("") e nulo são diferentes.
O campo criado permite nulo, mas por ser TIME, ele deve obedecer a uma formatação (provavelmente “HH:mm:ss”).
Ao enviar vazio ("") vc n esta obedecendo a formatação.
Envie NULL, não vazio.
Existe uma forma de configurar o MySQL a fazer valores vazios("") se tornarem NULL.
Confesso que n lembro como fazer isso, mas uma pesquisa no Google deve matar fácil.
Na minha opinião a solução é simples, envie NULL, não vazio.
Tente ae.
[quote=BrunoFurtado]Cara, se vc esta passando vazio ("") vai rolar erro de formatação.
Vazio ("") e nulo são diferentes.
O campo criado permite nulo, mas por ser TIME, ele deve obedecer a uma formatação (provavelmente “HH:mm:ss”).
Ao enviar vazio ("") vc n esta obedecendo a formatação.
Envie NULL, não vazio.
Existe uma forma de configurar o MySQL a fazer valores vazios("") se tornarem NULL.
Confesso que n lembro como fazer isso, mas uma pesquisa no Google deve matar fácil.
Na minha opinião a solução é simples, envie NULL, não vazio.
Tente ae.[/quote]
Compreendo acabei de fazer esse teste e passei NULL ai rodou 100%, sobre a versão anterior talvez ele ficou configurado para ficar NULL quando vazio automaticamente.