Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-09-2003
ramiretor ramiretor is offline
Miembro
 
Registrado: may 2003
Ubicación: México
Posts: 196
Poder: 22
ramiretor Va por buen camino
Numero de registro en un TQuery

Hola foro:
Tengo un problema que se me ha presentado varias veces nunca he sabido la causa y quiza a alguno de ustedes también se le ha presentado algo igual.

Trabajo en una aplicación con Oracle 8, BDE con driver nativo y delphi 7 ( aunque esto se me ha presentado tb en delphi6). Bueno la cuestión es que abro el cursor y el número del registro siempre me da -1 y RecordCount = -1 , por ejemplo si Consulta es el TQuery, las expresiones:

Consulta.RecNo
Consulta.RecordCount

Siempre regresan -1. Lo he arreglado con anterioridad haciendo esto:

Consulta.Last;
....Consulta.RecordCount;

Pero ahora no puedo saltar hasta el último registro para contar el total de registros ya que me interesa conocer el número del registro en el que estoy actualmente. Sé que hay otras maneras para solucionarlo pero se me hacen de la era de las cavernas.

Si alguien puede ayudarme se lo agradeceré un saludo y un abrazo a todos los foristas

__________________
Ernesto R.
Responder Con Cita
  #2  
Antiguo 26-09-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Prueba con:
select count(*)
from Clients

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 26-09-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No todos los datasets dan la información acerca del número de registros ya que no lo saben sino hasta que se recorren todos ellos como haces cuando usas Last. Esto es ineficiente ya que obligas al servidor a recorrer todos los registros.

Si consultas la ayuda de Delphi verás que por default TDataSet regresa -1.

Lo que te indica marcoszorrilla me parece que es lo más adecuado.

// Saludos
Responder Con Cita
  #4  
Antiguo 26-09-2003
ramiretor ramiretor is offline
Miembro
 
Registrado: may 2003
Ubicación: México
Posts: 196
Poder: 22
ramiretor Va por buen camino
Hola:
Muchas gracias por contestar. El problema es que el número de registros que trae el cursor es fácil de saber pero si tengo un componente TDBNavigator el usuario recorre el cursor y le debo marcar el número del registro en el que se encuentra a parte del número de registros totales.

A ver si me pueden ayudar

Muchas gracias de todas maneras

Saludos
__________________
Ernesto R.
Responder Con Cita
  #5  
Antiguo 27-09-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Porqué no agregas el RowNum a tu consulta... de esta manera sabrás en que registro estas parado, si tener que inmiscuirte en el código de tu componente de conexión!
Código:
SELECT ROWNUM, APELLIDO, NOMBRE
FROM USUARIO
...
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #6  
Antiguo 27-09-2003
ramiretor ramiretor is offline
Miembro
 
Registrado: may 2003
Ubicación: México
Posts: 196
Poder: 22
ramiretor Va por buen camino
Hola:
Gracias por contestar, fijate que hice lo que me aconsejaste y sigue el mismo problema, el valor de rownum en cualquier registro en el que esté parado me regresa -1, creo que no hay manera de solucionarlo excepto hacerlo a pie.



Muchas gracias de todos modos
Un abrazo
__________________
Ernesto R.
Responder Con Cita
  #7  
Antiguo 27-09-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Mmmmmm... algo hiciste diferente!!!
¿Pusiste la consulta y luego accedes al rownum de forma similar a esta?:

Código:
iRegistro := Query1.FieldByName('ROWNUM').AsInteger;
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #8  
Antiguo 29-09-2003
ramiretor ramiretor is offline
Miembro
 
Registrado: may 2003
Ubicación: México
Posts: 196
Poder: 22
ramiretor Va por buen camino
Pues se supone que asi debería de ser o no?

Saludos

__________________
Ernesto R.
Responder Con Cita
  #9  
Antiguo 29-09-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Si, esa sería la forma. Pero si eso te falla, desconfiaría terriblemante de tu herramienta de conexión. Prueba que valor trae cuando haces una consulta a una tabla que tiene campos numéricos.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #10  
Antiguo 29-09-2003
ramiretor ramiretor is offline
Miembro
 
Registrado: may 2003
Ubicación: México
Posts: 196
Poder: 22
ramiretor Va por buen camino
Lo voy a probar como me dices y luego te digo gracias

Saludos
__________________
Ernesto R.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 22:40:27.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi