Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Consulta sobre query (https://www.clubdelphi.com/foros/showthread.php?t=81205)

nmenna10 21-10-2012 16:55:50

Consulta sobre query
 
Hola buen dia!, tengo una duda sobre como consultar en un query el estado de uno de sus campo (el campo es booleano), mi s codigos seria los siguientes (SQL y el de delphi):
Código Delphi [-]
procedure TForm_Reparaciones.SpeedButton1Click(Sender: TObject);
Var
  dia1,dia2:string;
  Total,cobrado:real;
  Pagado:boolean;
begin
  dbgrid1.DataSource:=Datamodule1.DS_Query_Reparaciones;
  dia1:= FormatDateTime('dd/mm/yy', monthcalendar1.Date);
  dia2:= FormatDateTime('dd/mm/yy', monthcalendar2.Date);
  DataModule1.Query_reparaciones.Close;
  DataModule1.Query_Reparaciones.Parameters.ParamByName('fecha1').Value:= dia1;
  DataModule1.Query_Reparaciones.Parameters.ParamByName('fecha2').Value:= dia2;
  DataModule1.Query_Reparaciones.Open;

  //EVALUO LAS GANANCIAS DE DETERMINADO LAPSO DE TIEMPO TENIENDO EN CUENTA SOLO LA MANO DE OBRA
  Total:=0;
  cobrado:=0;
  Pagado:= datamodule1.Query_Reparaciones.FieldByName('Pagado').Value;
  while not (DataModule1.Query_reparaciones.Eof) do
  begin
    if (datamodule1.Query_Reparaciones.FieldByName('Precio_Final').asString <> '') and
    (datamodule1.Table_RMA.FieldByName('Precio_Final').AsString <> '0') then
      if (pagado = true) then
        cobrado:= cobrado + strtofloat(DataModule1.Query_Reparaciones.FieldByName('Precio_Final').AsString);
      Total:= Total + strtofloat(DataModule1.Query_Reparaciones.FieldByName('Precio_Final').AsString);
    DataModule1.Query_Reparaciones.Next;
  end;
  Label3.Caption:= floatTostr(Total);
  label5.caption:= floattostr(cobrado);
end;
Código SQL [-]
SELECT
  Fecha,
  RMA,
  CodCliente,
  Cliente,
  Equipo1,
  Equipo2,
  Equipo3,
  Precio_Final,
  MO,
  Pagado

FROM
  RMA

WHERE
  (:fecha1 <= Fecha) and (Fecha <= :fecha2)

order by(fecha)

Muchas gracias pos su ayuda y muy feliz dia a todas aquellas q sean madres!

Casimiro Notevi 21-10-2012 17:38:56

Recuerda poner los tags al código fuente, ejemplo:



Gracias :)

Casimiro Notevi 21-10-2012 18:09:18

Hola, y exactamente ¿la pregunta cuál es? :confused:

nmenna10 22-10-2012 15:56:28

La consulta es, que cuando ejecuto esa consulta me tiraeste error:

Project RMA_and_SHIPMEnt.exe raised excption class EDatabaseError with message "Query_Reparaciones: field 'Pagado' not found".

Quisiera saber que es lo que estoy haciendo mal o como puedo corregir eso..


Muchas gracias!

Casimiro Notevi 22-10-2012 16:14:41

Bueno, eso quiere decir que no existe ese campo en la tabla.

jpgonzalez 20-11-2012 14:24:42

Si Query_Reparaciones es un componente TQyery y el campo Pagado esta creado en la tabla, prueba con lo siguiente:
1- doble click sobre el componente TQuery
2- fijate si en la lista de campos que trae la Query existe el campo Pagado
3- Si no esta, haz click derecho y selecciona Add Fields

Si el campo esta en la tabla, y la query esta bien hecha, debería traerte el campo Pagado.

De todas maneras, estaría bueno que pongas la sentencia SQL para ver si estas haciendo un Select * sobre la tabla, o si estas haciendo un Select a algunos campos.

Espero te haya servido, abrazo!


La franja horaria es GMT +2. Ahora son las 15:01:45.

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