Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Sql Tabelle nacht Datum sortiren / Filtern (https://www.delphipraxis.net/43580-sql-tabelle-nacht-datum-sortiren-filtern.html)

Silicium 6. Apr 2005 08:11

Datenbank: mySQL • Version: 4.x • Zugriff über: TMyconnection

Sql Tabelle nacht Datum sortiren / Filtern
 
hiho

Ich möchte gerne den inhalt einer wwDBgrid nach datum filter, das heist:

von "datum"
bis "datum"


der inhalt kommt von einer mySQL datenbank


das ist ja an un für sich auch kein problem, aber wie bringe ich delphi dazu das nacher wieder in der wwdbgrin anzuzeigen? da wird ja schon die ungefilterte ausgabe angezeit,


muss ich dazu die ungefilterte entfernen oder so?


thx für die hilfe

Silicium

Jasocul 6. Apr 2005 08:28

Re: Sql Tabelle nacht Datum sortiren / Filtern
 
Wenn ich das richtig sehe, benutzt du ein Datenbank-sensitives Grid. D.h.: Es zeigt die Daten so an, wie du sie aus der Datenbank liest. Wenn du es mit einem SQL-Statement machst, musst du nur ein "Order by <Datumsfeld>" anfügen.

Silicium 6. Apr 2005 08:48

Re: Sql Tabelle nacht Datum sortiren / Filtern
 
hab ich auch gemacht, problem ist nur, ich will ja VON - BIS.

ich habe ein codebeispiel bekommen werde daraus aber nicht schlau, irgendwie mir arrais und so


eine möglichkeit wäre:


select * FROM t_pd_spesendetail
where < variable_von AND > variable_bis

dan habe ich wenn ich den command in einem qry habe das ergebniss in der entsprechenen Variable gespeichert...

doch wie kriege ich das dan in das wwDBgrid?

Sharky 6. Apr 2005 08:57

Re: Sql Tabelle nacht Datum sortiren / Filtern
 
Hai Silicium,

ersteinmal: "Herzlich Willkommen in der Delphi-PRAXIS".

Für das was Du möchtest eignet sich das SQL Kommante BETWEEN.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
   with query do
   begin
     SQL.Text := 'SELECT * FROM tabelle ' + #10
                + 'WHERE (datumsfeld BETWEEN :start AND :ende)';
     ParamCheck := True;
     ParamByName('start') := start_datum;
     ParamByName('ende') := end_datum;
     Open;
   end;
end;

Silicium 6. Apr 2005 09:00

Re: Sql Tabelle nacht Datum sortiren / Filtern
 
herzlichen Dank, werde es gleich mal testen

Stevie 6. Apr 2005 09:07

Re: Sql Tabelle nacht Datum sortiren / Filtern
 
Eventuell könnten auch die Eigenschaften Filtered und Filter nützlich sein.

Silicium 6. Apr 2005 09:10

Re: Sql Tabelle nacht Datum sortiren / Filtern
 
diese :start :ende

sind das in delphi festglegte variablen?

Stevie 6. Apr 2005 09:12

Re: Sql Tabelle nacht Datum sortiren / Filtern
 
Nein, das sind sogenannte Bindevariablen von SQL.

Sharky 6. Apr 2005 09:17

Re: Sql Tabelle nacht Datum sortiren / Filtern
 
Das sind einfache Parameter die durch .ParamByName mit Werten gefüllt werden.
Ich weiss aber nicht ob deine Komponente damit umgehen kann? Ich selber verwende die Zeos-Komponenten um auf mySQL zugreiffen zu können.

Silicium 6. Apr 2005 09:24

Re: Sql Tabelle nacht Datum sortiren / Filtern
 
ich werde noch ein bisschen mit den Tips rumspielen, wenn ichs habe werd ichs posten :)

danke nochmals

Sharky 6. Apr 2005 09:27

Re: Sql Tabelle nacht Datum sortiren / Filtern
 
Noch ein kleiner Tipp.
Wenn Du das Datum nicht mit Parametern an die Abfrage übergibst sondern versuchst dies mit DateToStr zu machen musst Du daran denken das der mySQL alle Datumsangaben in diesem Format möchte : yyyy-mm-dd.

Silicium 6. Apr 2005 10:13

Re: Sql Tabelle nacht Datum sortiren / Filtern
 
also die datumsangaben kommen von einem TdateTimePicker...

wie kann ich die auf :start :ende zuweisen?


gruss Silicium

Stevie 6. Apr 2005 10:15

Re: Sql Tabelle nacht Datum sortiren / Filtern
 
Statt start_datum und end_datum in Sharkys Beispiel oben einfach DateTimePickerStart.Date bzw DateTimePickerEnde.Date.

Sharky 6. Apr 2005 10:18

Re: Sql Tabelle nacht Datum sortiren / Filtern
 
:wall:
Mein Code hatte einige Fehler :oops:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
   with query do
   begin
     SQL.Text := 'SELECT * FROM tabelle ' + #10
                + 'WHERE (datumsfeld BETWEEN :start AND :ende)';
     ParamCheck := True;
     ParamByName('start').AsDateTime := DateTimePicker1.Date; // DTP 1 für start
     ParamByName('ende').AsDateTime := DateTimePicker2.Date;
     Open;
   end;
end;

Silicium 6. Apr 2005 10:35

Re: Sql Tabelle nacht Datum sortiren / Filtern
 
cool danke :)

ez muss ich das nurnoch in einen MyCommand packen, ma probieren :)

thx

Silicium 6. Apr 2005 12:33

Re: Sql Tabelle nacht Datum sortiren / Filtern
 
toll :D

2 fragen:

1.
kann mir jemand bei dem codeschnpsel helfen:


Delphi-Quellcode:
procedure TForm1.filter_von_timeChange(Sender: TObject);
var

von, bis : tdatetimepicker;



begin


von := (filter_von_time);
bis := (filter_bis_time);

     mycommand2.SQL.Text := 'SELECT * FROM t_pd_spesendetail ' + #10
                + 'WHERE (DAT_datum BETWEEN von AND bis)';

//das VON und BIS sollte definiert werden, wie mach ich das?

     mycommand2.Execute();
end;

2. und wie kriege ich das ganze jetzt in eine wwDBgrid?



gruss

Silicium 6. Apr 2005 15:25

Re: Sql Tabelle nacht Datum sortiren / Filtern
 
es funktioniert nun :D


hier der Code:

Delphi-Quellcode:
procedure TForm1.check_filterClick(Sender: TObject);

{*********************
**Variablendefinition*
*********************}
var
von, bis : string;

begin

{**************************************
**Wenn checkbox filter aktiv markiert**
**************************************}
if check_filter.checked then



{*********************
**VariablenZuweisung**
*********************}

    von := DateToStr(filter_von_time.Date);
    bis := DateToStr(filter_bis_time.Date);

{*********************
*** MySQL Kommando ***
*********************}

     mycommand2.SQL.Text := 'SELECT * FROM t_pd_spesendetail ' + #10
                + 'WHERE (DAT_datum BETWEEN '+von+' AND '+bis+')';

      edit3.text := mycommand2.SQL.Text;
     mycommand2.Execute();

end;
danke euch allen für die hilfe


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz