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 05-11-2007
Avatar de thelibmx
thelibmx thelibmx is offline
Miembro
 
Registrado: mar 2007
Posts: 515
Poder: 18
thelibmx Va por buen camino
Question mover indicador de un dbgrid a un registro especifico

Hola amigos tengo una pequeña duda espero me puedan ayudar,
tengo un DBGrid1 conectado a una tabla(ttable) y veran lo que hago con este codigo es que en una caja de texto tengo un numero, entonces con el while recorro toda la tabla hasta que el numero se iguala con el que tengo en la caja de texto,

Código Delphi [-]
while (not formconecciones.tablesemanas.eof) and not (a_grid=semanacaja.text) do
begin
formconecciones.tablesemanas.next;
a_grid:=formconecciones.tablesemanas.FieldByName('numero_semana').AsString;
end;

hago esto para que el indicador o apuntador o la flechita que tiene el grid se posicione en el renglon o fila donde esta situado ese valor.

mi pregunta es, hay una manera mas facil de hacerlo, es decir en ves de recorrer la tabla hasta el fin, hay una manera de poner una linea de codigo que no haga el barrido y sea como un select,? por decir, haber si me explico con esto, digamos, seleccioname el registro que se encuentra en la tabla x donde el registro "numero de semana" es iguala a "caja de texto" . espero explicarme bien, es decir lo unico que quiero es que el indicador que tiene el grid o la flechita se posicione en el mismo registro que coincide con la caja de texto espero haberme explicado bien, si no por favor pregunten por que cre que ni yo me entendi jeje
__________________
En movimiento...
Responder Con Cita
  #2  
Antiguo 05-11-2007
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
Si tienes un índice sobre el campo que pretendes buscar:
Código Delphi [-]
Table1.IndexName:='ElQueProceda';
Table1.FindKey([LoQueSEa]);



Un Saludo
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.

Última edición por marcoszorrilla fecha: 05-11-2007 a las 22:06:33.
Responder Con Cita
  #3  
Antiguo 05-11-2007
[basti] basti is offline
Miembro Premium
 
Registrado: ago 2004
Posts: 388
Poder: 20
basti Va por buen camino
O si no tienes índice por el campo
Código Delphi [-]
  Table1.Locate('nombreCampo', valorBuscado, []);
__________________
Saludos.
Responder Con Cita
  #4  
Antiguo 06-11-2007
Avatar de thelibmx
thelibmx thelibmx is offline
Miembro
 
Registrado: mar 2007
Posts: 515
Poder: 18
thelibmx Va por buen camino
Les agradesco su ayuda amigos, lo que yo quiero hacer es el equivalente de esta instruccion pero para el grid osea que el indicador del grid se posicione en donde coincide con esas clausulas o ese query

creo que el equivalente de lo que quiero hacer es esto
Código Delphi [-]
//formconecciones.Querycatalogosemanas.sql.add('select * from catalogo_semanas where (fecha_inicio='+formatdatetime('yyyy-mm-dd',strtodate(Editagregarfecha.text))+' or fecha_fin='+formatdatetime('yyyy-mm-dd',strtodate(Editagregarfecha.text))+')');

quiero que en el grid me señale o indique el resultado de ese query, como podria adaptarlo?

agradesco su ayuda
__________________
En movimiento...
Responder Con Cita
  #5  
Antiguo 06-11-2007
jlchiodo jlchiodo is offline
Registrado
 
Registrado: oct 2006
Ubicación: Ciudad de Buenos Aires
Posts: 8
Poder: 0
jlchiodo Va por buen camino
Wink Posicionar cursor en un componente de bd

Como te indicaran en otro msg.:

con el Locate('nombre_cpo', var, [TLocateOptions]) el cursor de la grilla (grid)
se posiciona solo en el registro que cumpla la condición buscada.

Pero si lo que necesitas es ver el resultado de un conjunto de registros que cumplan con determindas condiciones, luego de efectuar el "filtro" en tu Table1, debes "refrescar" tu grilla:

with formconecciones.Querycatalogosemanas do
begin
sql.add('select * from catalogo_semanas where (fecha_inicio='+formatdatetime('yyyy-mm-dd',strtodate(Editagregarfecha.text))+' or fecha_fin='+formatdatetime('yyyy-mm-dd',strtodate(Editagregarfecha.text))+')');[FONT=verdana,geneva,lucida,'lucida grande',arial,helvetica,sans-serif]
end;
DBGrid1.Refresh;

