Error al intentar un MOVEFIRST()

Error al intentar un MOVEFIRST()

Postby Laurel » Thu Oct 09, 2008 1: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
Laurel
 
Posts: 65
Joined: Fri Oct 21, 2005 8:07 pm
Location: México

Postby Armando » Thu Oct 09, 2008 2:03 am

Laurel:

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

Code: Select all  Expand view  RUN
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
User avatar
Armando
 
Posts: 3239
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Postby Armando » Thu Oct 09, 2008 2:05 am

Laurel:

Disculpa, puse un if extra.

Code: Select all  Expand view  RUN
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
User avatar
Armando
 
Posts: 3239
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Postby Laurel » Thu Oct 09, 2008 4: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
Laurel
 
Posts: 65
Joined: Fri Oct 21, 2005 8:07 pm
Location: México

Postby Armando » Thu Oct 09, 2008 6:57 pm

Laurel:

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

Code: Select all  Expand view  RUN
   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
User avatar
Armando
 
Posts: 3239
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Postby Laurel » Fri Oct 10, 2008 3: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
Laurel
 
Posts: 65
Joined: Fri Oct 21, 2005 8:07 pm
Location: México


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 46 guests