Page 1 of 2

bug FWAdoFieldType [urgent]

PostPosted: Thu Mar 19, 2020 11:55 am
by MOISES
Hi,

This function with DateTime fields wrongly retrieves such field type as D, but should be T in Access.

Thank you.

Re: bug FWAdoFieldType

PostPosted: Thu Mar 19, 2020 12:48 pm
by MOISES
function FieldTypeAdoToDbf( nType ) fails too, in Access and MYSQL.

Re: bug FWAdoFieldType

PostPosted: Thu Mar 19, 2020 2:19 pm
by nageswaragunupudi
MOISES wrote:Hi,
but should be T in Access.

What is the field type in Acess for Only Date in Access? Field type that does not contain time part?
If a programmer wants to store only Dates what field type he has to choose other than DateTime?

Re: bug FWAdoFieldType

PostPosted: Thu Mar 19, 2020 3:24 pm
by MOISES
The field is defined in Access as DateTime, but if it only stores a date FWAdoFieldType returns D.

If it also has date and time, FWAdoFieldType returns T.

FieldTypeAdoToDbf fails alwawys.

Re: bug FWAdoFieldType

PostPosted: Sun Mar 22, 2020 6:47 pm
by MOISES
Any clue please?

Thank you.

Re: bug FWAdoFieldType

PostPosted: Mon Mar 23, 2020 1:14 pm
by Rick Lipkin
MOISES

Try this simple test on Ms Access or Ms Sql Server .. Valtype() on an ado fieldtype datetime should always equal T

Code: Select all  Expand view

dDate := oRs:Fields("Date"):Value      // assumes the ado field type = DateTime

cType := Valtype( dDate )

MsgInfo( cType )
cType should = T  

 


Rick Lipkin

Re: bug FWAdoFieldType

PostPosted: Mon Mar 23, 2020 5:18 pm
by MOISES
No, it returns "D", when the field is empty or has a date only.

"T" is returned when the field has a datetime inside.

Thank you,

Re: bug FWAdoFieldType

PostPosted: Mon Mar 23, 2020 6:02 pm
by nageswaragunupudi
MOISES wrote:Hi,

This function with DateTime fields wrongly retrieves such field type as D, but should be T in Access.

Thank you.

This function is intended for internal use.
You may not use it. Even if you use it, if you get the value is "D", then you further check if the particular value is D or T.

Re: bug FWAdoFieldType

PostPosted: Mon Mar 23, 2020 6:10 pm
by MOISES
Thank you for your time.

So, how can I get the field type as "T", irrespective of if its empty or full?

Re: bug FWAdoFieldType

PostPosted: Wed Mar 25, 2020 7:21 am
by MOISES
Up, thank you.

Re: bug FWAdoFieldType [urgent]

PostPosted: Mon Mar 30, 2020 10:59 am
by MOISES
Any clue please?

Thank you.

Re: bug FWAdoFieldType [urgent]

PostPosted: Mon Mar 30, 2020 4:17 pm
by Enrico Maria Giordano
Can we see a reduced and self-contained sample (database included) showing the problem, please?

EMG

Re: bug FWAdoFieldType [urgent]

PostPosted: Mon Mar 30, 2020 6:08 pm
by MOISES
Sure, thank you for your attention:

Code: Select all  Expand view
#include "fivewin.ch"
#include "adodef.ch"

static oCn
static cTable := "test_datetime"

//----------------------------------------------------------------------------//

function Main()

   SetGetColorFocus()
   FWNumFormat( "A", .t. )

   oCn   := FW_OpenAdoConnection( "xbrtest.mdb" )
   if oCn == nil
      ? "Connect Fail"
      return nil
   endif

   if .not. FW_AdoTableExists( cTable, oCn ) .or. ;
      MsgYesNo( "Create Table again?" )
      CreateTestTable()
   endif

   EditTable()

   oCn:Close()

return nil

//----------------------------------------------------------------------------//

function CreateTestTable()

   local aCols := { { "ITEM", "C", 10, 0 }, { "PRICE", "N", 12, 2 }, { "DATETIME", "T", 10, 0 }, { "DESCRIPTION", "C", 20, 0 } }
   local oRs

   ? "Creating Table"

   if FW_AdoTableExists( cTable, oCn )
      oCn:Execute( "DROP TABLE " + cTable )
   endif

   FWAdoCreateTable( cTable, aCols, oCn )

return nil

//----------------------------------------------------------------------------//

function EditTable()

   local oRs
   local oDlg, oFont, oBrw
   local nAppendRec   := nil

   local aStruct  := {}
   local nField   := 0
   local csql

   oRs   := FW_OpenRecordSet( oCn, cTable, adLockBatchOptimistic )


   aStruct := FWAdoStruct( oRs )
   nField      := AScan( aStruct, {|a| Upper(a[1]) == "DATETIME" } )


   cSQL     := FWAdoFieldType( oRs, nField )
   ?cSQL




   xbrowser ors fastedit








   oRs:Close()

return nil

//----------------------------------------------------------------------------//

 

Re: bug FWAdoFieldType [urgent]

PostPosted: Mon Mar 30, 2020 7:25 pm
by Enrico Maria Giordano
I get "Connect Fail".

EMG

Re: bug FWAdoFieldType [urgent]

PostPosted: Mon Mar 30, 2020 7:28 pm
by Enrico Maria Giordano
Ok, I got xbrtest.mdb from FWH samples.

EMG