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 _ 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
Error al intentar un MOVEFIRST()
Laurel:
Los expertos recomiendan no usar RECORDCOUNT() en su lugar debes usar IFs.
Saludos
Los expertos recomiendan no usar RECORDCOUNT() en su lugar debes usar IFs.
Code: Select all
IF oRsNOACONT:BOF() .AND. oRsNOACONT:EOF()
// El record set esta vacio
ELSE
IF oRsNOACONT:MOVEFIRST()
DO ....
oRsNOACONT:MOVENEXT()
ENDDO
ENDIF
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
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Laurel:
Disculpa, puse un if extra.
Saludos
Disculpa, puse un if extra.
Code: Select all
IF oRsNOACONT:BOF() .AND. oRsNOACONT:EOF()
// El record set esta vacio
ELSE
oRsNOACONT:MOVEFIRST()
DO ....
oRsNOACONT:MOVENEXT()
ENDDO
ENDIF
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
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
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
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:
Veo que aún sigues con el switch de las DBFs , trata de usar comandos
SQL, aqui te va un ejemplo:
Saludos
Veo que aún sigues con el switch de las DBFs , trata de usar comandos
SQL, aqui te va un ejemplo:
Code: Select all
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
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
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero