FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
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. |
#2
|
||||
|
||||
Prueba con:
select count(*) from Clients Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
||||
|
||||
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 |
#4
|
|||
|
|||
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. |
#5
|
||||
|
||||
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 ...
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#6
|
|||
|
|||
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. |
#7
|
||||
|
||||
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. |
#8
|
|||
|
|||
Pues se supone que asi debería de ser o no?
Saludos
__________________
Ernesto R. |
#9
|
||||
|
||||
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. |
#10
|
|||
|
|||
Lo voy a probar como me dices y luego te digo gracias
Saludos
__________________
Ernesto R. |
|
|
|