Ladinilson Posted November 14, 2017 Report Share Posted November 14, 2017 (edited) Boa tarde caros, Uso a SQLRDD em meu programas e me deparei com um problema que não encontrei no Google a solução. Um campo do tipo DATE tem como vazio (ou nulo) o "(Null)" quando esta vazio e os que estão com data queria mudar para vazio (ou Null), o fato é que não funciona nenhuma das maneiras que fiz para mudar este tipo de campo como: Arquivo->data_pesq := CTOD(" / / ") Arquivo->data_pesq := Null Arquivo->data_pesq := 'Null' Nenhuma funciona e as duas últimas da erro por uma variável não existente e tipo inválido (devido ser caracter). Alguém já se deparou com esta situação? Obrigado Edited November 14, 2017 by Ladinilson Erros na digitação Quote Link to comment Share on other sites More sharing options...
sistem Posted November 14, 2017 Report Share Posted November 14, 2017 "0000-00-00" Quote Link to comment Share on other sites More sharing options...
Ladinilson Posted November 14, 2017 Author Report Share Posted November 14, 2017 "0000-00-00" Também não funciona meu caro. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted November 14, 2017 Report Share Posted November 14, 2017 Tente: Dtos( dData ), "@R 9999-99-99" ) Quote Link to comment Share on other sites More sharing options...
sistem Posted November 14, 2017 Report Share Posted November 14, 2017 mysql UPDATE clie SET dat_clie=null WHERE sr_recno=43; ou Clie->Dat_Clie :=ctod(space(8)) Quote Link to comment Share on other sites More sharing options...
kapiaba Posted November 14, 2017 Report Share Posted November 14, 2017 Ou talvez, Transform( Dtos( Date() ), "@R 9999-99-99" ) Quote Link to comment Share on other sites More sharing options...
Ladinilson Posted November 14, 2017 Author Report Share Posted November 14, 2017 Blz tentarei todas as opções! Quote Link to comment Share on other sites More sharing options...
Ladinilson Posted November 14, 2017 Author Report Share Posted November 14, 2017 Nenhuma das opções! Quote Link to comment Share on other sites More sharing options...
sistem Posted November 14, 2017 Report Share Posted November 14, 2017 amigo tb uso sqlrdd e testei assim => Dat_Clie := ctod(space(8)) o campo dat_clie que tinha uma valor de data passou a ser null nao seria isto? Quote Link to comment Share on other sites More sharing options...
Ladinilson Posted November 14, 2017 Author Report Share Posted November 14, 2017 Isso mesmo meu caro, mas o CTOD(SPACE(8)) não funciona. Encontrei diversas discussões sobre este assunto nas pesquisas e desenvolvedores de outras linguagens também tiveram dificuldade Na página do MySQL não diz nada como referência. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted November 14, 2017 Report Share Posted November 14, 2017 Veja essa se ajuda: https://github.com/JoseQuintas/JoseQuintas/commit/05a30292fa50cfb9994faa30c12dbebf3e2d58e0 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted November 14, 2017 Report Share Posted November 14, 2017 Ou: STRTRAN( hb_Dtoc( ctod(""), "YYYY-MM-DD" )," ","0") Quote Link to comment Share on other sites More sharing options...
evandro Posted November 16, 2017 Report Share Posted November 16, 2017 Olá, A query sql funciona com certeza:UPDATE clie SET dat_clie=null WHERE sr_recno=43; Quote Link to comment Share on other sites More sharing options...
Ladinilson Posted November 16, 2017 Author Report Share Posted November 16, 2017 Ok Vou testar novamente... Obrigado Quote Link to comment Share on other sites More sharing options...
Marca Posted November 16, 2017 Report Share Posted November 16, 2017 Ladinilson. Verifique se no campo data q. você esta utilizando a opção Not Null. Verifique se ela esta marcada Quote Link to comment Share on other sites More sharing options...
aferra Posted November 16, 2017 Report Share Posted November 16, 2017 bueno, eu utilizo assim e vai de boa. (tdolphin) Arquivo->data_pesq := CTOD(" ") agora tb uso assim qdo o de cima não vai Arquivo->data_pesq := ClipValue2SQL( CTOD(" ") ) na tdolphin tem esse comando, tentei lembrar da sqlrdd mas... dê uma olhada no manual Quote Link to comment Share on other sites More sharing options...
evandro Posted November 16, 2017 Report Share Posted November 16, 2017 Olá, A query que mencionei só não funcionará se o campo estiver marcado com not null. Quote Link to comment Share on other sites More sharing options...
Jorge Andrade Posted November 16, 2017 Report Share Posted November 16, 2017 Ladinilson, vc tentou gravar utilizando qualquer gerenciador do MySql? Aproveita e testa o tipo do campo. []s, Quote Link to comment Share on other sites More sharing options...
HASA Posted April 6, 2023 Report Share Posted April 6, 2023 Em 16/11/2017 at 10:21, Ladinilson disse: Ok Vou testar novamente... Obrigado Boa tarde, estou migrando dados com o mysql 8 e está acontecendo exatamente isso NÃO vai todas essas combinações e outras doidas que fiz, alguém conseguiu? HASA Quote Link to comment Share on other sites More sharing options...
HASA Posted April 6, 2023 Report Share Posted April 6, 2023 Boa tarde, completando eu estou recendo o seguinte erro Incorrect date value, tentei: "0000-00-00", "00000000", "", "NULL", "null" mesmo erro em todas a vezes, campo criado assim: data_ultima_compra date DEFAULT NULL. Quote Link to comment Share on other sites More sharing options...
Theotokos Posted April 6, 2023 Report Share Posted April 6, 2023 DEFAULT NULL : erro aqui acho kkkkk tira default null Quote Link to comment Share on other sites More sharing options...
HASA Posted April 6, 2023 Report Share Posted April 6, 2023 Não está correto o campo é criado certinho, o problema é no insert, mas tenho uma pista, tenho que passar NULL sem as aspas, tentando. HASA Quote Link to comment Share on other sites More sharing options...
HASA Posted April 6, 2023 Report Share Posted April 6, 2023 Boa tarde, Pessoal mas como monto o envio desse NULL, tentei com Macro e tbm não deu exemplo: cNULL="NULL" cSql := "INSERT INTO contador ( `id_contador`, `nome`, `dtcadastro` ) " +; "VALUES ( '1' , '"+; ALLTRIM( D_CONTAB->NOME ) +"' , '"+; IF( CTOD( D_CONTAB->DTCADASTRO ), &cNULL, Data_sql( D_CONTAB->DTCADASTRO ) ) +"' ); " Da erro: Erro BASE/1003 Vari vel nÆo existe: NULL /* Executa Query */ oQuery := oServer:Query( cSql ) Não estou sabendo como enviar esse NULL, se eu coloco "NULL", para na execução da linha cSql, mas ao executar do o erro acima. HASA Quote Link to comment Share on other sites More sharing options...
alex2002 Posted April 7, 2023 Report Share Posted April 7, 2023 Olá amigo. Tente: cSql := "INSERT INTO contador ( 'id_contador', 'nome', 'dtcadastro' ) " cSql += "VALUES (" cSql += " '1', '"+ALLTRIM( D_CONTAB->NOME ) +"', " if empty( D_CONTAB->DTCADASTRO ) cSql += "NULL" else cSql += " '"+Data_sql( D_CONTAB->DTCADASTRO )+"' " endif cSql += " );" Um abraço, Alexandre Pereira Quote Link to comment Share on other sites More sharing options...
HASA Posted April 7, 2023 Report Share Posted April 7, 2023 Boa tarde, Alexandre amanhã vou testar, acredito que assim dara certo, muito obridago e Boa Pascoa. HASA Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.