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 02-03-2008
jairoath jairoath is offline
Registrado
 
Registrado: mar 2008
Posts: 5
Poder: 0
jairoath Va por buen camino
Problema con DBGrid y BDE

Hola como están mi problema es el siguiente: estoy guardando info en una tabla de una base de datos en access, esa información la muestro usando un DBGrid y una sentencia SQL, el problema es que el Grid me muestra toda la info de esa tabla, si yo quisiera que me mostrara solo los datos que deseo pues modifico la consulta SQL o utilizo un filtro, pero hay alguna manera de poder condicionar la información por medio de código, lo que pasa es que los datos que quiero mostrar dependen de una variable y un proceso dentro del programa que luego debo comparar con la tabla para ver lo que necesito.....

el query es estatico: select * from usuario where codigo=1210
yo quisiera esto: select * from usuario where codigo= (numero generado en el programa) y que luego el grid muestre solo ese y no todos, no se si sea posible, ya que el grid depende de un query fijo. gracias de antemano.
Responder Con Cita
  #2  
Antiguo 02-03-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
De donde sacas el numero generado por el programa?
Donde presentas ese numero o lo guardas en una variable?.
Es solo cuestion de poner en vez del numero el nombre o de la variable.
Saludos
Responder Con Cita
  #3  
Antiguo 02-03-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola jairoath,
Bienvenido a Cludelphi. Como recien ingresas te informo sobre la guia de estilo, te pediría que dediques unos minutos para leerla.

Con respecto a tu pregunta: ¿Deseas construir una consulta en tiempo de ejecución? O sólo quieres que en tiempo de ejecución se suministre el valor?

De cualquier manera lo que se hace es usar parámetros:

Código SQL [-]
select *
from tu_tabla
where campo = :parametro
Los dos puntos indican que lo que sigue es un parámetro.

Y luego en Delphi bastará con hacer:

Código Delphi [-]
TuQuery.Parameters.ParamByName(parametro).Value := Edit1.text;
TuQuery.Parameters.ParamByName(parametro).DataType := ftString;
TuQuery.Open;

En el ejemplo asumí que se espera un string (desde un Edit), y se usa ADO. Sugiero que busques en los foros bajo la palabra clave Parametros y/o ParamByName.

Tu consulta se puede hacer en tiempo de ejecución:

Código Delphi [-]
TuQuery.Sql.Clear;
TuQuery.Sql.Add('select .... ');
TuQuery.Open;

El código lo escribí a mano... no tengo Delphi en estos momentos abierto... pero creo que va a andar sin problemas.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 02-03-2008 a las 23:36:41. Razón: etiquetas!
Responder Con Cita
  #4  
Antiguo 02-03-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Solo un pequeño cambio.
Código Delphi [-]
TuQuery.Parameters.ParamByName('parametro').Value := Edit1.text;
TuQuery.Parameters.ParamByName('parametro').DataType := ftString;
TuQuery.Open;
No estoy muy seguro si bde acepta ese concepto, de no ser asi, se puede hacer asi:
Código Delphi [-]
TuQuery.Parameters[0].Value := Edit1.text;
TuQuery.Parameters[0].DataType := ftString;
TuQuery.Open;
Saludos
Responder Con Cita
  #5  
Antiguo 02-03-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
¡Ups! No me di cuenta de que especificó que era DBE!

Lo tuyo funciona bien. Y si no me falla la memoria, bastaría con un AsString y el DataType está demás.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #6  
Antiguo 03-03-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
En realidad funciona con solo el value sin necesidad del datatype, pero asi tambien funciona.
Me parece que es mejor usar, ya lo dije antes, ado en vez de bde, para access se estable una conexión directa.
Pero que te voy a explicar a ti, hombre si tu eres el que sabe de esto, lo que pasa es que no tienes delphi a mano.
Saludos
Responder Con Cita
  #7  
Antiguo 03-03-2008
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
resumiendo lo qe dice Delphius:

en el query escribe esto:

Código SQL [-]
select * from usuario where codigo=:cod

luego cuando lo vayas a ejecutar, escribes asi

Código Delphi [-]
miQuery.Active := False;
miQuery.ParambyName('cod').AsInteger := nValor;
miQuery.Active := True;
__________________
...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
  #8  
Antiguo 03-03-2008
jairoath jairoath is offline
Registrado
 
Registrado: mar 2008
Posts: 5
Poder: 0
jairoath Va por buen camino
wow muchas gracias a los tres por haberse tomado el tiempo de responderme tan rapido, efectivamente pude solucionar mi problema, lo que decian lo probe y de una funciono, monte un grid e hice la consulta y luego al ejecutar el proceso pude mandar el numero por referencia y el grid solo mostro los datos que necesitaba asi:

query: select * from clientes where cliente=:cod
luego dentro de un botonclick ejecute la consulta asi:

ADOQuery1.Active := False;
ADOQuery1.Parameters.ParamByName('cod').Value:= 12;
ADOQuery1.Active := True;

gracias por su ayuda, saludos desde pereira y los voy a molestar mucho mas jejejeje
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
Problema con DbGrid. redimido Conexión con bases de datos 7 08-08-2007 15:06:26
Problema Con Dbgrid NEOALEX00016 Conexión con bases de datos 7 11-09-2006 23:07:07
Problema con un DBGrid ivanloco Varios 3 01-06-2006 15:28:20
problema en un Dbgrid fmonte Varios 2 02-09-2004 06:54:33
Problema con DBGrid pzala Varios 10 14-12-2003 18:48:07


La franja horaria es GMT +2. Ahora son las 08:47:10.


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