PDA

Ver la Versión Completa : Consultas en SQL de una tabla y mostrar en un dbgrid


Goyo
02-10-2006, 20:27:08
Tengo mi tabla BitacoraVehiculos con los campos: NumeroVehiculo, FechadeServicio, ConceptoReparacion, ConceptoServicio, NumeroFactura, DiasdeComision, LitrosGasolina, importe, importeTotal

y quisiera realizar busquedas y que los resultados me los muestre en un dbgrid
, de hecho ya tengo el codigo pero con filtros y lo que quiero es cambiar a busquedas con SQL...
Los campos con los que quiero realizar consultas son: fechadeServicio tipo D, numerofactura tipo A, importe tipo N, Diasdecomision tipo A y NumeroVehiculo tipo A de longitud 3

para ello tengo unos RadioButton y si quiero buscar por algun de estos campos se activen la consulta solicitada y me muestre los resultados en un dbgrid


procedure TFrmBusquedasGenerales.SpeedButton1Click(Sender: TObject);
var consulta : string;
begin
if edit1.Text<>'' then
begin
if radiobutton1.Checked=true then
DBGrid1.DataSource.DataSet.Filter:='fechadeservicio='+chr(39)+edit1.Text+chr(39)
else if radiobutton2.Checked=true then
DBGrid1.DataSource.DataSet.Filter:='numerofactura='+chr(39)+'FACT.N. '+edit1.Text+chr(39)
else if radiobutton3.Checked=true then
DBGrid1.DataSource.DataSet.Filter:='importe='+edit1.Text
else if radiobutton4.Checked=true then
DBGrid1.DataSource.DataSet.Filter:='diasdecomision='+chr(39)+edit1.Text+chr(39)
else if radiobutton5.Checked=true then
DBGrid1.DataSource.DataSet.Filter:='NumeroVehiculo='+edit1.Text;
end
else
begin
MessageDlg('RECUERDA: selecciona una opción'+chr(13)+'y escribe el dato correcto #€%&@ jejeje',mtError,[mbOk],0);
end;
end;


disculpen pero aun soy nuevo en SQL

alastor
02-10-2006, 21:17:24
Hola
---------
Podrias hacerlo con parametros. Por ejemplo, con un Querry; el SQL me quedaria asi:

SELECT Campos FROM Tabla WHERE Campo1 = Var

Donde "Campos" son todos los campos que voy a mostrar, Tabla representa a la tabla:D, "Campo1" es el campo por el que quiero filtrar y "var" es una variable que al escribirla, delphi la toma como parametro, o sea que va a tener el criterio por el que va a filtrar.
Despues iras a la propiedad parameters y colocaras un valor inicial a cada parametro para que delphi pueda agregar los campos al Querry.

Cuando Vayas a hacer la busqueda pues colocas las sentencias de la siguiente manera:

Case RadioGroup1.Itemindex do
0:begin
Querry1.Parameters.ParamByName('Var').Value :='El valor por el que quiero buscar';
end;
........
END;

De esta manera le estoy diciendo que cuando en el radiogroup escoja el primer item, voy a buscar por el parametro Var que va a tener el valor que yo le ponga despues de los ":=" y asi puedes hacerle filtros a los demas campos.
_________________
Saludos y Suerte