Problema con RecordCount
Hola gente!, hice un procedimiento que obtiene los campos que pertenecen a un determinado indice. Para esto, utilice las tablas del sistema sys.Columns, sys.Index_Columns y sys.Indexes. Antes que nada les menciono que la sentencia SQL Select que utiliza el TSQLQuery esta probada, funciona perfectamente. El procedimiento crea un objeto SQLQuery, le asigno el SQLConnection y en su propiedad SQL agrego las sentencias. Esta pueden devolver uno o mas campos, por lo tanto, para saber esto aplico la propiedad RecordCount, que al ejecutarse produce el error: 'El nombre de objeto sys.columns no es valido'. Recalco que es con esta propiedad que surge el inconveniente ya que si no la aplico, puedo obtener sus datos de manera habitual. La solución seria utilizar algún otro tipo de propiedad o configurar algo que me este faltando. La prepare carece en este componente. Bueno escucho sugerencias. Slds. |
Yo no me he enterado de lo que estás haciendo, de lo que quieres conseguir, del problema que tienes ni de nada :D
|
Código:
|
Prueba asi
mas o menos |
bueno y te sirvio?
|
Cita:
|
haber asi
|
Cita:
|
ummm recordcount o lo que tienes en recordcount>0de ciertta forma es lo mismo que eof ya que validan si el query esta vacio, ahora el error que te marca es que no existe ese campo en la consulta que estas haciendo, es decir sys.columns no es valido. no forma parte de tu consulta.
|
Cita:
|
Hola Jere_84
Has repasado bien la SQL, la he realizado en mi ordenador y funciona correctamente, porque utilizas alias tan largos. En vez de sys.columns AS Columnas, utiliza AS C, o algo parecido.
Un saludo. |
Cita:
|
No sé exactamente de qué va el hilo este, pero hay que tener en cuenta un 'pequeño' detalle:
recordcount no devuelve el número de registros involucrados en un query. Habría que ir al último registro (hacer un fetch) para, ahora sí, usar el valor de recordcount. Resumiendo:
|
Cita:
Efectivamente te devuelve 1 registro
Pero esto te devuelve cuantos registros hay
Un saludo |
Cita:
|
Cita:
Slds. |
¿Lo has probado? :)
|
Hola.
Cita:
Si tu intención es saber la cantidad de resultados que arrojó tu consulta: O, si no te importa, podrías obtenerlo en una misma consulta GROUP BY mediante, pero te devolverá NOMBRE y CANTIDAD. Saludos. |
Cita:
Esta consulta es más rápida porque sólo devuelve un registro, pero tan válida cómo ADOQuery.RecordCount Un saludo. |
Si el componente que estás usando tiene alguna propiedad del tipo "FetchAllRecords" y está a True, entonces es el motivo por el que te funciona el recordcount.
Pero ten en cuenta que eso es sólo por lo que he comentado, por el valor de una propiedad, ya que un select a una base de datos no puede saber cuántos registros involucra, salvo que vaya hasta el último, es algo elemental que verás en cualquier tutorial sql de cualquier base de datos. Tenlo presente, y no te encabezones ;), RecordCount NO devuelve el número de registros. Salvo que sea una tabla plana, que no es el caso. |
La franja horaria es GMT +2. Ahora son las 07:55:01. |
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