Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-10-2006
kia kia is offline
Miembro
 
Registrado: jul 2003
Posts: 78
Poder: 21
kia Va por buen camino
Post Una de fechas ...?

Hola a todos.
Empleo D6 MDO Interbase, Estoy tratando de efectuar unos filtros en una rejilla, (bueno los filter en MDODataset no se porque no me funcionan).
He modificado las tablas por MDOdataset. Supongamos que un campo fecha 01/12/2005

Código Delphi [-]
procedure TV_equipo.Filtrar(Sender: TObject);
const
 TiposConComillas:set of TfieldType
 =[ftstring, ftdate, fttime,ftdatetime];
 var
 Campo, Operador, Valor, valor2, sino:string;
 I:integer;

begin
  sino:='';
  if sender= migual then
     operador:='='
   else if sender= mMayorigual then
     operador:='>='
   else if sender= mMenorigual then
     operador:='<='
   else
     operador:='<>';

  //extraemos nombre del campo
  Campo:=Rxdbgrid1.SelectedField.FieldName;
  //extraer y dar formato al valor
  if rxdbgrid1.SelectedField.DataType in TiposconComillas then
     begin
     if rxdbgrid1.SelectedField.DataType=ftdate then
        begin
        valor:=':tfecha';
        valor2:=Rxdbgrid1.SelectedField.AsString //string 
        end else begin
        valor:=quotedstr(Rxdbgrid1.SelectedField.AsString); //string
        end;

     if (Rxdbgrid1.SelectedField.IsNull)  //campos en blanco
     and(rxdbgrid1.SelectedField.DataType<>ftdate)then
        begin
        valor :='is null';  //fechas vacias
        if operador<>'=' then sino:='NOT ';//para fechas distinta de vacias
        operador:=''//eliminamos 
        end ;
     end else begin
     valor:=Rxdbgrid1.SelectedField.AsString ;
     for I := 1 to length(valor) do
       if valor[i]=DecimalSeparator then Valor[i]:='.';
     end ;
     //combinar nueva condicion con las anteriores
    if mActivarfiltro.Checked=false then
     begin
     with DMDatos.Dsetequipos do
     begin
     Close;
     SelectSQL.Clear;
     SelectSQL.Add('SELECT * FROM equipos');
     //solo string, numeros, campos vacios
    SelectSQL.add('WHERE '+sino+ format('%s %s %s',[Campo,Operador,Valor]));
     //solo fechas
     if (rxdbgrid1.SelectedField.DataType=ftdate) and (valor<>'is null') then
      DMDatos.Dsetequipos.ParamByName('tfecha').asdate:=strtodate(valor2);
     SelectSQL.Add('ORDER BY '+Campo);
     Open;
     end;
Todo bien menos con las fechas.
Problema con las fechas: como le digo que deseo todas las fechas distinta de la señalada?. Salu2 Kia Gracias (Soy novata con Interbase).
__________________
Nadie nace enseñado, pide y se te dara.
Responder Con Cita
 



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
Fechas federiconqn21 Varios 1 04-05-2006 15:30:01
Las horribles fechas, control de fechas Huer OOP 6 18-10-2005 19:11:49
Fechas jmlifi Varios 2 11-04-2005 16:40:22
sql con fechas soloriv SQL 4 11-03-2005 21:12:49
Fechas SQL ronson SQL 2 11-03-2004 11:48:34


La franja horaria es GMT +2. Ahora son las 21:22:51.


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