Visual Basic - No anda el RECORDCOUNT

Life is soft - evento anual de software empresarial
 
Vista:

No anda el RECORDCOUNT

Publicado por leonardo (6 intervenciones) el 19/10/2004 23:41:49
No anda el RECORDCOUNT. Tengo problemas con el recordcount de ADO, siempre da -1 aunque haya datos. No se si será problemas al abrir el recorset, la verdad no creo pero hago algo así: recorset.open sql, base, adOpenForwardOnly, adLockOptimistic, adcmdtext y la conexion la hago mediante ODBC. Si alguien me puede tirar una ayuda.
PD: Con RDO anda bien.
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:No anda el RECORDCOUNT

Publicado por El Cala (27 intervenciones) el 21/10/2004 16:48:14
El problema radica en el tipo de cursor, en vez de usar ForwardOnly, tienes que usar Static
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:No anda el RECORDCOUNT

Publicado por gamba (1 intervención) el 23/11/2004 16:47:38
No se si ya has encontrado la solución, pero si, el recordcount no es recomendable usarlo en ADO, ya q personalmente me da muchisimos problemas. La solucion es la siguiente.

Despues de adrir la conexión obviamente tenemos q abrir el recordset.

Dim rst as ADODB.Recordset

Set rst = Conexion.Execute ("consulta")

ahora en lugar de usar recordcount:

if not (rst.EOF=True and rst.BOF=true) then
'este codigo se ejecuta si non hai registros
else
'este codigo se ejecuya si hai registros en el recordset
end if

si quieres saber cuantos registros saca el recordset sacas un COUNT con la consulta y listo.
saludos
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:No anda el RECORDCOUNT

Publicado por Ayudante (349 intervenciones) el 24/11/2004 15:34:40
En realidad veo que la primer respuesta la de "El Cala" es más bateada que una bola de baseball, sorry por la crítica, pero es cierto, antes de responder hay que comprobar las cosas.

Gamba tiene razón en el hecho de sacar un count desde la BD, pero aún así no es muy eficiente, ya que aunque sea una consulta muy simple, siempre debe ir a la BD a consultar.

El recordcount siempre retornará -1 si usas la propiedad "cursorlocation" con el valor de servidor (creo que era 1), lo ideal es usarlo en el cliente (valor 3), de esta forma el recordcount y el absoluteposition podrán ser visibles durante toda la vida del recordset.
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:No anda el RECORDCOUNT

Publicado por Jesus (24 intervenciones) el 25/11/2004 00:55:09
Muy cierto... el RecordCount solo trabaja del lado del cliente... Te recomiendo lo siguiente: Despues de crear tu conexión, indica el cursos a usar, procurando siempre sea del lado cliente, por ejemplo:

Set AdoDBConexion = New ADODB.Connection
AdoDBConexion.CursorLocation = adUseClient

Saludos
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