Correccion de errores en GdataTable, en len y en conversion a dbf

master
Gerardo 2020-05-28 00:21:25 +02:00
parent 2b48c1f27f
commit 62033526b6
2 changed files with 6 additions and 3 deletions

View File

@ -269,9 +269,9 @@ int GdataTable::nRow()
case(Tint64): case(Tint64):
return((Cgarray<__int64>*)buf[i])->n; return((Cgarray<__int64>*)buf[i])->n;
case(Tstring): case(Tstring):
return((Cgarray<char>*)buf[i])->n; return((Cgarray<char>*)buf[i])->n/ colm[i].nb;
case(Tbin): case(Tbin):
return((Cgarray<char>*)buf[i])->n; return((Cgarray<char>*)buf[i])->n / colm[i].nb;
default: default:
break; break;
} }

View File

@ -58,7 +58,7 @@ bool ManagerDbfGdataTable::DbfSetColm( char* name, BYTE type, int size )
switch(type) switch(type)
{ {
case(DBF_TYPE_DATA_STR): case(DBF_TYPE_DATA_STR):
//size++; size++;
t = GdataTable::Tstring; t = GdataTable::Tstring;
break; break;
case(DBF_TYPE_DATA_I64): case(DBF_TYPE_DATA_I64):
@ -161,6 +161,7 @@ bool ManagerDbfGdataTable::DbfGetColm(int icolm, char* name, BYTE *type, int *si
//pilla tipo---------------------- //pilla tipo----------------------
static BYTE t[GdataTable::Tntip]={0,DBF_TYPE_DATA_BOOL,DBF_TYPE_DATA_I, DBF_TYPE_DATA_D,DBF_TYPE_DATA_I64, DBF_TYPE_DATA_STR, DBF_TYPE_DATA_BIN } ; static BYTE t[GdataTable::Tntip]={0,DBF_TYPE_DATA_BOOL,DBF_TYPE_DATA_I, DBF_TYPE_DATA_D,DBF_TYPE_DATA_I64, DBF_TYPE_DATA_STR, DBF_TYPE_DATA_BIN } ;
*type = t[_dt->getType(icolm)]; *type = t[_dt->getType(icolm)];
*ndecimal = MAX_NDECIMALS; *ndecimal = MAX_NDECIMALS;
//copia segura de nombre------------------ //copia segura de nombre------------------
int i =0; int i =0;
@ -173,6 +174,8 @@ bool ManagerDbfGdataTable::DbfGetColm(int icolm, char* name, BYTE *type, int *si
} }
name[i]=0; name[i]=0;
*size = _dt->getSizeASCII(icolm); *size = _dt->getSizeASCII(icolm);
if (_dt->getType(icolm) == GdataTable::Tstring)
*size = *size - 1;
return true; return true;
} }
//*************************************************************************** //***************************************************************************