AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Probleme bei MySQL Abfrage

Probleme bei MySQL Abfrage

Ein Thema von delphipitti · begonnen am 14. Apr 2005 · letzter Beitrag vom 14. Apr 2005
Antwort Antwort
delphipitti

Registriert seit: 19. Jan 2005
27 Beiträge
 
Delphi 7 Professional
 
#1

Probleme bei MySQL Abfrage

  Alt 14. Apr 2005, 08:46
Datenbank: Access / MySql • Zugriff über: EDB-Komponenten
Morgen,

ich hab folgendes Problem:

Ich greife per EDB-Kombo auf eine Access-DB zu. Jetzt stelle ich folgende Anfrage:

EDBListView1.LoadSQL('SELECT * FROM rechnungen WHERE (r4 = "0") AND (r6 < "'+datum+'") AND NOT (r1 = "'+datum+'") ORDER by ... Das Datum ist das aktuelle Datum im Format 01.01.2005!

Im Feld r6 und r1 ist genau das gleiche Format.

Funktion - es soll mir alle Datensätze ziehen die kleiner sind als heute, im Feld r4 0 und im Feld r1 Nicht heute.

Das macht er auch hervorragend, aber nur wenn in den Felder Datumswerte aus dem Monat 04 stehen, also wenn 01.04.2005 drin steht gibt er mir den aus, wenn aber 01.03.2005 drin steht nicht mehr!?

Also alles das was vor dem aktuellen Monat ist, wird nicht ausgelesen.

Hat jemand ne Idee warum das so ist - denn der 10.02.2004 ist ja kleiner als der 10.04.2005 oder??

Danke, delphipitti
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Probleme bei MySQL Abfrage

  Alt 14. Apr 2005, 08:57
Zitat von delphipitti:
... Das Datum ist das aktuelle Datum im Format 01.01.2005!...
Hai delphipitti,
der mySQL-Server erwartet das Datum immer im Format yyyy-mm-dd
Am einfacchsten ist es wenn Du mit Parametern arbeitest. Dann musst Du dich um solche Dinge nicht kümmern.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Probleme bei MySQL Abfrage

  Alt 14. Apr 2005, 09:00
Also paar Sachen:

1. In SQL nimmt man normal einfache Hochommate ' statt doppelte "
2. Wenn du 2 Strings miteinander vergleichst, und "01.03.2005" ist nix anderes als ein String, dann ist nun mal "01.03.2005" < als "15.02.2005"... Schreibt mal stattdessen im Format 2005-03-01, also Jahr, Monat, Tag. Dann sollte das klappen.
  Mit Zitat antworten Zitat
delphipitti

Registriert seit: 19. Jan 2005
27 Beiträge
 
Delphi 7 Professional
 
#4

Re: Probleme bei MySQL Abfrage

  Alt 14. Apr 2005, 09:45
Zitat:
1. In SQL nimmt man normal einfache Hochommate ' statt doppelte "
So leider nicht richtig! Im PHP schon, aber im Delphi und insbesondere bei den EDb-Kombos (die ich jedem empfehlen kann) MUSS ich doppelte nehmen.

So nochmal zum Thema. Ich brauch aber leider das (ich weiß) unschöne Format von xx.xx.xxxx da dieses Datum für einen Datumswert in einer Ausgabe so gebraucht wird! Und ich habe keine Lust das Format erst umzumodeln. Und amerikanisches Format in deutschen Rechnungen - na ja.

Könnte man es irgendwie anders "umrechnen"?

Danke
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#5

Re: Probleme bei MySQL Abfrage

  Alt 14. Apr 2005, 09:49
Delphi-Quellcode:
function GetAmericanDate(Datum:String):String;
begin
  Result:=copy(Datum,7,4)+'.'+copy(Datum,4,2)+'.'+copy(Datum,1,2);
end;

function GetGermanDate(Datum:String):String;
begin
  Result:=copy(Datum,9,2)+'.'+copy(Datum,6,2)+'.'+copy(Datum,1,4);
end;
müsste funzen
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
delphipitti

Registriert seit: 19. Jan 2005
27 Beiträge
 
Delphi 7 Professional
 
#6

Re: Probleme bei MySQL Abfrage

  Alt 14. Apr 2005, 09:57
mmh - werd ich mal probieren. Kostet mich zwar wieder ein wenig Arbeit...

Jetzt hab ich aber das Problem, das ich die Ami-Werte so in der Listview stehen habe, was natürlich ein wenig gewöhnungsbedürftig ist.

Gebe gleich mal den Statusbericht
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Probleme bei MySQL Abfrage

  Alt 14. Apr 2005, 09:58
Zitat von delphipitti:
... Und amerikanisches Format in deutschen Rechnungen - na ja.
yyyy-mm-dd ist zwar auch das offizielle deutsche Datumsformat aber das ist ja hier nicht das Thema

Du kannst doch einfach (d)einen TDateTime für den SQL-Befehl entsprechend formatieren (DateTiemToStrF glaube ich).

Oder, wie schon gesagt. Verwende Parameter.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
delphipitti

Registriert seit: 19. Jan 2005
27 Beiträge
 
Delphi 7 Professional
 
#8

Re: Probleme bei MySQL Abfrage

  Alt 14. Apr 2005, 12:31
@ glkgereon

Hat so hervorragend geklappt!!

Rechne es halt vorher um und bei nach der Anfrage wieder zurück.

Habe jetzt nur ein Problem - da ich ja die EDB-Listview-Anfrage direkt setze (und ich leider keine Änderungen an den Werten vornehmen kann) habe ich dort das Ami-Format stehen.

Stört zwar nicht sonderlich - zwingt aber zum Umdenken.

Wie krieg ich das am besten hin, das ich die Umrechnung in die Abfrage einbaue!? (bitte keine Tipps mit RS-Records - das würde zu aufwendig werden )

Trotzdem erstmal vielen Dank an alle
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:41 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