diff --git a/harbour/source/rdd/dbf1.c b/harbour/source/rdd/dbf1.c index b6acdc55d9..d5a5657e59 100644 --- a/harbour/source/rdd/dbf1.c +++ b/harbour/source/rdd/dbf1.c @@ -1248,6 +1248,17 @@ ERRCODE hb_dbfPutValue( DBFAREAP pArea, USHORT uiIndex, PHB_ITEM pItem ) else uiError = EDBF_DATATYPE; } + // Must precede HB_IS_NUMERIC() because a DATE is also a NUMERIC. (xHarbour) + else if( HB_IS_DATE( pItem ) ) + { + if( pField->uiType == HB_IT_DATE ) + { + hb_itemGetDS( pItem, szBuffer ); + memcpy( pArea->pRecord + pArea->pFieldOffset[ uiIndex ], szBuffer, 8 ); + } + else + uiError = EDBF_DATATYPE; + } else if( HB_IS_NUMERIC( pItem ) ) { if( pField->uiType == HB_IT_LONG ) @@ -1297,16 +1308,6 @@ ERRCODE hb_dbfPutValue( DBFAREAP pArea, USHORT uiIndex, PHB_ITEM pItem ) else uiError = EDBF_DATATYPE; } - else if( HB_IS_DATE( pItem ) ) - { - if( pField->uiType == HB_IT_DATE ) - { - hb_itemGetDS( pItem, szBuffer ); - memcpy( pArea->pRecord + pArea->pFieldOffset[ uiIndex ], szBuffer, 8 ); - } - else - uiError = EDBF_DATATYPE; - } else if( HB_IS_LOGICAL( pItem ) ) { if( pField->uiType == HB_IT_LOGICAL ) @@ -1680,6 +1681,14 @@ ERRCODE hb_dbfInfo( DBFAREAP pArea, USHORT uiIndex, PHB_ITEM pItem ) case DBI_MEMOEXT: hb_itemPutC( pItem, DBF_MEMOEXT ); break; + + case DBI_FULLPATH: + hb_itemPutC( pItem, pArea->szDataFileName); + break; + + case DBI_SHARED: + hb_itemPutL( pItem, pArea->fShared ); + break; } return SUCCESS;