![]() |
Cambiar SelectSQL en ejecución
Hola a todos:
En una tabla de InterBase quiero cambiar la propiedad SelectSQL de un DataSet pero "en ejecución" y no se como de escribre este código. Tengo seleccionado todo Select * from PARTE Y en un momento dado quiero filtrar para que quede: Select * from PARTE where MES = 'variableconnumeromes' para hacer un report y luego volverlo a dejar como estaba Select * from PARTE ¿ Qué código hay que escribir ? Muchas gracias. Tomás. |
Hola:
Es tan sencillo como cerrar el dataset, asignar lo que quieras y volver a abrirlo. ibDataset1.Close; ibDataset1.SelectSQL.Text := 'Select ... where ... '; ibDataset1.Open; Saludos. |
Empecemos por el principio:
1. Propiedad SelectSQL? R// Asumo de que te refieres a que estas haciendo un Select en la propiedad SQL de un TQuery. Si es asi... entonces lo puedes cambiar de la siguiente manera en tiempo de ejecucion: Supongamos que quieres cambiar el SQL en el Evento OnClick de un Boton llamado "Boton1" y que el TQuery se llama "Query1" y que la variable con numero del mes (a la cual le haces referencia en tu segundo SQL) se llama "mes". Código:
procedure TForm1.Boton1Click(Sender :TObject);P.D. Caramba veo que Vecino se me ha adelantado por una milesima de segundo :D |
ya que dices que es para hacer un report (un listado), yo lanzaria una Query por separado
Código:
|
Gracias Vecino por tu ayuda, efectivamente funciona como me has indicado. Con estas líneas:
DecodeDate(DTPDesde.Date,AA,MM,DD); IBDSParte.Close; IBDSParte.SelectSQL.Text := 'Select * from PARTE where MES = ' + IntToStr(MM); IBDSParte.Open; Gracias Jhonny. No es un TQuery, es un TIBDataSet, y una de sus propiedades es SelectSQL. De todas maneras he probado con tus indicaciones y así también funciona: DecodeDate(DTPDesde.Date,AA,MM,DD); IBDSParte.Close; IBDSParte.SelectSQL.Clear; IBDSParte.sELECTSQL.Add('Select * from PARTE where MES= ' + IntToStr(MM)); IBDSParte.Open; Gracias de nuevo a los dos. Tomás. |
Gracias Cadetill, aunque ya lo he resuelto, me viene bien saberlo para otra ocación que lo necesite, porque soy principiante en Delphi.
Un saludo. Tomás. |
| La franja horaria es GMT +2. Ahora son las 10:24:12. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi