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 26-07-2013
DOS DOS is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 173
Poder: 13
DOS Va por buen camino
Question Comparar DBEdit con un campo

Hola a todos, resulta que tengo un formulario en donde muestro datos de una tabla a traves de un DBGrid y DBEdit por cada campo, que utilizo para cargar los datos y me muevo con un navegador. Ahora puse un boton para realizar un QReport (en otro formulario), la idea es que cuando mando a imprimir el reporte solo me muestre los datos relativos a la clave principal que esta seleccionada en el DBEdit.
Intente con el siguiente codigo del boton imprimir, se muestra otra opcion tambien en la misma //.
Código Delphi [-]
procedure TForm6.SpeedButton1Click(Sender: TObject);
//Var
// a:integer;
begin
//a:=strtoint(DBEdit1.Text);

  with Form26.Query1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM propietario');
    SQL.Add('WHERE Cod_prop = : (DBEdit1.text)'); //Deberia comparar elcodigo de la tabla con el que muestra el DBEdit
   // SQL.Add('WHERE Cod_prop = : a');
    Open;
    end;
Form26.QuickRep1.Preview; // Previsualizar los resultados.
end;
Es como para imprimir una ficha, solo necesito los datos del propietario seleccionado, ambas codificaciones no funcionaron, no creo estar muy lejos.
Tengo Delphi7 y las tablas estan hechas en Paradox (si ya se no coment)
Gracias.
Responder Con Cita
  #2  
Antiguo 26-07-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No se entiende (yo no lo entiendo) lo que dices, ni el problema, ni lo que estás haciendo, ni lo que quieres
Responder Con Cita
  #3  
Antiguo 26-07-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola DOS.

Yo tampoco entiendo la explicación del problema, pero si tenes el código tál cuál lo mostras en el mensaje no te va a funcionar.

Debería ser algo como:
Código Delphi [-]
  with Form26.Query1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM PROPIETARIO');
    SQL.Add('WHERE COD_PROP = :PVALOR');
    ParamByName('PVALOR').AsString := DBEdit1.Text;
    Open;
  end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 26-07-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Vaya, cuando yo vi el mensaje no había código alguno, debo estar más cegato de lo que pensaba
Responder Con Cita
  #5  
Antiguo 26-07-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por Casimiro Notevi Ver Mensaje
...debo estar más cegato de lo que pensaba
No lo creo , con toda seguridad lo haya agregado luego de tu respuesta...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 26-07-2013
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
El DBEdit1 a que dataset esta ligado?? porque si es al mismo query tampoco va a funcionar ya que cierras el dataset para asignar el SQL. En tal caso primero guardaria el valor en una variable.

Código Delphi [-]
var
 Valor:string;
begin
with Form26.Query1 do
  begin
    Valor:=DBEdit1.Text;
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM PROPIETARIO');
    SQL.Add('WHERE COD_PROP = :PVALOR');
    ParamByName('PVALOR').AsString := Valor;
    Open;
  end;
end;

Espero te sirva.

Saludos
Responder Con Cita
  #7  
Antiguo 26-07-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Caminante.
Cita:
Empezado por Caminante Ver Mensaje
El DBEdit1 a que dataset esta ligado?? porque si es al mismo query tampoco va a funcionar ya que cierras el dataset para asignar el SQL.
...
Si, eso es totalmente acertado.

Del primer mensaje creí entender que el DBEdit está relacionado con la tabla mediante un DataSet, la búsqueda se hace sobre un Query y el resultado se muestra en el DBGrid vinculado a ella.

Pero fué sólo mi apreciación... habrá que ver que nos dice DOS.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 27-07-2013
DOS DOS is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 173
Poder: 13
DOS Va por buen camino
Bueno, muchas gracias por la ayuda y como a todos les queda duda de lo que quiero hacer, tratare de expicarlo mejor y con una imagen que ayuda un poco mas.


En el boton que tiene la impresora esta el codigo que mostre antes, este se muestra en un nuevo formulario que esta detras en la imagen y se puede ver el Query y el Dataset relacionado a este. Donde dice 'codigo' ese es el DBEdit1, asi que tal cual como esta ahora al hacer click en la impresora deberia habrir el reporte mostrando los datos, Apellido, Nombre, Direccion, Telefono y email que se encuentran en la misma tabla 'propietario', espero que ahora se entienda mejor, ya probe las modificaciones y no funcionaron, muchas gracias.
Responder Con Cita
  #9  
Antiguo 27-07-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Yo no me entero
Responder Con Cita
  #10  
Antiguo 28-07-2013
DOS DOS is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 173
Poder: 13
DOS Va por buen camino
Casimiro, trato de explicar de la mejor manera que puedo dentro de mis conocimientos, me ayudaria mucho saber que debo informar o decirles como esta hecho, para que lo entiendan mejor y asi me puedan ayudar, gracias.
Responder Con Cita
  #11  
Antiguo 28-07-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
O sea, que lo que quieres es que cuando pulses en el botón "Imprimir ficha" se muestre el informe con los datos que has puesto en pantalla para imprimirlo.
¿Y qué problema tienes con ello?, explícalo en detalle.
Responder Con Cita
  #12  
Antiguo 28-07-2013
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
El dbEdit olvidalo, solo representa visualmente el valor de la tabla o query que tiene "bindeada". Para lo que quieres hacer solo tienes que consultar que registro es el actual en la tabla o query que está mostrando el dbEdit. Es de pimaria, esto, la tabla ya la tienes abierta, solo consúltala.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #13  
Antiguo 28-07-2013
DOS DOS is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 173
Poder: 13
DOS Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
O sea, que lo que quieres es que cuando pulses en el botón "Imprimir ficha" se muestre el informe con los datos que has puesto en pantalla para imprimirlo.
¿Y qué problema tienes con ello?, explícalo en detalle.
Lo que se ve en la imagen con el siguiente codigo en el boton imprimir
Código Delphi [-]
procedure TForm6.SpeedButton1Click(Sender: TObject);
var
 Valor:string;
begin
with Form26.Query1 do
  begin
    Valor:=DBEdit1.Text;
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM propietario');
    SQL.Add('WHERE Cod_prop = :PVALOR');
    ParamByName('PVALOR').AsString := Valor;
    Open;
  end;
Form26.QuickRep1.Preview; // Previsualizar los resultados.
end;

me tira el siguiente error "Project1.exe raised exception class EDBEngineError with message 'type mismatch in expression.'. Process stopped..." no se cual es el error o que significa esto.
Responder Con Cita
  #14  
Antiguo 28-07-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y qué valor tiene el "Valor"
Responder Con Cita
  #15  
Antiguo 28-07-2013
DOS DOS is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 173
Poder: 13
DOS Va por buen camino
"Valor" toma de DBEdit1 que es la clave principal, asi compara supongamos; el DBEdit1 figura 601, se le asigna este a Valor,
y mediante la consulta compara la tabla, la clave principal (Cod_prop) debe ser igual a Valor y asi mostrar los datos solamente de ese registro/propietario.
Responder Con Cita
  #16  
Antiguo 28-07-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por DOS Ver Mensaje
me tira el siguiente error "Project1.exe raised exception class EDBEngineError with message 'type mismatch in expression.'. Process stopped..." no se cual es el error o que significa esto.
¿Dónde sale ese error?
Responder Con Cita
  #17  
Antiguo 28-07-2013
DOS DOS is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 173
Poder: 13
DOS Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Dónde sale ese error?
Cuando apreto el boton imprimir.
Probe este codigo, reemplazando la clave principal por el apellido que esta en el DBEdit3 y funciona perfectamente haciendo lo que necesito, el asunto es que lo tengo que realizar con la clave principal(DBEdit1) ya que el apellido se puede repetir varias veces
Código Delphi [-]
procedure TForm6.SpeedButton1Click(Sender: TObject);
var
Valor:string;
begin
Valor:=DBEdit3.Text;
with Form26.Query1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM propietario');
    SQL.Add('WHERE ApellidoP = :PValor');
    ParamByName('PVALOR').AsString := 'Valor';
    Open;
  end;
Form26.QuickRep1.Preview; // Previsualizar los resultados.
end;
Sin dudas tiene que ver con el tipo de datos a comparar, Cod_prop es numerico y la variable es txt, se deberia pasar en algun momento a integer o float ¿no?
Responder Con Cita
  #18  
Antiguo 28-07-2013
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Código Delphi [-]
procedure TForm6.SpeedButton1Click(Sender: TObject);
var
Valor: Real;
begin
Valor:= StrToFloat(DBEdit1.Text);
with Form26.Query1 do
  begin
    Close;
    SQL.text:= 'SELECT * FROM propietario WHERE Cod_prop = :PVALOR';
    ParamByName('PVALOR').Value := Valor;
    Open;
  end;
Form26.QuickRep1.Preview; // Previsualizar los resultados.
end;
Saludos
__________________
Siempre Novato

Última edición por Caral fecha: 28-07-2013 a las 19:07:54.
Responder Con Cita
  #19  
Antiguo 28-07-2013
Avatar de ozsWizzard
ozsWizzard ozsWizzard is offline
Miembro
 
Registrado: may 2004
Ubicación: Murcia
Posts: 190
Poder: 20
ozsWizzard Va por buen camino
Aunque el código de Caral es correcto, yo soy más partidario de poner, cuando se sabe el tipo dato.
Código Delphi [-]
procedure TForm6.SpeedButton1Click(Sender: TObject);
var
Valor: Real;
begin
Valor:= StrToFloat(DBEdit1.Text);
with Form26.Query1 do
  begin
    Close;
    SQL.text:= 'SELECT * FROM propietario WHERE Cod_prop = :PVALOR';
    ParamByName('PVALOR').AsInteger := Valor;
    Open;
  end;
Form26.QuickRep1.Preview; // Previsualizar los resultados.
end;

Si no es entero, asFloat o AsCurrency o lo que sea...
__________________
La Madurez se llama...
~~~Gaia~~~
Responder Con Cita
  #20  
Antiguo 28-07-2013
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Como siempre; Corrigiendo el código del novato.....
Saludos
__________________
Siempre Novato
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
Comparar Fecha Actual con Campo Zakio14 Firebird e Interbase 2 10-04-2008 03:03:32
comparar un campo memo=empty? NSL94 Conexión con bases de datos 7 24-04-2007 19:14:05
comparar dbedit contra registros de una tabla dmagui Conexión con bases de datos 5 19-07-2006 13:59:09
comparar con el contenido de un dbedit chipsoni SQL 6 15-12-2005 17:36:31
Comparar edit con campo de mi tabla el_barto Conexión con bases de datos 15 07-07-2005 23:23:18


La franja horaria es GMT +2. Ahora son las 11:16:59.


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