Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-06-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Nro de fila en TDBGrid

Hola a todos:

Cómo puedo saber en que número de fila estoy parado en un DBGrid y cuantas filas tiene el DBGrid sin recorrerla por completo ?

Es decir necesito algo que me devuelva el numero de fila seleccionada.

De antemano muchas gracias .

Atte Aarón García A.
Responder Con Cita
  #2  
Antiguo 04-06-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos
Suponiendo que usas Tables.
Cita:
Empezado por lucasarts_18
Cómo puedo saber en que número de fila estoy parado en un DBGrid
El dbgrid solo es un componetne que te visualiza el contenido de un DB o tabla. Para lograr lo que quieres, tienes que pedirle esto al Dataset el table1: Ej table1.Recno; //esto te devolvera el numero de la fila en la que el cursor se encuentra

Cita:
Empezado por lucasarts_18
y cuantas filas tiene el DBGrid sin recorrerla por completo ?
Para esto usas: Table1.RecordCount;
Cita:
Empezado por lucasarts_18
Es decir necesito algo que me devuelva el numero de fila seleccionada.
Lo que me viene a la mente para esto, es recorer todas las filas e ir evaluendo si esta seleccionada.

Suerte
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #3  
Antiguo 04-06-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 23
Crandel Va por buen camino
Cita:
Empezado por lucasarts_18
necesito algo que me devuelva el numero de fila seleccionada.
usa SelectedRows.Count
__________________
[Crandel]
Responder Con Cita
  #4  
Antiguo 06-06-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Hola:

Gracias por responder amigos, he solucionadop el asunto del total de filas, sólo me falta el de la fila actual del cursor, probé con table1.recno y me devuelve -1.
Espero otra manito.

Gracias.
Responder Con Cita
  #5  
Antiguo 06-06-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos
Cita:
Empezado por lucasarts_18
Hola:

Gracias por responder amigos, he solucionadop el asunto del total de filas, sólo me falta el de la fila actual del cursor, probé con table1.recno y me devuelve -1.
Espero otra manito.

Gracias.

Probe con
Código Delphi [-]
ShowMessage(inttostr(table1.RecNo));
y resulto de maravillas. Chequea bien tu tabla o codigo.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #6  
Antiguo 07-06-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Hola :

Sigo igual que antes.
showmessage(inttostr(QryDetallePed.RecNo)); (Es un TQuery por sí acaso)
y no me resulta, sigue devolviendome -1

Según la ayuda de delphi:

Cita:
Indicates the active record in the dataset.
property RecNo: Integer;
Description
As implemented in TDataSet, the value of RecNo is always -1 (Ojo aquí). Ordinarily an application does not access RecNo at the TDataSet level. Instead a re-implemented RecNo property in a descendant class such as TTable is accessed. RecNo provides a fallback property for derived datasets that do not support record numbers.
¿Qué diablos será ?

Nos vemos.
Saludos.
Responder Con Cita
  #7  
Antiguo 07-06-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 23
Crandel Va por buen camino
Cita:
Ordinarily an application does not access RecNo at the TDataSet level. Instead a re-implemented RecNo property in a descendant class such as TTable is accessed
En tu misma cita escribiste que RecNo se reimplementa en sus decendientes, como es el caso del TQuery. Asi que no deberia haber problema.

Asegurate de estar realmente preguntado al query correcto, que este abierto en el momento de la pregunta o algún error de esos siempre tontos que nos hacen perder semanas (a todos nos pasa).

Revisa bien en el código como si fuera la primera vez que lo lees, sin presuponer nada

Suerte.
__________________
[Crandel]
Responder Con Cita
  #8  
Antiguo 07-06-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Esto debe funcionar:
Código Delphi [-]
 procedure Cualquiera;
begin
  query1.close;
  query1.sql.clear;
  query1.sql.add('Select * from tablaX');//cualquier tabla o Base de datos
  query1.open;
  ShowMessage(inttostr(query1.RecNo));
end;
Suerte
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #9  
Antiguo 08-06-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Hola:

éste es mi código:

Código Delphi [-]
  
