2009-06-30 18:10 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)

* harbour/contrib/rddsql/sddmy/mysqldd.c
    + added support for MySQL TIMESTAMP, DATETIME and TIME types. These
      types are mapped to @,8 and T,4 field types, and native harbour 
      timestamp type.

  * harbour/include/hbextern.ch
    + added a dozen of Harbour functions
    ; NOTE: about 120 functions are still not included into this .ch:
      SX_*(), USRRDD_*(), __DBG*(), __CLS*(), HB_COMPILE*(), etc.
This commit is contained in:
Mindaugas Kavaliauskas
2009-06-30 15:16:46 +00:00
parent d7ccd6202e
commit 22fbdfa45e
3 changed files with 87 additions and 6 deletions

View File

@@ -17,6 +17,17 @@
past entries belonging to author(s): Viktor Szakats.
*/
2009-06-30 18:10 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* harbour/contrib/rddsql/sddmy/mysqldd.c
+ added support for MySQL TIMESTAMP, DATETIME and TIME types. These
types are mapped to @,8 and T,4 field types, and native harbour
timestamp type.
* harbour/include/hbextern.ch
+ added a dozen of Harbour functions
; NOTE: about 120 functions are still not included into this .ch:
SX_*(), USRRDD_*(), __DBG*(), __CLS*(), HB_COMPILE*(), etc.
2009-06-30 13:32 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/datec.c
* added workaround for CodeGuard false bug report covered by

View File

