Visual Basic - Error E_FAIL

Life is soft - evento anual de software empresarial
 
Vista:

Error E_FAIL

Publicado por ismael (49 intervenciones) el 16/10/2007 17:54:54
Que signifia este error

Error '-2147467259 (80004005)' en tiempo de ejecucion:
El proveedor de datos u otros servicios devolvio un estado E_FAIL

esto me sucede cuando mi recordset quiere ir al ultimo registro !!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error E_FAIL

Publicado por ivan (1039 intervenciones) el 16/10/2007 19:20:51
¿Qué tipo de base de datos estás utilizando?
¿Cómo haces la conexión?
¿Cómo cargas el recordset?
¿Cómo quiere tu recordset ir al último registro (qué instrucción)?

Respuestas necesarias para hacernos una idea de el porqué del error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error E_FAIL

Publicado por ismael (49 intervenciones) el 16/10/2007 19:57:19
Utilizo dBase 5

aqui les dejo como hago la conexion, no creo que sea eso, por que se conecta sin ningun problema.

dsnfox="DSN=Visual FoxPro Database;UID=;SourceDB=C:\Datos\control.dbc;SourceType=DBC;Exclusive=No;BackgroundFetch=Sí;Collate=Machine;Null=No;Deleted=No;"
Set db = New ADODB.Connection
db.CursorLocation = adUseClient
db.Open dsnfox

aqui
Set myset = New ADODB.Recordset
sql = "SELECT MAX(noexam) maximo FROM examen;"
myset.Open sql, db, adOpenDynamic, adLockOptimistic
With myset
If Not .EOF Then
newid = CLng(!maximo)
reg.noexam(i) = newid + 1
Else
MsgBox "La base examen.dbf devuelve EOF"
End If
.Close
End With
Set myset = Nothing

habiendo data me decia que myset.EOF=True ahora bien este es el codigo optimo, pero para ver cuela era el problema tube que hacer esto

Set myset = New ADODB.Recordset
sql = "SELECT * FROM examen;"
myset.Open sql, db, adOpenDynamic, adLockOptimistic
With myset
.MoveLast
.Close
End With
Set myset = Nothing

aqui me devuelve el estado E_FAIL
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error E_FAIL

Publicado por ivan (1039 intervenciones) el 16/10/2007 21:08:31
Sigo sin entenderlo. Concretamente ¿en que línea del código dá el error?

El código optimo no hace nada, abre el recordset, mueve el puntero al último registro y lo cierra ??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error E_FAIL

Publicado por ismael (49 intervenciones) el 16/10/2007 22:02:14
ese es el problema no lo lleva al ultimo, no existe un ultimo registro, cuando si existen registro, el codigo original (o sea el optimo) asume que no hay registros cuando hay por lo minimo 100000 registros, se me ocurrio hacer el otro codigo para ver que pasaba y me zampo el error del E_FAIL, ahora tambien lo hice así

Set myset = New ADODB.Recordset
sql = "SELECT * FROM examen;"
myset.Open sql, db, adOpenDynamic, adLockOptimistic
With myset
.MoveNext
.Close
End With
Set myset = Nothing

y como en el registro 30000 me lanza el error del E_FAIL

Borro los registros que son muy viejos!? esa podria ser una solucion !?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar