Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-07-2005
nuri nuri is offline
Miembro
 
Registrado: abr 2005
Posts: 102
Poder: 20
nuri Va por buen camino
Question Adquirir el campo del registro actual

Hola a todos:
Deseo adquirir el valor de un campo en el registro actual del Query, lo he inentado haciendo esto:
Código Delphi [-]
Query1.SQL.Text:='Select * From COCHES WHERE MATRICULA=:mat';
Query1.ParamByName('mat').AsString:=FormImprime.Query1.FieldByName('MATRICULA').AsString;
Query1.Active:=true;
Siendo COCHES la tabla y matricula un campo de la tabla.

Pero no me devuelve nada, ¿tengo k realizar alguna operación para que me tome el campo?.
Gracias a quien pueda ayudarme
Atentamente.
Nuri
Responder Con Cita
  #2  
Antiguo 27-07-2005
Avatar de hector.roma
hector.roma hector.roma is offline
Miembro
 
Registrado: jul 2005
Ubicación: a caballo entre Galicia y Portugal
Posts: 58
Poder: 19
hector.roma Va por buen camino
A mi algo me parece raro

yo en mi caso no trabajo asi con las querys... así que no voy a ser de gran ayuda, pero me llama la atención:

Código:
Query1.SQL.Text:='Select * From COCHES WHERE MATRICULA=:mat';
Query1.ParamByName('mat').AsString:=FormImprime.Query1.FieldByName('MATRICULA').AsString;  // ??? seguro ???
Query1.Active:=true;
Que antes de activar la query ya intentes recuperar un valor de la misma. Es decir, no deberías para asignarle el parámetro "mat", pasarle algo que no estuviera en la Query (o por lo menos no en esa).

Pero repito, no manejo así las querys entonces no se...
Responder Con Cita
  #3  
Antiguo 27-07-2005
nuri nuri is offline
Miembro
 
Registrado: abr 2005
Posts: 102
Poder: 20
nuri Va por buen camino
Post

Okis tienes razón, así no puedo conseguir el campo.Lo haré mediante un cuadr de diálogo en el que el usuario elija el registro que desea imprimir.
Gracias por tu respuesta.
Atentamente
Nuri
Responder Con Cita
  #4  
Antiguo 27-07-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

Muestra la sentencia que tienes en el Query del FormImprime.

Prueba con un showmessage() antes de asignarle algun valor, para ver si este contiene algo o muestrolo con un dbgrid.

Si los dos query1 son diferente(supongo) , no veo porque no sale nada, al menos que la condicion no devuelva ningun valor en el query del formImprime
__________________
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
  #5  
Antiguo 27-07-2005
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
Veo en tu SQL, que tendrás que explicar más para decirnos que es exactamente lo que pretendes, que quieres filtrar un registro de una consulta aún no abierta por medio de un párametro......?

Si quieres recuperar el valor equivalente a la fila que pulsas.....
Simplemente abre la consulta sin más

Select * from MiTabla

Al pulsar, puede ser el evento de la rejilla OnCellClick ......
Código Delphi [-]
 MiVariableApropiada:=Query1.Fields[1].AsString;

Nota: La colección de campos va desde 0 hasta x-1

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #6  
Antiguo 27-07-2005
nuri nuri is offline
Miembro
 
Registrado: abr 2005
Posts: 102
Poder: 20
nuri Va por buen camino
Unhappy

Okis, eso es lo que quiero hacer, filtrar un registro de una tabla.
Lo que quiero hacer es imprimir el registro al que está apuntando la tabla sólo ése registro.
La variable que me indicas la quiero utilizar para realizar la consulta que me filtraría el registro.
He puesto mi código así:
Código Delphi [-]
 FormImprime.Query1.SQL.Text:='SELECT * FROM COCHES WHERE MATRICULA=:mat';
   FormImprime.Query1.ParamByName('mat').AsString:=FormImprime.Query1.Fields[0].AsString;
   FormImprime.Query1.Active:=True;
   FormImprime.QuickRep1.Preview;
Pero no me devuelve nada.
Gracias de todas formas a todos
Atentamente
Nuri
Responder Con Cita
  #7  
Antiguo 27-07-2005
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
No te devuelve nada por que el valor que le estás pasando al parámetro :mat es del mismo query, el cual no has ejecutado.
Código Delphi [-]
FormImprime.Query1.SQL.Text:='SELECT * FROM COCHES WHERE MATRICULA=:mat';
FormImprime.Query1.ParamByName('mat').AsString:=
  FormImprime.Query1.Fields[0].AsString; // Aquí está el problema
FormImprime.Query1.Active:=True;
FormImprime.QuickRep1.Preview;
Lo raro es que no te de ningún error de que el query no está abierto.

Tienes que buscar otra forma de obtener el valor del parámetro, que podría ser mediante un edit donde escribas la matrícula a buscar y al dar click en un botón hacer algo como:
Código Delphi [-]
procedure Form1.Button1OnClick(Sender: TObject);
begin
  // Tu código anterior
  FormImprime.Query1.ParamByName('mat').AsString := Edit1.Text;
  // Tu código anterior
end;
Esto es solo un ejemplo de como podrías hacerlo, ya te corresponde a tí adecuarlo a lo que realmente estés realizando.

Saludos...
Responder Con Cita
  #8  
Antiguo 27-07-2005
nuri nuri is offline
Miembro
 
Registrado: abr 2005
Posts: 102
Poder: 20
nuri Va por buen camino
Post

Okis, gracias.
ya voy a por ello.
Muchas gracias a todos.
Atentamente
Nuri
Responder Con Cita
  #9  
Antiguo 27-07-2005
Avatar de hector.roma
hector.roma hector.roma is offline
Miembro
 
Registrado: jul 2005
Ubicación: a caballo entre Galicia y Portugal
Posts: 58
Poder: 19
hector.roma Va por buen camino
Otra idea con una segunda query...

Supongo que con estas líneas...
Cita:
FormImprime.Query1.Active:=True;
FormImprime.QuickRep1.Preview;
lo que consigues es previsulizar el contenido actual de Query1, que por lo que veo pretendes que solo tenga aquellos registros donde la matrícula sea igual a la que sacas de la query...

Si esto es así, y quieres mantener el estilo... a lo mejor tendrías que hacer una Query2 donde insertar el SQL que te interesa, y en principio ya podrías recoger el valor actualmente "seleccionado" en la Query1 (siempre y cuando ya estuviera abierta).

Es otra idea...
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 22:01:43.


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