with QryDetallePed do
   begin
      Close;
      SQL.Clear;
      SQL.Add ('Select * from Pedido_Detalle');
      SQL.Add ('Where Nro_Pedido = ' + edtNumPed.text);
      Open;
      showmessage(inttostr(QryDetallePed.RecNo));
   end;

-1

Saludos.
Responder Con Cita
  #10  
Antiguo 08-06-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 23
Crandel Va por buen camino
Te esta diciendo que la consulta no te devuelve ningún registro.
__________________
[Crandel]
Responder Con Cita
  #11  
Antiguo 08-06-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos.
Cita:
Empezado por lucasarts_18
Hola:

éste es mi código:

Código Delphi [-]
  
  with QryDetallePed do
     begin
        Close;
        SQL.Clear;
        SQL.Add ('Select * from Pedido_Detalle');
        SQL.Add ('Where Nro_Pedido = ' + edtNumPed.text);
        Open;
        showmessage(inttostr(QryDetallePed.RecNo));
     end;
Intenta si la Clausura where.
Nro_Pedido es Numerico o String? Trata de usar Param

Código Delphi [-]
  
   with QryDetallePed do
      begin
         Close;
         SQL.Clear;
         SQL.Add ('Select * from Pedido_Detalle');
         SQL.Add ('Where Nro_Pedido = :NroPedido');
  ParamByName(NroPedido).AsString:=trim(edtNumPed.text);//Si es String;
    //ParamByName(NroPedido).Asinteger:=StrToInt(edtNumPed.text);//Si es Numerico;
         Open;
         showmessage(inttostr(QryDetallePed.RecNo));
      end;
Suerte
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #12  
Antiguo 10-06-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Hola:

Sacado de otro foro:

Cita:
La propiedad *RecNo* no pertenece ni al componente TTable ni al
componente TQuery sino que es propia del gestor de Paradox. El BDE
devuelve -1 para cualquier otro gestor de base de datos.
Voy a buscar otra solución.

Gracias de todas maneras.

Saludos.
Aarón.
Responder Con Cita
  #13  
Antiguo 10-06-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 23
Crandel Va por buen camino
Justamente hace muy poco lo utilice al RecNo en una aplicación con C++Builder 6 y Firebird.
__________________
[Crandel]
Responder Con Cita
  #14  
Antiguo 10-06-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos.

Yo lo he usado con SQL SERVER, Paradox, Firebird, Interbase,... Sin Problemas

Que base de datos usas?
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!

Última edición por vtdeleon fecha: 10-06-2005 a las 23:34:47. Razón: Agregar algo, Una pregunta?
Responder Con Cita
  #15  
Antiguo 10-06-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Hola:

Estoy utilizando SQL Server 2000, en Oracle 9i sucede lo mismo.

Saludos .
Aarón
Responder Con Cita
  #16  
Antiguo 11-06-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Intentaste lo citado http://www.clubdelphi.com/foros/show...8&postcount=11 ???

Trata de usar AdoQuery a ver que sucede :-S
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #17  
Antiguo 11-06-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Hola a todos:

Gracias por sus constantes ayudas, bueno creo que estamos llegando al fin de éste dilema y he llegado a una conclusión, la propiedad Recno no funciona al parecer con los componentes BDE (TQuery) (TTable) ya qué estos fueron creados para base de datos de escritorio, de ahí es cierto lo que logré averiguar en otros foros, devuelve -1 para cualquier base de datos diferente a paradox o dbase, en mi caso SQL Server.
Gracias a VTDELEON qué me dijo que probará en ADOQuery para ver qué pasaba y me llevé una gran sorpresa, resulta que hacía lo que quería, debe ser que estos componentes están diseñados para trabajar con gestores de base de datos (SQL Server - Oracle - Interbase).
Al parecer debí de haber hecho caso cuando leí que los componentes BDE estaban obsoletos o no eran recomendados actualmente, jjjeje, ahora mismo me cambio a los componentes ADO.

Bueno, le doy gracias nuevamente a todos por su desinteresada ayuda .

Saludos.
Aarón.
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 12:57:06.


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