@@ -317,7 +317,6 @@ static HB_ERRCODE mysqlOpen( SQLBASEAREAP pArea )
case MYSQL_TYPE_STRING:
case MYSQL_TYPE_VAR_STRING:
case MYSQL_TYPE_ENUM:
case MYSQL_TYPE_DATETIME:
pFieldInfo.uiType = HB_FT_STRING;
break;
@@ -332,10 +331,18 @@ static HB_ERRCODE mysqlOpen( SQLBASEAREAP pArea )
pFieldInfo.uiType = HB_FT_MEMO;
break;
/*
case MYSQL_TYPE_TIMESTAMP:
case MYSQL_TYPE_TIME:
case MYSQL_TYPE_DATETIME:
pFieldInfo.uiType = HB_FT_TIMESTAMP;
pFieldInfo.uiLen = 8;
break;
case MYSQL_TYPE_TIME:
pFieldInfo.uiType = HB_FT_TIME;
pFieldInfo.uiLen = 4;
break;
/*
case MYSQL_TYPE_YEAR:
case MYSQL_TYPE_NEWDATE:
case MYSQL_TYPE_ENUM:
@@ -386,6 +393,11 @@ static HB_ERRCODE mysqlOpen( SQLBASEAREAP pArea )
pItem = hb_itemPutDS( NULL, NULL );
break;
case HB_FT_TIMESTAMP:
case HB_FT_TIME:
pItem = hb_itemPutTDT( NULL, 0, 0 );
break;
default:
pItem = hb_itemNew( NULL );
bError = TRUE;
@@ -509,7 +521,7 @@ static HB_ERRCODE mysqlGetValue( SQLBASEAREAP pArea, USHORT uiIndex, PHB_ITEM pI
#if 0
char* pStr;
/* Do NOT trim strings */
/* Expand strings to field length */
pStr = (char*) hb_xgrab( pField->uiLen + 1 );
if ( pValue )
memcpy( pStr, pValue, ulLen );
@@ -520,7 +532,7 @@ static HB_ERRCODE mysqlGetValue( SQLBASEAREAP pArea, USHORT uiIndex, PHB_ITEM pI
pStr[ pField->uiLen ] = '\0';
hb_itemPutCRaw( pItem, pStr, pField->uiLen );
#else
/* Trim strings */
/* Do not expand strings */
if ( pValue )
hb_itemPutCL( pItem, pValue, ulLen );
else
@@ -582,6 +594,54 @@ static HB_ERRCODE mysqlGetValue( SQLBASEAREAP pArea, USHORT uiIndex, PHB_ITEM pI
break;
}
case HB_FT_TIMESTAMP:
{
char szTimeStamp[ 15 ];
szTimeStamp[ 0 ] = pValue[ 0 ];
szTimeStamp[ 1 ] = pValue[ 1 ];
szTimeStamp[ 2 ] = pValue[ 2 ];
szTimeStamp[ 3 ] = pValue[ 3 ];
szTimeStamp[ 4 ] = pValue[ 5 ];
szTimeStamp[ 5 ] = pValue[ 6 ];
szTimeStamp[ 6 ] = pValue[ 8 ];
szTimeStamp[ 7 ] = pValue[ 9 ];
szTimeStamp[ 8 ] = pValue[ 11 ];
szTimeStamp[ 9 ] = pValue[ 12 ];
szTimeStamp[ 10 ] = pValue[ 14 ];
szTimeStamp[ 11 ] = pValue[ 15 ];
szTimeStamp[ 12 ] = pValue[ 17 ];
szTimeStamp[ 13 ] = pValue[ 18 ];
szTimeStamp[ 14 ] = '\0';
hb_itemPutTS( pItem, szTimeStamp );
break;
}
case HB_FT_TIME:
{
char szTimeStamp[ 15 ];
szTimeStamp[ 0 ] = '0';
szTimeStamp[ 1 ] = '0';
szTimeStamp[ 2 ] = '0';
szTimeStamp[ 3 ] = '0';
szTimeStamp[ 4 ] = '0';
szTimeStamp[ 5 ] = '0';
szTimeStamp[ 6 ] = '0';
szTimeStamp[ 7 ] = '0';
szTimeStamp[ 8 ] = pValue[ 0 ];
szTimeStamp[ 9 ] = pValue[ 1 ];
szTimeStamp[ 10 ] = pValue[ 3 ];
szTimeStamp[ 11 ] = pValue[ 4 ];
szTimeStamp[ 12 ] = pValue[ 6 ];
szTimeStamp[ 13 ] = pValue[ 7 ];
szTimeStamp[ 14 ] = '\0';
hb_itemPutTS( pItem, szTimeStamp );
break;
}
default:
bError = TRUE;
break;

View File

@@ -589,10 +589,12 @@ EXTERNAL _DBF, DBF_GETFUNCTABLE
EXTERNAL DBFFPT, DBFFPT_GETFUNCTABLE
EXTERNAL DBFNTX, DBFNTX_GETFUNCTABLE
EXTERNAL DBFCDX, DBFCDX_GETFUNCTABLE
EXTERNAL DBFNSX, DBFNSX_GETFUNCTABLE
EXTERNAL SIXCDX, SIXCDX_GETFUNCTABLE
EXTERNAL DELIM, DELIM_GETFUNCTABLE
EXTERNAL SDF, SDF_GETFUNCTABLE
EXTERNAL DBFBLOB, DBFBLOB_GETFUNCTABLE
EXTERNAL DBFSMT
EXTERNAL DBFDBT, DBFSMT
EXTERNAL RDDSYS
@@ -715,6 +717,7 @@ EXTERNAL ORDKEYNO
EXTERNAL ORDKEYVAL
EXTERNAL ORDSETRELATION
EXTERNAL ORDSKIPUNIQUE
EXTERNAL ORDSKIPRAW
EXTERNAL ORDCOUNT
EXTERNAL ORDCUSTOM
EXTERNAL ORDFINDREC
@@ -780,6 +783,8 @@ EXTERNAL XPP_TBROWSE
EXTERNAL XPP_TBCOLUMN
EXTERNAL XPP_SLEEP
EXTERNAL BIN2U
EXTERNAL BIN2F
EXTERNAL F2BIN
EXTERNAL DBPACK
EXTERNAL DBZAP
EXTERNAL DBCOPYEXTSTRUCT
@@ -843,6 +848,7 @@ EXTERNAL HB_UTF8POKE
EXTERNAL HB_UTF8STUFF
EXTERNAL HB_UTF8SUBSTR
EXTERNAL HB_UTF8STRTRAN
EXTERNAL HB_UTF8CHR
#endif
EXTERNAL HB_ISARRAY
EXTERNAL HB_ISBLOCK
@@ -993,6 +999,8 @@ EXTERNAL HB_FIELDLEN
EXTERNAL HB_FIELDDEC
EXTERNAL HB_FIELDTYPE
EXTERNAL HB_WAEVAL
EXTERNAL HB_DBDETACH
EXTERNAL HB_DBREQUEST
EXTERNAL HB_SCRMAXROW
EXTERNAL HB_SCRMAXCOL
@@ -1010,6 +1018,8 @@ EXTERNAL HB_THREADQUITREQUEST
EXTERNAL HB_THREADWAIT
EXTERNAL HB_THREADWAITFORALL
EXTERNAL HB_THREADTERMINATEALL
EXTERNAL HB_THREADSELF
EXTERNAL HB_THREADID
EXTERNAL HB_MUTEXCREATE
EXTERNAL HB_MUTEXLOCK