Propiedad record.count en mysql

Estoy comenzando con mysql a través de visual basic 6.0, hasta ahora no he tenido problemas, respecto de la gestión de registros ni conexión a la bd, pero no he conseguido ehecutar algo que al parecer debe ser sencillo.
Al realizar la apertura de una tabla necesito también contar cuantos registros posee, lo he realizado de la forma habitual:
re.Open "select * from pet order by birth desc", BD, adOpenStatic, adLockOptimistic
msgbox re.recordcount
pero me da -1
ahora si lo ejecuto así:
Re. Open "select count(*) from pet", BD, adOpenStatic, adLockOptimistic
me trae el total, pero no es la idea una linea completa para eso, en consecuencia de que puedo aprovechar el recordset de apertura.
Cuando ejecuto esta consulta en una base access con conexión jet no da problema alguno.
¿Me puede asistir?.

1 respuesta

Respuesta
1
El echo que aparezca -1, se debe a que te esta devolviendo los resultados en lista, es decir que te saldrá siempre eso cuando hagas un select * o select campox ya que te devuelve no un numero fijo sino que vb asume que es una lista de resultados.
gracias por la velocidad!!!.
comprendo, o sea tengo la respuesta como array, ok.
pero dime como puedo hacer para que me de el total de elementos de la lista sin tener que realizar mas procedimientos, así como un sencillo recordcount
muchas gracias
El procedimiento es el mismo que en las sql, haces la sql.. y luego recoges la respuesta que da.
De la misma forma que tu lo mencionaste.
re.Open "select count(*) from pet order by birth desc", BD, adOpenStatic, adLockOptimistic
msgbox re.recordcount
con eso deberías poder obtener el nro de registros de la tabla pet
hola gracias  nuevamente
si claro así obtengo el total de registros, pero de esa forma me obliga a utilizar otro recordset para obtener nuevamente los registros y volcarlos al control que necesito.
te explico;
con ado, puedo realizar :
re.Open "select * from componentes", BD, adOpenStatic, adLockOptimistic
If re.RecordCount > 1 Then Set Control.Recordset = re
así consulto el numero de registro y en función de ese resultado decido el volcado del recordset al control, pero de la otra manera
valor = re.Open("select count(*) from pet", BD, adOpenStatic, adLockOptimistic)
re.Close
If valor > 1 Then
   re.Open "select * from componentes", BD, adOpenStatic, adLockOptimistic
     Set Control.Recordset = re
     re.Close
   Set re = Nothing
End If
me obliga a 1 consultar 2 cerrar el recordset 3 abrir otra ve el recordset trayendo los registros y evaluar.
en fin como ves , llegamos al mismo resultado pero necesito la forma mas acotada, existe la manera de realizar esto en una mysql ?, 
gracias experto.
¿Cuál es el resultado que deseas obtener de la query?
¿Los registros que esten man de una vez?
solo el total de registros que trae la consulta pero todo mediante la utilizacion de un solo recordset ado
Pero entonces, has solo una consulta como lo hiciste en un principio
tal cual como tu lo tenias.
Re. Open "select * from componentes", BD, adOpenStatic, adLockOptimistic
Set Control.Recordset = re
Registros = rs.GetRows()
if (Registros >1)  then
.....
....
...
else
msgbox "la búsqueda no obtuvo resultados"
exit sub
end if
re.Close
Set re = Nothing
End If
De todas maneras te dejo el siguiente link para que puedas hacer muchas mas cosas interesantes
http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/398-cantidad-de-registros-con-getrows-de-ado.htm
Suerte y feliz año nuevo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas