bug FWAdoFieldType [urgent]

MOISES
Posts: 824
Joined: Wed Aug 22, 2007 10:09 am

bug FWAdoFieldType [urgent]

Post by MOISES »

Hi,

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

Thank you.
Last edited by MOISES on Wed Mar 25, 2020 7:21 am, edited 1 time in total.
Saludos / Regards,

FWH 20.04, Harbour 3.2.0 dev (r1909261630) y BCC 7.40
MOISES
Posts: 824
Joined: Wed Aug 22, 2007 10:09 am

Re: bug FWAdoFieldType

Post by MOISES »

function FieldTypeAdoToDbf( nType ) fails too, in Access and MYSQL.
Saludos / Regards,

FWH 20.04, Harbour 3.2.0 dev (r1909261630) y BCC 7.40
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: bug FWAdoFieldType

Post 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?
Regards

G. N. Rao.
Hyderabad, India
MOISES
Posts: 824
Joined: Wed Aug 22, 2007 10:09 am

Re: bug FWAdoFieldType

Post 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.
Saludos / Regards,

FWH 20.04, Harbour 3.2.0 dev (r1909261630) y BCC 7.40
MOISES
Posts: 824
Joined: Wed Aug 22, 2007 10:09 am

Re: bug FWAdoFieldType

Post by MOISES »

Any clue please?

Thank you.
Saludos / Regards,

FWH 20.04, Harbour 3.2.0 dev (r1909261630) y BCC 7.40
User avatar
Rick Lipkin
Posts: 2397
Joined: Fri Oct 07, 2005 1:50 pm
Location: Columbia, South Carolina USA

Re: bug FWAdoFieldType

Post 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

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

cType := Valtype( dDate )

MsgInfo( cType )
cType should = T   

 
Rick Lipkin
MOISES
Posts: 824
Joined: Wed Aug 22, 2007 10:09 am

Re: bug FWAdoFieldType

Post 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,
Saludos / Regards,

FWH 20.04, Harbour 3.2.0 dev (r1909261630) y BCC 7.40
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: bug FWAdoFieldType

Post 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.
Regards

G. N. Rao.
Hyderabad, India
MOISES
Posts: 824
Joined: Wed Aug 22, 2007 10:09 am

Re: bug FWAdoFieldType

Post by MOISES »

Thank you for your time.

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

FWH 20.04, Harbour 3.2.0 dev (r1909261630) y BCC 7.40
MOISES
Posts: 824
Joined: Wed Aug 22, 2007 10:09 am

Re: bug FWAdoFieldType

Post by MOISES »

Up, thank you.
Saludos / Regards,

FWH 20.04, Harbour 3.2.0 dev (r1909261630) y BCC 7.40
MOISES
Posts: 824
Joined: Wed Aug 22, 2007 10:09 am

Re: bug FWAdoFieldType [urgent]

Post by MOISES »

Any clue please?

Thank you.
Saludos / Regards,

FWH 20.04, Harbour 3.2.0 dev (r1909261630) y BCC 7.40
User avatar
Enrico Maria Giordano
Posts: 7355
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia
Contact:

Re: bug FWAdoFieldType [urgent]

Post by Enrico Maria Giordano »

Can we see a reduced and self-contained sample (database included) showing the problem, please?

EMG
MOISES
Posts: 824
Joined: Wed Aug 22, 2007 10:09 am

Re: bug FWAdoFieldType [urgent]

Post by MOISES »

Sure, thank you for your attention:

Code: Select all

#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

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

 
Saludos / Regards,

FWH 20.04, Harbour 3.2.0 dev (r1909261630) y BCC 7.40
Post Reply