vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Datenbanken
Re: Richtige Lösung 
Autor: me36835
Datum: 20.08.03 18:25


Hallo Alexis,

warum soviel code?
Zitat:

  WHERE (   Kontakte.MA = CurrentUser()
        AND (   Kontakte.WV >=Date()
            AND Kontakte.WV < Date()+1
            )
        AND Kontakte.WVBis IS NULL
        )
'------------------------------------------
     OR (   Kontakte.MA =CurrentUser()
        AND (   Kontakte.WV >=Date()
            AND Kontakte.WVBis >= Date()
            )
        AND (   Kontakte.WV IS NOT NULL
            AND Kontakte.WVBis IS NOT NULL
            )
        );

3 Möglichkeiten den Code zu verkürzen und damit verständlicher und evt. schneller zu machen:

Kontakte.MA = CurrentUser() ist in beiden Oder Zweigen der Where Klausel und reicht ein mal

  WHERE Kontakte.MA = CurrentUser()
    AND (   (   BLOCK_1
            )
'------------------------------------------
         OR (   BLOCK_2
            )
        );
In BLOCK_1 vergleichst Du zweimal Kontakte.WV mit Date() um einen kompletten Tag ein zu grenzen(...Kontakte.WV >=Date() AND Kontakte.WV < Date()+1...). Intern rechnet das System für Date Felder mit Fließkomma Zahlen. Der Ganzzahlige Teil für Tage, Nachkommastellen für Teile des Tages - also nur die Ganzzahligen Teile des Datums vergleichen, wenn Du einen ganzen Tag (00:00 Uhr bis 00:00 des nächsten Tages) meinst
  WHERE Kontakte.MA = CurrentUser()
    AND (   (   int(Kontakte.WV)=int(Date()) ' !! Ob int() auch in Deiner SQL 
    ' Version so heißt und funzt weiss ich nicht
            AND Kontakte.WVBis IS NULL
            )
'------------------------------------------
         OR (   BLOCK_2
            )
        );
Im BLOCK_2 vergleichst Du Kontakte.WV erst mit Date() und dann mit NULL. Wenn das ">=" ausgewertet werden kann, muß der Wert verschieden von NULL sein - also ganz raus damit
  WHERE Kontakte.MA = CurrentUser()
    AND (   (   int(Kontakte.WV)=int(Date())
            AND Kontakte.WVBis IS NULL
            )
'------------------------------------------
         OR (   Kontakte.WV >=Date()
            AND Kontakte.WVBis >= Date()
            )
        );
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
SQL-String426Alexis18.08.03 13:23
Re: SQL-String710ModeratorDieter18.08.03 14:05
Re: SQL-String188Alexis18.08.03 14:24
Re: SQL-String660ModeratorDieter18.08.03 14:40
Typ nicht passend163Alexis18.08.03 15:32
Re: Typ nicht passend663ModeratorDieter18.08.03 17:41
Re: Typ nicht passend127Richie19.08.03 08:22
Re: Typ nicht passend678ModeratorDieter19.08.03 08:46
Re: Typ nicht passend111Richie19.08.03 09:00
Re: Typ nicht passend753ModeratorDieter19.08.03 09:02
Re: Typ nicht passend135Richie19.08.03 09:14
Re: Typ nicht passend698ModeratorDieter19.08.03 09:21
Re: SQL-String223Richie19.08.03 09:38
Re: SQL-String799ModeratorDieter19.08.03 10:07
Re: SQL-String790Alexis19.08.03 10:10
Re: SQL-String767ModeratorDieter19.08.03 10:15
Re: SQL-String651Alexis19.08.03 10:22
Re: SQL-String802ModeratorDieter19.08.03 10:25
Re: SQL-String806Alexis19.08.03 10:31
Re: SQL-String730ModeratorDieter19.08.03 10:33
Re: SQL-String743Alexis19.08.03 10:43
Richtige Lösung774Alexis19.08.03 12:10
Re: Richtige Lösung839me3683520.08.03 18:25
Re: Richtige Lösung809Alexis21.08.03 09:15

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel