13/11/2007, 02:59
|
| | Fecha de Ingreso: abril-2007
Mensajes: 9
Antigüedad: 17 años, 8 meses Puntos: 0 | |
Re: Problema con memcpy Aqui te dejo la parte de la funcion , en la ultima parte esta el memcpy que da el error ...
int
fch_obtenerFichasModificadas( Ficha **pt_fichas,
long *nr_fichas )
{
EXEC SQL BEGIN DECLARE SECTION;
Ficha bd_fichas[DEFAULT_ARRAYSIZE];
FichaInd bi_fichas[DEFAULT_ARRAYSIZE];
EXEC SQL END DECLARE SECTION;
int rs;
EXEC SQL DECLARE BD_PAOL_MODP CURSOR FOR
SELECT ID_FICHA,
CE_FICHA,
CT_FICHA,
TX_CALLE,
NU_VIA,
DI_RESTO,
TO_CHAR( FE_MODI_REG, 'YYYYMMDD' ),
TO_CHAR( FE_CREA_REG, 'YYYYMMDD' ),
NO_PROG_ACT,
ID_USUA_LDAP,
CT_VIA,
DE_FICHA,
'',
NO_COMERCIAL,
NC_TELEFONO,
NC_FAX
FROM TAP_FICA
WHERE CR_MODI_PRODU = '1'
AND CR_BAJA_REG = '0';
if ( !pt_fichas || !nr_fichas )
return FCH_ERRDB_RAISE( E_FCH_BADPARAM );
*pt_fichas = NULL;
*nr_fichas = 0;
EXEC SQL AT BD_MODI
OPEN BD_PAOL_MODP;
if ( SQLCODE )
return FCH_ERRDB_RAISE( E_FCH_SQL_OPENMODP );
rs = E_FCH_NONE;
do
{
memset( bd_fichas, 0, sizeof( bd_fichas ) );
EXEC SQL AT BD_MODI
FETCH BD_PAOL_MODP
INTO :bd_fichas;
if ( SQLCODE < 0 )
{
rs = FCH_ERRDB_RAISE( E_FCH_SQL_FETCHMODP );
break;
}
if ( SQLROWS - *nr_fichas == 0 )
break;
*pt_fichas = (Ficha *)
realloc( *pt_fichas, sizeof( Ficha ) * SQLROWS );
if ( !*pt_fichas )
{
rs = FCH_ERRDB_RAISE( E_FCH_SYSMEM );
break;
} memcpy( &( *pt_fichas )[ *nr_fichas ],
bd_fichas,
sizeof( Ficha ) * ( SQLROWS - *nr_fichas ) );
*nr_fichas = SQLROWS;
}
while ( !SQLCODE ); |