Error Hb_xrealloc can't reallocate memory
Publicado: Jue Abr 02, 2009 8:34 am
Hola a Todos !
Estoy migrando unos DBF's a MySql y me sale este error, ya intente
varias cosas , pero sigo con el error: hb_xrealloc can't reallocate memory
este es el codigo:
nRECS:=::oSQLCLIENTES:RECCOUNT()
::oSQLCLIENTES:GOTOP()
::oProg:nMin :=1
::oProg:nValue:=1
::oProg:nMax:=nRECS
X:=0
*AppData:oDBCCR:Execute( "START TRANSACTION")
DO WHILE !::oSQLCLIENTES:EOF()
cNUMERO:=::oSQLCLIENTES:CLIENTE_ID
WITH OBJECT ::oMensaje
:cText:='Registro '+TOSTRING(::oSQLCLIENTES:RECNO())+ ' DE '
TOSTRING(nRECS)
:Adjust()
:Update()
END WITH
::oProg:nValue:=::oProg:nValue+1
::oProg:Update()
cSelect := "insert into clientes2 set "
cSelect +=
"NOMBRECLIENTE="+VALTOSTR(::oSQLCLIENTES:NOMBRECLIENTE)+", "
cSelect +=
"NOMBRECHOFER="+VALTOSTR(::oSQLCLIENTES:NOMBRECHOFER)+","
cSelect +=
"FECNACCHOFER="+VALTOSTR(::oSQLCLIENTES:FECNACCHOFER)+","
cSelect += "EDADCHOFER="+VALTOSTR(::oSQLCLIENTES:EDADCHOFER)+","
cSelect += "DIR1CHOFER="+VALTOSTR(::oSQLCLIENTES:DIR1CHOFER)+","
cSelect += "DIR2CHOFER="+VALTOSTR(::oSQLCLIENTES:DIR2CHOFER)+","
cSelect +=
"CIUDADCHOFER="+VALTOSTR(::oSQLCLIENTES:CIUDADCHOFER)+","
cSelect +=
"ESTADOCHOFER="+VALTOSTR(::oSQLCLIENTES:ESTADOCHOFER)+","
cSelect += "TELCHOFER="+VALTOSTR(::oSQLCLIENTES:TELCHOFER)+","
cSelect +=
"LICENCIACHOFER="+VALTOSTR(::oSQLCLIENTES:LICENCIACHOFER)
AppData:cnn:Execute( cSelect)
/*
* ::oSQLCLIENTES2:FastAddNew()
::oSQLCLIENTES2:NOMBRECHOFER:=::oSQLCLIENTES:NOMBRECHOFER
::oSQLCLIENTES2:NOMBRECLIENTE:=::oSQLCLIENTES:NOMBRECLIENTE
::oSQLCLIENTES2:FECNACCHOFER:=::oSQLCLIENTES:FECNACCHOFER
::oSQLCLIENTES2:EDADCHOFER:=::oSQLCLIENTES:EDADCHOFER
::oSQLCLIENTES2:DIR1CHOFER:=::oSQLCLIENTES:DIR1CHOFER
::oSQLCLIENTES2:DIR2CHOFER:=::oSQLCLIENTES:DIR2CHOFER
::oSQLCLIENTES2:CIUDADCHOFER:=::oSQLCLIENTES:CIUDADCHOFER
::oSQLCLIENTES2:ESTADOCHOFER:=::oSQLCLIENTES:ESTADOCHOFER
::oSQLCLIENTES2:TELCHOFER:=::oSQLCLIENTES:TELCHOFER
::oSQLCLIENTES2:LICENCIACHOFER:=::oSQLCLIENTES2:LICENCIACHOF ER
::oSQLCLIENTES2:FastUpdate()
*/
nLASTID:=AppData:cnn:QueryValue("SELECT LAST_INSERT_ID()")
cSQL:="SELECT * FROM autos WHERE cliente_id="+VALTOSTR(cNUMERO)
oDS:=AppData:cnn:Query(cSQL)
IF oDS:Reccount()>0
DO WHILE oDS:CLIENTE_ID=cNUMERO .AND. !oDS:EOF()
cSelect := "insert into autos2 set "
cSelect += "CLIENTE_ID="+VALTOSTR(nLASTID)+","
cSelect += "ANO="+VALTOSTR(oDS:ANO)+","
cSelect += "MARCA="+VALTOSTR(oDS:MARCA)+","
cSelect += "MODELO="+VALTOSTR(oDS:MODELO)+","
cSelect += "SERIE="+VALTOSTR(oDS:SERIE)+","
cSelect += "PLACAS="+VALTOSTR(oDS:PLACAS)
AppData:cnn:Execute( cSelect)
/*
::oSQLAUTOS2:FastAddNew()
::oSQLAUTOS2:CLIENTE_ID:=nLASTID
::oSQLAUTOS2:ANO:=oDS:FIELDGETBYNAME('Aí‘O')
::oSQLAUTOS2:MARCA:=oDS:FIELDGETBYNAME('MARCA')
::oSQLAUTOS2:MODELO:=oDS:FIELDGETBYNAME('MODELO')
::oSQLAUTOS2:SERIE:=oDS:FIELDGETBYNAME('SERIE')
::oSQLAUTOS2:PLACAS:=oDS:FIELDGETBYNAME('PLACAS')
::oSQLAUTOS2:FastUpdate()
*/
oDS:Skip()
ENDDO
ENDIF
HB_GCALL(.T.) <=== puse este linea , aver si asi ,pero sigue igual
oDS:Close()
::oSQLCLIENTES:SKIP()
ENDDO
Lo usaba primero con FastAddnew() y FastUpdate() y
Lo hice al estilo Insert y de todas maneras , es el mismo error.
rebasando los 14900 registros procesados sale este error.
Saludos....
--
Estoy migrando unos DBF's a MySql y me sale este error, ya intente
varias cosas , pero sigo con el error: hb_xrealloc can't reallocate memory
este es el codigo:
nRECS:=::oSQLCLIENTES:RECCOUNT()
::oSQLCLIENTES:GOTOP()
::oProg:nMin :=1
::oProg:nValue:=1
::oProg:nMax:=nRECS
X:=0
*AppData:oDBCCR:Execute( "START TRANSACTION")
DO WHILE !::oSQLCLIENTES:EOF()
cNUMERO:=::oSQLCLIENTES:CLIENTE_ID
WITH OBJECT ::oMensaje
:cText:='Registro '+TOSTRING(::oSQLCLIENTES:RECNO())+ ' DE '
TOSTRING(nRECS)
:Adjust()
:Update()
END WITH
::oProg:nValue:=::oProg:nValue+1
::oProg:Update()
cSelect := "insert into clientes2 set "
cSelect +=
"NOMBRECLIENTE="+VALTOSTR(::oSQLCLIENTES:NOMBRECLIENTE)+", "
cSelect +=
"NOMBRECHOFER="+VALTOSTR(::oSQLCLIENTES:NOMBRECHOFER)+","
cSelect +=
"FECNACCHOFER="+VALTOSTR(::oSQLCLIENTES:FECNACCHOFER)+","
cSelect += "EDADCHOFER="+VALTOSTR(::oSQLCLIENTES:EDADCHOFER)+","
cSelect += "DIR1CHOFER="+VALTOSTR(::oSQLCLIENTES:DIR1CHOFER)+","
cSelect += "DIR2CHOFER="+VALTOSTR(::oSQLCLIENTES:DIR2CHOFER)+","
cSelect +=
"CIUDADCHOFER="+VALTOSTR(::oSQLCLIENTES:CIUDADCHOFER)+","
cSelect +=
"ESTADOCHOFER="+VALTOSTR(::oSQLCLIENTES:ESTADOCHOFER)+","
cSelect += "TELCHOFER="+VALTOSTR(::oSQLCLIENTES:TELCHOFER)+","
cSelect +=
"LICENCIACHOFER="+VALTOSTR(::oSQLCLIENTES:LICENCIACHOFER)
AppData:cnn:Execute( cSelect)
/*
* ::oSQLCLIENTES2:FastAddNew()
::oSQLCLIENTES2:NOMBRECHOFER:=::oSQLCLIENTES:NOMBRECHOFER
::oSQLCLIENTES2:NOMBRECLIENTE:=::oSQLCLIENTES:NOMBRECLIENTE
::oSQLCLIENTES2:FECNACCHOFER:=::oSQLCLIENTES:FECNACCHOFER
::oSQLCLIENTES2:EDADCHOFER:=::oSQLCLIENTES:EDADCHOFER
::oSQLCLIENTES2:DIR1CHOFER:=::oSQLCLIENTES:DIR1CHOFER
::oSQLCLIENTES2:DIR2CHOFER:=::oSQLCLIENTES:DIR2CHOFER
::oSQLCLIENTES2:CIUDADCHOFER:=::oSQLCLIENTES:CIUDADCHOFER
::oSQLCLIENTES2:ESTADOCHOFER:=::oSQLCLIENTES:ESTADOCHOFER
::oSQLCLIENTES2:TELCHOFER:=::oSQLCLIENTES:TELCHOFER
::oSQLCLIENTES2:LICENCIACHOFER:=::oSQLCLIENTES2:LICENCIACHOF ER
::oSQLCLIENTES2:FastUpdate()
*/
nLASTID:=AppData:cnn:QueryValue("SELECT LAST_INSERT_ID()")
cSQL:="SELECT * FROM autos WHERE cliente_id="+VALTOSTR(cNUMERO)
oDS:=AppData:cnn:Query(cSQL)
IF oDS:Reccount()>0
DO WHILE oDS:CLIENTE_ID=cNUMERO .AND. !oDS:EOF()
cSelect := "insert into autos2 set "
cSelect += "CLIENTE_ID="+VALTOSTR(nLASTID)+","
cSelect += "ANO="+VALTOSTR(oDS:ANO)+","
cSelect += "MARCA="+VALTOSTR(oDS:MARCA)+","
cSelect += "MODELO="+VALTOSTR(oDS:MODELO)+","
cSelect += "SERIE="+VALTOSTR(oDS:SERIE)+","
cSelect += "PLACAS="+VALTOSTR(oDS:PLACAS)
AppData:cnn:Execute( cSelect)
/*
::oSQLAUTOS2:FastAddNew()
::oSQLAUTOS2:CLIENTE_ID:=nLASTID
::oSQLAUTOS2:ANO:=oDS:FIELDGETBYNAME('Aí‘O')
::oSQLAUTOS2:MARCA:=oDS:FIELDGETBYNAME('MARCA')
::oSQLAUTOS2:MODELO:=oDS:FIELDGETBYNAME('MODELO')
::oSQLAUTOS2:SERIE:=oDS:FIELDGETBYNAME('SERIE')
::oSQLAUTOS2:PLACAS:=oDS:FIELDGETBYNAME('PLACAS')
::oSQLAUTOS2:FastUpdate()
*/
oDS:Skip()
ENDDO
ENDIF
HB_GCALL(.T.) <=== puse este linea , aver si asi ,pero sigue igual
oDS:Close()
::oSQLCLIENTES:SKIP()
ENDDO
Lo usaba primero con FastAddnew() y FastUpdate() y
Lo hice al estilo Insert y de todas maneras , es el mismo error.
rebasando los 14900 registros procesados sale este error.
Saludos....
--