AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Filtern in einer Datenbank
Thema durchsuchen
Ansicht
Themen-Optionen

Filtern in einer Datenbank

Ein Thema von Surrounder · begonnen am 8. Feb 2006 · letzter Beitrag vom 9. Feb 2006
Antwort Antwort
Seite 2 von 2     12   
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#11

Re: Filtern in einer Datenbank

  Alt 9. Feb 2006, 09:42
Du solltest Parameter verwenden, wie ich es in meinem SQL-Code angedeutet habe, dann umgehst du die Probleme.

Wenn die direkte Verwendung von DateTime-Werten als Parameter-Wert nicht funktionieren sollte, dann verwende String-Literale:

'... WHERE datum = DATE ' + QuotedStr(DateToStr(DeinDatum)); marabu
  Mit Zitat antworten Zitat
Benutzerbild von Surrounder
Surrounder

Registriert seit: 26. Sep 2003
Ort: Stuttgart
177 Beiträge
 
Delphi 2006 Professional
 
#12

Re: Filtern in einer Datenbank

  Alt 9. Feb 2006, 10:08
Zitat von marabu:
Du solltest Parameter verwenden, wie ich es in meinem SQL-Code angedeutet habe, dann umgehst du die Probleme.

Wenn die direkte Verwendung von DateTime-Werten als Parameter-Wert nicht funktionieren sollte, dann verwende String-Literale:

'... WHERE datum = DATE ' + QuotedStr(DateToStr(DeinDatum)); marabu
das hatte ich auch versucht, aber das ändert nichts.

SQL-Code:

Add( 'SELECT * FROM WellenInformation WHERE gamdate = ' + QuotedStr(DateToStr( date ));
führt ebenfalls zu einer Exception mit "type mismatch", ich glaub ich hab schon alle Datumsformate durch getestet, nur keines funktioniert. Wenn ich in der Tabelle einen Filter setzte auf "gamdate=08.02.2006" das geht
In C geschrieben und schön war zuletzt Franz Schuberts 9. Symphonie
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#13

Re: Filtern in einer Datenbank

  Alt 9. Feb 2006, 11:02
Ich habe keine Erfahrung im Umgang mit FlashFiler, aber der Dokumentation glaubte ich zu entnehmen, dass ein Datums-Literal im SQL-Statement aus der Literal-Konstante DATE und einem String-Literal zu bilden ist - wie in meinem Beispiel. Du lässt das Schlüsselwort DATE einfach weg ...

marabu
  Mit Zitat antworten Zitat
Benutzerbild von Surrounder
Surrounder

Registriert seit: 26. Sep 2003
Ort: Stuttgart
177 Beiträge
 
Delphi 2006 Professional
 
#14

Re: Filtern in einer Datenbank

  Alt 9. Feb 2006, 11:32
Zitat von marabu:
Ich habe keine Erfahrung im Umgang mit FlashFiler, aber der Dokumentation glaubte ich zu entnehmen, dass ein Datums-Literal im SQL-Statement aus der Literal-Konstante DATE und einem String-Literal zu bilden ist - wie in meinem Beispiel. Du lässt das Schlüsselwort DATE einfach weg ...

marabu
Das verstehe ich jetzt nicht ganz wie Du das gemeint hast. Meinst Du ich muss noch irgend einen Formatstring angeben in dem SQL Statment?

Wenn ich das von hand versucht hatte dann habe ich bisher das eingegeben:

Add( 'SELECT * FROM WellenInformation WHERE gamdate = ''08.02.2006''' ) oder hab ich dich falsch verstanden?
In C geschrieben und schön war zuletzt Franz Schuberts 9. Symphonie
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#15

Re: Filtern in einer Datenbank

  Alt 9. Feb 2006, 12:11
Wenn es so funktioniert ist es gut so. Ich hatte in der Dokumentation gelesen:

Zitat:
<date literal> = DATE <string literal>
Daraus habe ich geschlossen, dass dein SQL-Statement so aussehen muss:

Add( 'SELECT * FROM WellenInformation WHERE gamdate = DATE ''08.02.2006''' ) marabu
  Mit Zitat antworten Zitat
Benutzerbild von Surrounder
Surrounder

Registriert seit: 26. Sep 2003
Ort: Stuttgart
177 Beiträge
 
Delphi 2006 Professional
 
#16

Re: Filtern in einer Datenbank

  Alt 9. Feb 2006, 12:43
du hast recht, in meinem Handbuch ist das nicht beschrieben, aber ich hab mir gerade die aktuellste Doku im Internet gesucht und da steht das mit dem Literal Date drinnen.

Jetzt bekomme ich nur noch eine "Syntax Error in Date Literal"

Aber ich komme meinem Ziel näher

Edit:

SQL-Code:

Add( 'SELECT * FROM WellenInformation, Lagerstellen WHERE WellenInformation.Idx= Lagerstellen.WiIdx AND gamdate = DATE ' + QuotedStr(DateToStr( date ));;
Noch wer eine Idee?

So soll es laut Doku aussehen

<string literal< = ' [/ <noQuote> | '' } ... ]'
In C geschrieben und schön war zuletzt Franz Schuberts 9. Symphonie
  Mit Zitat antworten Zitat
Benutzerbild von Surrounder
Surrounder

Registriert seit: 26. Sep 2003
Ort: Stuttgart
177 Beiträge
 
Delphi 2006 Professional
 
#17

Re: Filtern in einer Datenbank

  Alt 9. Feb 2006, 13:05
ich habs, die verwenden folgendes Datumsformat '2006-02-08'

Danke für deine Hilfe Marabu
In C geschrieben und schön war zuletzt Franz Schuberts 9. Symphonie
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:44 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