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 09-06-2004
maui maui is offline
Miembro
 
Registrado: may 2003
Ubicación: chile
Posts: 40
Poder: 0
maui Va por buen camino
problemas con locate

hola comunidad

tengo el sigte problema:

tengo dos campos codigo(tedit) y nombre(tdbedit)

ingreso el codigo y no me muestra el nombre automaticamente.

estoy utilizando el sigte codigo:

Código Delphi [-]
procedure TFrmSolicitudVta.qryVentaOnChange(Sender: TObject);
begin
qryVenta.First;
qryVenta.Locate('IDEMPLEADO',Edit2.Text,[]);
qryVenta.next;
end;
¿como puedo mejorar el codigo?

espero sus valiosos comentarios....

de ante mano gracias
__________________
m/m/m

Última edición por __cadetill fecha: 09-06-2004 a las 18:39:00. Razón: poner bien la etiqueta [delphi]..[/delphi]
Responder Con Cita
  #2  
Antiguo 09-06-2004
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
No se que es lo que quieres hacer, pero fíjate que una vez ubicado el registro, en el caso de que este exista, estas moviendo una posición el DataSet (qryVenta.next).

PD: Las etiquetas [delphi] llevan corchetes!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 09-06-2004
maui maui is offline
Miembro
 
Registrado: may 2003
Ubicación: chile
Posts: 40
Poder: 0
maui Va por buen camino
gracias por contestar

lo que quiero hacer es ingresar un codigo en un tedit y luego aparesca automaticamente:

ej: codigo: 111 nombre(tdbedit): perico (este se despliege automatico).

como lo puedo hacer, me puedes enviar un codigo de ejemplo.

espero sus valiosos comentarios...
__________________
m/m/m
Responder Con Cita
  #4  
Antiguo 09-06-2004
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
Podrías hacerlo de varias formas, o bien cuando el usuario presione alguna tecla en particular, por ejemplo ENTER como seña de confirmación de la búsqueda, o cuando el editor pierda el foco, o despues de N tiepo de producirce la última modificación.
La utilización del locate es simplemente como escribes en tu código.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 09-06-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Pues tal y como lo haces, pero sin el Next

Y el First tampoco es necesario

Para el tipo de búsqueda, te recomiendo mires en la ayuda la función locate y revises el tercer parámetro de la función

EDIT: vaya, d.c.a se me adelantó
Responder Con Cita
  #6  
Antiguo 09-06-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Mira tu problema es sencillo

1.- El evento donde estas programando la busqueda, debes programarla en el evento onExit del TEdit

2.- Como decia Delphi.com.ar el query.next esta demas

Suerte
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #7  
Antiguo 09-06-2004
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
Agrego algo que he olvidado: Tienes que tener en cuenta que el locate hace una búsqueda en los resultados del DataSet desde el lado del cliente, no del servidor. Si el set de resultados es algo grande, los Locates serán algo lentos y un DataSet demasiado grande puede reducir drásticamente los recursos del sistema. Lo recomendable para estos casos, es utilizar consultas Sql seleccionando únicamente los datos necesarios.

Saludos!
__________________
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 09-06-2004
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
Cita:
Empezado por eduarcol
2.- Como decia Delphi.com.ar el query.next esta demas
Y como agregó cadetill... El query.Fist también (ese ni lo he visto )
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #9  
Antiguo 10-06-2004
maui maui is offline
Miembro
 
Registrado: may 2003
Ubicación: chile
Posts: 40
Poder: 0
maui Va por buen camino
hola eduarcol y amigos del foro

1.- El evento donde estas programando la busqueda, debes programarla en el evento onExit del TEdit

tengo el sigte codigo:

Código Delphi [-]
procedure TFrmSolicitudVta.qryVentaOnExit(Sender: TObject);
begin
if Edit2.Text <> '' then
qryVenta.Locate('IDEMPLEADO',Edit2.Text,[loCaseInsensitive,loPartialKey]);
end;

todavia tengo problemas no esta haciendo nada...

espero sus comentarios....
__________________
m/m/m
Responder Con Cita
  #10  
Antiguo 10-06-2004
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
Tienes componentes elazados a este Query???
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #11  
Antiguo 10-06-2004
maui maui is offline
Miembro
 
Registrado: may 2003
Ubicación: chile
Posts: 40
Poder: 0
maui Va por buen camino
hola delphi.com.ar gracias pro contestar