Espero que te sirva de ayuda.
[/font]
Responder Con Cita
  #6  
Antiguo 06-11-2007
Avatar de thelibmx
thelibmx thelibmx is offline
Miembro
 
Registrado: mar 2007
Posts: 515
Poder: 18
thelibmx Va por buen camino
ok, haber para entender un poco mas, si el locate hace lo que yo busco, podrias ayudarme un poco con la sintaxis, creo q ese seria mi problema ahorita quedaria algo asi supongo , a menos que me corrijas,
Código Delphi [-]
 
Table1.Locate('nombreCampo', valorBuscado, []);
 
Table1.Locate('numero_semana',(fecha_inicio='+formatdatetime('yyyy-mm-dd',strtodate(Editagregarfecha.text))+' or fecha_fin='+formatdatetime('yyyy-mm-dd',strtodate(Editagregarfecha.text))+')', []);

mi duda es esa, como quedaria la sintaxys ocupando locate si quisiera hacer lo que hace el query.
__________________
En movimiento...
Responder Con Cita
  #7  
Antiguo 09-11-2007
jlchiodo jlchiodo is offline
Registrado
 
Registrado: oct 2006
Ubicación: Ciudad de Buenos Aires
Posts: 8
Poder: 0
jlchiodo Va por buen camino
Smile

Bien:
A ver si esto te ayuda:
**************************************************
1. Table1.Locate('nombreCampo', valorBuscado, []);

2. Table1.Locate('numero_semana',(fecha_inicio='+formatdatetime('yyyy-mm-dd',strtodate(Editagregarfecha.text))+' or fecha_fin='+formatdatetime('yyyy-mm-dd',strtodate(Editagregarfecha.text))+')', []);

mi duda es esa, como quedaria la sintaxys ocupando locate si quisiera hacer lo que hace el query.
**********************************************
1. Con el "Locate()", ubicas los registros.
La sintaxis correcta es la primera, pero no te olvides de los opciones (TLocateOptions), ya que si buscas un valor tipo cadena con

"loCaseInsensitive" : puedes ubicar un valor prescindiendo de si está guardado con caracteres en mayusculas o minusculas.

"loPartialKey": Puedes ubicar un valor 'parcial' de la cadena de caracteres, donde la funcion te devuelve un set de registros donde se cumpla el criterio de la busqueda.

Saludos,
Responder Con Cita
  #8  
Antiguo 09-11-2007
Avatar de thelibmx
thelibmx thelibmx is offline
Miembro
 
Registrado: mar 2007
Posts: 515
Poder: 18
thelibmx Va por buen camino
Question

mmm creo que no me he explicado bien, estoy iniciando y no conozco mucho aun, asi que espero tengas un poco de paciencia, veras creo que estamos de acuerdo en que es la primera opcion la sintaxis correcta, mi duda es por ejemplo yo en mi grid manejo un rango de fechas, una fecha de inicio y una fecha fin, digamos el grid se muetra asi:

numero x | fecha inicio | fecha fin | descripcion | otros campos|
1 | 1/01/2007 | 07/01/2007 | fecha x de tal| x
2 | 09/02/2007 | 25/02/2007 | fecha x de tal | x
3 | 20/06/2007 | 28/06/2007 | fecha x de tal | x
... | .... | ..... | ..... | ...
... | .... | ..... | ..... | ...
50 | 20/09/2007 | 29/09/2007 | fecha x de tal | x

entonces yo tengo en un tedit una fecha asi 15/02/2007 esa fecha esta dentro del rango que se encuentra en el registro 2, es decir fecha inicio 09/02/2007 a fecha fin 25/02/2007, yo quiero que el indicador o apuntador del grid seleccione ese registro si la opcion correcta es ocupar locate, como podria ser la sintaxis para que me de ese resultado
__________________
En movimiento...
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Clausula SQL para mover un registro karlaoax SQL 1 17-08-2007 21:49:25
Posicionarme en un registro especifico de un record Carliviris Varios 1 20-11-2006 18:35:41
Mover el cursor de DBGrid.... armadillo OOP 1 05-04-2006 13:42:48
Mover columnas en un dbgrid jzginez Conexión con bases de datos 2 11-07-2004 15:47:25
cambiar color al indicador del DBGrid jorge_mosquera OOP 1 07-04-2004 00:27:44


La franja horaria es GMT +2. Ahora son las 23:31:39.


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