Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datetimepickerdaten in Stringgrid anzeigen lassen (https://www.delphipraxis.net/129515-datetimepickerdaten-stringgrid-anzeigen-lassen.html)

MCFEED 20. Feb 2009 12:07

Datenbank: SQL Server 2005 • Zugriff über: ODBC

Datetimepickerdaten in Stringgrid anzeigen lassen
 
Schönen Guten Tag allen,

Hab mal wieder ein Problem mit meinem Stringgrid... :wall:

Und zwar wie die Überschrift schon besagt versuche ich die Daten(Zeit,Datum) in meinen Datetimepickern(einer für Zeit/der anderere für datum) in meinem Stringgrid anzeigen zu lassen. Die Speicherung klappt ja, wie ich unschwer in meiner Datenbank erkennen kann, mit der Anzeige aber happert es :evil: Kann mir jemand dazu vielleicht nen gedankenschub oder ne Idee geben?

Dazu meine Anzeige:
Delphi-Quellcode:
procedure TAusgang_SL_F.Zeige_Daten; //Anzeige im Grid
  var OleVariante : OleVariant;
      sqlText : string;
begin
  Q_Ausgang.closesql; // Queryabfrage
  sqltext:= 'select T.*, '+
                     
 'M.Name as Name1, M.Vorname as Vorname1 , ' + //M1-4 Mitarbeiterfelderdekla
 'M2.Name as Name2, M2.Vorname as Vorname2,' +
 'M3.Name as Name3, M3.Vorname as Vorname3,' +
 'M4.Name as Name4, M4.Vorname as Vorname4,' +
 
 'K.Name as Kunde, L.Name as Liefer,'+
 'V._Bemerkung,V._Kennzeichen,V._TELEFONFA,V._BEZEICHNUNG, '+//Extraspalten
 'I.Name as Interess from XTermin T' + #13#10 +
 
'left outer join MitarBW M on (M.NR = T._Ma_Nr1) ' +//Zuweisung Mitarbeiter
 'left outer join MitarBW M2 on (M2.NR = T._Ma_Nr2) ' +
 'left outer join MitarBW M3 on (M3.NR = T._Ma_Nr3) ' +
 'left outer join MitarBW M4 on (M4.NR = T._Ma_Nr4) ' +
 'left outer join Kunden K on (K.Nummer = T._Adressen_NR) ' +//Kunden usw.
 'left outer join Liefer L on (L.Nummer = T._Adressen_NR)'+
 'left outer join Interess I on (I.Nummer = T._Adressen_NR)'+
 'left outer join XVorgang V on (T._Vorgang_ID = V.Vorgang_ID)' +//Extraspaltenid
 
 'where T._Tag_Von <= ''' + datetimetostr(now) + ''' ' +
 'and T._Tag_Bis >= ''' + datetimetostr(now)+ ''' ' +
 'and T._Tag_Bis > ''' + datetostr(now + 1) +''' and ((_KZ2= '''') or (_KZ2 is NULL))';
-> Ich persönlich vermute das es an den letzten drei Zeilen hängt, hab auch schon rumprobiert, aber kein Erfolg.

MFG MCFEED

DeddyH 20. Feb 2009 12:14

Re: Datetimepickerdaten in Stringgrid anzeigen lassen
 
Zum Einen sehe ich da nirgends etwas von DateTimePicker, zum Anderen solltest Du die Abfrage parametrisieren.

nuclearping 20. Feb 2009 12:15

Re: Datetimepickerdaten in Stringgrid anzeigen lassen
 
Wie ist denn die DateTime Formatierung in der Datenbank? Danach mußt du das auch ausrichten, was du übergibst.

DeddyH 20. Feb 2009 12:19

Re: Datetimepickerdaten in Stringgrid anzeigen lassen
 
Zitat:

Zitat von nuclearping
Wie ist denn die DateTime Formatierung in der Datenbank? Danach mußt du das auch ausrichten, was du übergibst.

Deswegen meinte ich ja, Parameter benutzen, dann sind evtl. Probleme ausgeschlossen.

MCFEED 20. Feb 2009 13:31

Re: Datetimepickerdaten in Stringgrid anzeigen lassen
 
Sorry, war beim Mittag... :oops:


Hier mein Datetimepicker:
Delphi-Quellcode:
procedure TAusgang_SL_F.CB_DAUERClick(Sender: TObject);
  var dStart : Tdatetime;
      dEnde : TDatetime;
      rZeit : real;
      nMinuten : integer;
begin
  try
    dStart := strtoDateTime( E_TagVon.text);
    rZeit := strtofloat(CB_DAUER.text);
    nMinuten := round(60 * rZeit);

    dEnde := dStart + (1/ 24/ 60 * nMInuten);

    DTP1_TagBisDatum.Date := dEnde;
    DTP2_TagBisUhrzeit.Time := dEnde;


  except
  end;
end;
-> is ein extra onclickereignis,sprich die Zeit und das datum werden dann berechnet und ausgegeben bei auswahl von einer anzahl von stunden.

@ DeddyH

Sorry, aber definiere mir mal parametrisieren, warum dafür Parameter setzen?
Kann dir nicht ganz folgen.

@nuclearping

Ich geh mal davon aus das du mit formatierung den Datentyp meinst, logischerweise Datetime, wenn nich was dann... steh grad mächtig unter druck und aufm schlauch.. :gruebel:

Achso mein Datetimepicker hat uaßer obendem kein weiteren Syntax zur verfügung-> wüsste nicht das ich da noch andere Sachen mit reinschreiben muss,kann
MFG MCFEED

mquadrat 20. Feb 2009 13:40

Re: Datetimepickerdaten in Stringgrid anzeigen lassen
 
Delphi-Quellcode:
'where T._Tag_Von <= ''' + datetimetostr(now) + ''' ' +
'and T._Tag_Bis >= ''' + datetimetostr(now)+ ''' ' +
'and T._Tag_Bis > ''' + datetostr(now + 1) +''' and ((_KZ2= '''') or (_KZ2 is NULL))';
Ist das wirklich was du abfragen willst?
- Von-Datum kleiner oder gleich jetzt
- Bis-Datum größer oder gleich jetzt
- Bis-Datum größer als morgen früh 00:00
- Kennzeichen 2 leer

Der zweite Punkt wird doch vom dritten komplett rausgenommen?!

Was für Datentypen sind denn _Tag_Von und _Tag_Bis in der Datenbank?

Du hast die Abfrage doch garantiert mal im SQL Managment Studio (oder wie das Ding heißt) ausprobiert. Entspricht die dem String, den du mit dem Programm zusammenbaust?

MCFEED 20. Feb 2009 13:48

Re: Datetimepickerdaten in Stringgrid anzeigen lassen
 
@mquadrat


TagVon und TagBis sind Datetime, weil da die Zeit und das Datum reingespeichert werden sollen, was ja auch klappt, wie ich inder database sehe(ja ist SQLManagement Studio EXPRESS! :-)

Geb dir mit meiner Abfrage recht.. is mies..

Will eigentlich nur eine auswahl von mehreren tagen (abmeldung) haben, und die soll abgefragt werden können aus dem datetimepicker, sprich gehe auf abmeldung, dann wähle ich den tag der abreise aus, dann die anzahl der stunden(abwesenheit) und daran berechnet er automatisch das rückkehrdatum(mit Zeit). Soweit verständlich???

MFG MCFEED

mquadrat 20. Feb 2009 13:57

Re: Datetimepickerdaten in Stringgrid anzeigen lassen
 
@MCFEED

Ähm nö, jetzt bin ich komplett verwirrt :wiejetzt: Aber das könnte auch an mir liegen :lol:

Ich hab noch nicht so ganz verstanden ob deine DateTimePicker jetzt zum Speichern verwendet werden oder ob die zum Laden verwendet werden sollen. In deinem Select greifst du doch gar nicht auf die Dinger zu?! Da nimmst du doch immer now :gruebel:

Vielleicht seh ich aber auch den Wald vor lauter Bäumen nicht mehr.

nuclearping 20. Feb 2009 14:48

Re: Datetimepickerdaten in Stringgrid anzeigen lassen
 
Zitat:

Zitat von MCFEED
@nuclearping

Ich geh mal davon aus das du mit formatierung den Datentyp meinst, logischerweise Datetime, wenn nich was dann... steh grad mächtig unter druck und aufm schlauch.. :gruebel:

DateTimeToStr gibt dir - je nach System - ein Datum im Format "DD.MM.JJJJ" zurück. Wenn in der Datenbank aber "JJJJ/MM/DD" oder was anderes steht, findet er nix.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:52 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