nValor:=Teste1(1)
nValor:=Teste2(1)
FUNCTION Teste1(nValor)
nValor:= hb_defaultValue(nValor, Date())
RETURN Nil
FUNCTION Teste2(nValor)
hb_Default(@nValor, Date())
RETURN Nil
►Harbour 3.x | Minigui xx-x | HwGui◄ Pense nas possibilidades abstraia as dificuldades. Não corrigir nossas falhas é o mesmo que cometer novos erros. A imaginação é mais importante que o conhecimento. (Albert Einstein)
FUNCTION Teste1(nValor)
nValor:= hb_defaultValue(nValor, Date())
RETURN nValor
FUNCTION Teste2(nValor)
hb_Default(@nValor, Date())
RETURN nValor
FUNCTION Teste3(nValor)
__DefaultNIL(@nValor, Date())
RETURN nValor
►Harbour 3.x | Minigui xx-x | HwGui◄ Pense nas possibilidades abstraia as dificuldades. Não corrigir nossas falhas é o mesmo que cometer novos erros. A imaginação é mais importante que o conhecimento. (Albert Einstein)
#include "hbver.ch"
FUNCTION MAIN()
local nValor
nValor:= Teste1(1)
? nValor
nValor := Teste2(1)
? nValor
nValor := Teste3(1)
? nValor
nValor := Teste4(1)
? nValor
? "Harbour build date: " + hb_Version( HB_VERSION_BUILD_DATE_STR )
? "Major version number: " , hb_Version( HB_VERSION_MAJOR )
? "Minor version number: " , hb_Version( HB_VERSION_MINOR )
? "Revision number: " , hb_Version( HB_VERSION_RELEASE )
? "Build status: " , hb_Version( HB_VERSION_STATUS )
? "-------------------------------------------------------------------"
/**
Exibe
05/19/16
05/19/16
1
1
Harbour build date: Oct 14 2015 13:10:58
Major version number: 3
Minor version number: 2
Revision number: 0
Build status: dev
*/
RETURN NIL
*** Acrescentei essa função
#include "common.ch"
FUNCTION Teste4(nValor)
DEFAULT nValor TO Date()
RETURN nValor
Acrescentei a função Teste4 (eu uso a macro DEFAULT TO definida em common.ch, ela foi definida inicialmente por Rick Spence em um de seus livros e acabou sendo incorporada em um arquivo ch).
Creio que essas funções que vc citou estão com algum problema. Talvez se alguém testasse com uma versão mais atualizada do harbour (3.4) ela mostre o resultado esperado.
Quando vc passa um tipo de dado diferente o hb_Default irá atribuir o valor que vc definiu como default. Seria o mesmo que vc passar o NIL. Se vc definiu o padrão como Date() e passou o número 1, então a função irá aplicar o padrão (Date()).
Refiz os testes e eles confirmaram a minha suspeita, mas estou sem tempo para realizar mais alguns testes. Mas creio que seja isso mesmo.
O default é a data ou um campo do mesmo tipo: data
Como passou número 1, e não é campo data, assumiu o default.
Em outras palavras:
Se a rotina quer uma data, porque está passando número?.... rs
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2) "The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell" https://github.com/JoseQuintas/
Esse problema eu peguei em uma função corporativa, e não levei em conta que hb_default e hb_defaultvalue tem que ser do mesmo tipo, enfim sempre aprendendo.
►Harbour 3.x | Minigui xx-x | HwGui◄ Pense nas possibilidades abstraia as dificuldades. Não corrigir nossas falhas é o mesmo que cometer novos erros. A imaginação é mais importante que o conhecimento. (Albert Einstein)