FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Error al intentar un MOVEFIRST()
Posts: 65
Joined: Fri Oct 21, 2005 08:07 PM
Error al intentar un MOVEFIRST()
Posted: Thu Oct 09, 2008 01:40 AM

Hola a todos!

Ya hacia mucho que no me atoraba con ADO, pero ya tengo dos dias con el problema. Estoy grabando en una tabla y despues de pasar 5 veces y grabarla manda el error de:

Error description: Error adodb.recordset/16389 E_FAIL: MOVEFIRST
Args:

Ya borre la tabla y la volvia a crear, grabo todos los campos requeridos, la tabla tiene valores por default, solo tengo una llave autoincremental...

la conexion es la siguiente:

oMiConexion:=TOleAuto():New("adodb.connection")

oMiConexion:Open("Driver={MySQL ODBC 3.51 Driver};server=localhost;Port=3306;Database=test;UID=myuid;pwd=mypss";DSN=prueba;OPTION=3")

de hecho si logra grabar 5 registros pero hasta ahi ya no avanzo.

Anexo la parte del codigo en donde marca error:

     IF oRsNOACONT:RecordCount()>0
        oRsNOACONT:Movefirst()
        DO WHILE !oRsNOACONT:EOF()
           IF oRsACUMENSU:Fields('EM_CODICIA'):Value=oRsNOACONT:Fields('EM_CODICIA'):Value .AND. ;
              oRsACUMENSU:Fields('MP_CODPROC'):Value=oRsNOACONT:Fields('MP_CODPROC'):Value .AND. ;
              ALLTRIM(MAYOR)= ALLTRIM(oRsNOACONT:Fields('COD_MAY_CO'):Value) .AND. ;
              ALLTRIM(CUENTA)=ALLTRIM(oRsNOACONT:Fields('COD_CTA_CO'):Value) .AND. ;
              ALLTRIM(SUBCTA)=ALLTRIM(oRsNOACONT:Fields('COD_SUB_CO'):Value)

              oRsNOACONT:Fields('COD_IMP_CO'):Value=oRsNOACONT:Fields('COD_IMP_CO'):Value+oRsACUMENSU:Fields('AP_IMPXPER'):Value

              EXIT
           ENDIF

        oRsNOACONT:MoveNext()
        ENDDO
     ENDIF
Laurel
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Error al intentar un MOVEFIRST()
Posted: Thu Oct 09, 2008 02:03 AM
Laurel:

Los expertos recomiendan no usar RECORDCOUNT() en su lugar debes usar IFs.

IF oRsNOACONT:BOF() .AND. oRsNOACONT:EOF()
// El record set esta vacio
ELSE
    IF oRsNOACONT:MOVEFIRST()
    DO ....
        oRsNOACONT:MOVENEXT()
    ENDDO
ENDIF


Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Error al intentar un MOVEFIRST()
Posted: Thu Oct 09, 2008 02:05 AM
Laurel:

Disculpa, puse un if extra.

IF oRsNOACONT:BOF() .AND. oRsNOACONT:EOF()
// El record set esta vacio
ELSE
    oRsNOACONT:MOVEFIRST()
    DO ....
        oRsNOACONT:MOVENEXT()
    ENDDO
ENDIF


Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 65
Joined: Fri Oct 21, 2005 08:07 PM
Error al intentar un MOVEFIRST()
Posted: Thu Oct 09, 2008 04:10 PM

Armando:

Gracias por contestar... ya hice lo que me indicaste pero sigo en lo mismo... de hecho es una actualización de datos... si hay información trato de sumarle a lo que ya tiene y sigue con el error... ya me desesperé... tengo 3 días en esto e intento y no logro hacer que funcione

Saludos

Laurel
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Error al intentar un MOVEFIRST()
Posted: Thu Oct 09, 2008 06:57 PM
Laurel:

Veo que aún sigues con el switch de las DBFs :-) , trata de usar comandos
SQL, aqui te va un ejemplo:

	IF oRsOdc:EOF .AND. oRsOdc:BOF
		MsgInfo("La tabla HDRODC esta vacia !",oApp:cAplicacion)
	ELSE
		oRsOdc:MoveFirst()
		DO WHILE !  oRsOdc:EOF()
			cCmdSql	:= "UPDATE " +;
								"proyecto " +;
							"SET " +;
								"PRO_AUT = 1 " +;
							"WHERE " +;
								"PRO_PRO = " + "'" + oRsOdc:Fields("HDR_PRO"):Value + "'"
			TRY
				oApp:oCon:Execute(cCmdSql)
			CATCH oError
				MsgInfo("No pude ejecutar el comando " + cCmdSql,oApp:cAplicacion)
				EXIT
			END
			oRsOdc:MoveNext()
		ENDDO
	ENDIF


Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 65
Joined: Fri Oct 21, 2005 08:07 PM
Error al intentar un MOVEFIRST()
Posted: Fri Oct 10, 2008 03:32 AM

Funciono!!!

Muchas Gracias Armando!! ya funcionó... Lo raro es que tengo ya muchos programas que funcionan bien con oRs:Fields('micampo'):value:= oRs:Fields('micampo'):Value+9999.99 y no había tenido problema... uff

Mil gracias de nuevo :D

Laurel

Continue the discussion