Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Einfaches SELECT geht nicht, warum? (https://www.delphipraxis.net/146566-einfaches-select-geht-nicht-warum.html)

Teekeks 22. Jan 2010 17:45

Datenbank: Firebird • Version: x • Zugriff über: ??

Einfaches SELECT geht nicht, warum?
 
Hi!
Und schon wieder habe ich ein Problem mit Firebird.

Ich habe folgende Abfrage:
SQL-Code:
SELECT * FROM Arbeitszeiten where Datum = date'22.01.2010'
Öffne diese und bekomme NICHTS zurück, obwohl das eigentlich so sein müsste.
Also es gibt einen Datensatz mit dem Datum 22.01.2010.

Das ganze sieht so aus:
Delphi-Quellcode:
  with Query do
  begin
    close;
    sql.Clear;
    sql.Add('SELECT * FROM Arbeitszeiten where (Datum = date'''+LTag.Caption+''');');
    Open;
    SQLTransaction1.Commit;
  end;
LTag ist ein Lable mit dem Titel "22.01.2010"

Die Verbindung an sich geht, aber das hier nicht...


Gruß Teekeks

mkinzler 22. Jan 2010 17:48

Re: Einfaches SELECT geht nicht, warum?
 
SQL-Code:
SELECT * FROM Arbeitszeiten where Datum = :Datum;
Und dann
Delphi-Quellcode:
with Query do
  begin
    close;
    sql.Text := 'SELECT * FROM Arbeitszeiten where Datum = :Datum;';
    ParamByName('Datum').asString := LTag.Caption;
    Open;
    SQLTransaction1.Commit;
  end;

Teekeks 22. Jan 2010 17:54

Re: Einfaches SELECT geht nicht, warum?
 
.asString trotz dem Feldtypen date?

mkinzler 22. Jan 2010 17:56

Re: Einfaches SELECT geht nicht, warum?
 
Ja du weist ja einen String zu

Teekeks 22. Jan 2010 17:58

Re: Einfaches SELECT geht nicht, warum?
 
Auch AsDate mit nem DateTime geht es nicht... :(

Edit:
Ich weise ein Date zu... (also ich wandele einen String direkt drin in ein Date um... )

mkinzler 22. Jan 2010 18:12

Re: Einfaches SELECT geht nicht, warum?
 
LTag.Caption ist ein String :zwinker:

Teekeks 22. Jan 2010 18:18

Re: Einfaches SELECT geht nicht, warum?
 
Ich hab das ganze auch als DateTime...

Aber es geht ja auch fehlerfrei durch...

Ich bekomme ja nur nichts zurück.

Warum ist das so?

haentschman 22. Jan 2010 18:27

Re: Einfaches SELECT geht nicht, warum?
 
versuch mal:
Delphi-Quellcode:
with Query do
  begin
    close;
    sql.Text := 'SELECT * FROM Arbeitszeiten where Datum = :Datum;';
    ParamByName('Datum').asDate:= StrToDate(LTag.Caption);
    Open;
    SQLTransaction1.Commit;
  end;
:hi:

WoGe 22. Jan 2010 18:30

Re: Einfaches SELECT geht nicht, warum?
 
Zitat:

SQLTransaction1.Commit;
Ist Die Transaktion deiner Query eventuell älter als die Transaktion die den Datensatz einträgt?

Gruss wo

Teekeks 22. Jan 2010 18:32

Re: Einfaches SELECT geht nicht, warum?
 
A: Was sollte das Ändern? Ich geb doch schon ein direkten DateTime...
B: Wird doch auch das richtige Übergeben... (wie ich mehrmals erwähnte...)

Roter Kasten:
Wie Älter?
Es wird nach jeder Abfrage Commitet wenn du das meinst...


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:14 Uhr.
Seite 1 von 2  1 2      

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