Tienes componentes elazados a este Query???[/quote]

tengo un tquery enlazado a un datasourse

y la consulta que tengo es la sigte

SELECT IDCONCURRENTE, IDEMPLEADO, NOMBRE_EMPL, FECHA_VENTA, PIVA, TOTAL_VTA
FROM VENTA
WHERE ( IDCONCURRENTE = 0 );

espero tus comentarios
__________________
m/m/m
Responder Con Cita
  #12  
Antiguo 10-06-2004
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
¿¿La consulta retorna datos??
¿¿El DataSource tiene elazado algún componente??
¿¿Cómo estas evaluando el no funcionamiento del Locate??
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #13  
Antiguo 10-06-2004
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
la consulta la tienes abierta??? tienes un dbgrid enlazado a la consulta para ver como se posiciona en el registro???



Saludos, Tony
Responder Con Cita
  #14  
Antiguo 10-06-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por maui
Código Delphi [-]
procedure TFrmSolicitudVta.qryVentaOnExit(Sender: TObject);
begin
if Edit2.Text <> '' then
qryVenta.Locate('IDEMPLEADO',Edit2.Text,[loCaseInsensitive,loPartialKey]);
end;
Mira fijate que eso lo estas programando, en el evento Exit del query no del edit, colocalo en el evento on exit del TEDIT correspondiente
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #15  
Antiguo 10-06-2004
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
¡¡El Query no tiene OnExit!!...
Digamos que el nombre del método no tiene porqué ser extricto, la pregunta del millón es... ¿A qué evento de qué componente apunta este procedure?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #16  
Antiguo 10-06-2004
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
Cita:
Empezado por eduarcol
Mira fijate que eso lo estas programando, en el evento Exit del query no del edit, colocalo en el evento on exit del TEDIT correspondiente
¿¿¿El TQuery tiene evento OnExit???

Responder Con Cita
  #17  
Antiguo 10-06-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Upsss, Perdon, di mal la respuesta, la respuesta correcta seria como el amigo Delphi.com.ar, pequeños detalles que se el escapan a uno

Perdon a todos
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #18  
Antiguo 10-06-2004
el_enigma1 el_enigma1 is offline
Miembro
 
Registrado: may 2004
Posts: 57
Poder: 21
el_enigma1 Va por buen camino
El mismo tema no recuerdo

En lugar de ir asi
Código Delphi [-]
procedure TFrmSolicitudVta.qryVentaOnExit(Sender: TObject);
begin
  if Edit2.Text <> '' then
    qryVenta.Locate('IDEMPLEADO',Edit2.Text,[loCaseInsensitive,loPartialKey]);
end;
deberia ir el evento change del edit
Código Delphi [-]
procedure TFrmSolicitudVta.EditChange(Sender: TObject);
begin
  if Edit2.Text <> '' then
    qryVenta.Locate('IDEMPLEADO',Edit2.Text,[loCaseInsensitive,loPartialKey]);
end;
Si IDEMPLEADO es numerico lo mas seguro es que no funciones correctamente el locatete lo digo por que de ahí vengo. Debes tener un datasource1 que en la propiedad dataset(si no me equivo pero data algo) tenga al qryVentay luego en el dbedit y en la propiedad datasource o dataset(disculpa pero se me olvida cual es el verdadero nombre ) pones datasource1 y en la propiedad field eliges el campo que deceas.

Última edición por __cadetill fecha: 10-06-2004 a las 23:58:06. Razón: evitar scroll hotizontal
Responder Con Cita
  #19  
Antiguo 15-06-2004
maui maui is offline
Miembro
 
Registrado: may 2003
Ubicación: chile
Posts: 40
Poder: 0
maui Va por buen camino
hola enigma1

hice todo lo que me dijiste en tu mensaje, el idempleado lo tengo como entero y no funciona...

que tipo de datos me puede servir...


espero tus comentarios.......
__________________
m/m/m
Responder Con Cita
  #20  
Antiguo 19-06-2004
el_enigma1 el_enigma1 is offline
Miembro
 
Registrado: may 2004
Posts: 57
Poder: 21
el_enigma1 Va por buen camino
Cita:
Empezado por maui
hola enigma1

hice todo lo que me dijiste en tu mensaje, el idempleado lo tengo como entero y no funciona...

que tipo de datos me puede servir...


espero tus comentarios.......
Con tipo string(varchar, char, texto) funciona bien
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 00:42:12.


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