Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-10-2006
nikotina nikotina is offline
Miembro
 
Registrado: oct 2006
Posts: 84
Poder: 18
nikotina Va por buen camino
parametros en sql

hola a todos. mi consulta es como debo hacer para filtrar una tabla por un valor de campo determinado usando sql, es decir, tengo una tabla "ENCABEZADO_PEDIDO" mostrada en un dbgrid, y otra "CUERPO_PEDIDO". por otro lado tengo un SELECT * FROM CUERPO_PEDIDO WHERE NRO_PEDIDO = VAR (es una variable). el tema es el siguiente: cuando recorro la tabla encabezado_pedido guardo en una variable "var" el numero de pedido, aqui viene mi pregunta:

como debo hacer para que filtre la tabla cuerpo_pedido segun el numero de pedido guardado en "var" y me muestre el filtrado en otro dbgrid?.

todo este procedimiento lo debe hacer en cada evento OnDblClik del primer dbgrid.

espero haber sido claro.

saludos a todos.
Responder Con Cita
  #2  
Antiguo 30-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Con una variable seria asi:
Código Delphi [-]
Var
 A: String;
begin
 A:= 'Hola';
 Query1.sql.text:= 'SELECT * FROM CUERPO_PEDIDO WHERE NRO_PEDIDO = '+A+'';
 Query1.Open;
El problema con la variables es que mantiene el valor, esto quiere decir que cada vez que se marque se ira sumando el valor.
Particularmente me gusta mas que el usuario de el valor colocandolo el en un edit asi:
Código Delphi [-]
begin
 Query1.sql.text:= 'SELECT * FROM CUERPO_PEDIDO WHERE NRO_PEDIDO = '+Edit1.Text+'';
 Query1.Open;
De esta manera el valor lo cambiara el usuario y no tendras que usar variables.
Por supuesto el query estara enlazado al dbgrid por el datasource, en donde vas a mostrar la informacion.
Saludos
Responder Con Cita
  #3  
Antiguo 30-10-2006
aledieb aledieb is offline
Miembro
 
Registrado: jun 2005
Ubicación: Buenos Aires, Argentina
Posts: 141
Poder: 19
aledieb Va por buen camino
También podes usar:

Código Delphi [-]
// SQL A USAR = SELECT * FROM CUERPO_PEDIDO WHERE NRO_PEDIDO = :VAR
query1.parambyname('VAR').astipocorrecto:=valoraasignar;
query1.open;

donde astipocorrecto puede ser asinteger, asstring, etc.
y valoraasignar es lo que queres usar para filtrar la consulta.
__________________
Suerte
Alejandro
Responder Con Cita
  #4  
Antiguo 30-10-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Hola.

Creo que lo que queres es mantener "sincronizado" el padre con los hijos, de manera que si el usuario elige el pedido 10, se vean solamente las líneas que componen ese pedido.

¿estoy en lo correcto? (asumiré que si. )

Eso en delphi se llama "Master-Detail" y está soportado en todos los datasets que conozco. Si trabajas con queryes, basta que en el query incluyas el o los parámetros necesarios para "conectar" al encabezado con sus detalles.

Supongamos que hay un campo id_pedido que es la llave entre ambos.

Podes dejar que delphi se encargue de mantener la sincronía entre estos con un query parametrizado:

Código SQL [-]
select * from detalle_pedido where id_pedido = :id_pedido

Luego, la propiedad DataSource del query la estableces a un datasource cuyo dataset sea el encabezado.

Ahora, cada vez que se mueva el registro en el encabezado, se cargarán automáticamente los detalles de dicho pedido, siempre que el query del detalle esté abierto.

El secreto es que el query del detalle tenga como parámetros los nombres de los campos que hacen la relación en la tabla maestra.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 31-10-2006
nikotina nikotina is offline
Miembro
 
Registrado: oct 2006
Posts: 84
Poder: 18
nikotina Va por buen camino
gracias caral, aledieb y jachguate

gracias caral, aledieb y jachguate. recien me estoy iniciando en este lenguaje que me parece extraordinario, y con la ayuda de los foreros es mucho mejor. voy a implementar lo que me han enseñado y espero aprender mucho mas asi poder ayudar a otros.


saludos socios.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Parametros Opcionales no Parametros por defecto Velia Varios 7 19-08-2006 16:18:42
Parámetros en ADO Delfin Conexión con bases de datos 0 19-03-2005 01:02:36
parametros rebollo75 SQL 3 23-11-2004 20:44:59
Parametros jostrix Varios 1 31-10-2004 12:55:33
Parametros BDE Red_Delphi Conexión con bases de datos 0 13-10-2003 11:18:05


La franja horaria es GMT +2. Ahora son las 12:58:19.


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