![]() |
Datenbank: sqlite • Version: ? • Zugriff über: ?
SQL delete where funktioniert nicht
Mal wieder ich :?
Ich möchte einen Datensatz löschen wobei drei Bedingungen erfüllt sein müssen. Alle Felder sind vom Typ TEXT Mein Versuch:
Code:
Führt nicht zum Erfolg da keine Entsprechungen gefunden werden. Also habe ich zum testen einfach nur:sqlquery1.SQL.Text := 'DELETE FROM customers WHERE Name = :name AND Vorname = :vorname AND Datum = :datum'; sqlquery1.Params.ParamByName('name').AsString := 'Pan'; sqlquery1.Params.ParamByName('vorname').AsString := 'Peter'; sqlquery1.Params.ParamByName('datum').AsString := '22.08.2016'; sqlquery1.ExecSQL;
Code:
Auch hier wurden keine Entsprechungen gefunden. Dieses Problem ist bei allen Feldern mit Leerzeichen/Satzzeichensqlquery1.SQL.Text := 'DELETE FROM customers WHERE Datum = :datum'; ... .. . Nur wenn ich nach Name Suche funktioniert es. Liegt es an den Punkten zwischen dem Datum? Oder was mache ich falsch? |
AW: SQL delete where funktioniert nicht
Zitat:
|
AW: SQL delete where funktioniert nicht
= prüft auf absolute Gleichheit.
Leerzeichen könnte man weg"Trim"men. Was für einen Typ hat das Feld Datum? |
AW: SQL delete where funktioniert nicht
Wie bereits im ersten post geschrieben: Alle felder sind vom typ : TEXT
Ja und das Datum ist vorhanden in der DB und es sind keine Leerzeichen am Ende oder ähnliches. |
AW: SQL delete where funktioniert nicht
Und wie steht das Datum genau in der DB? Wenn es Strings sind, muss es genauso formatiert sein.
Ps.S. deshalb besser passende Typen verwenden. |
AW: SQL delete where funktioniert nicht
Format ist: '22.08.2016'
Genau so steht es in der DB und genau so suche ich danach. Würde eigentlich lieber bei den Strings bleiben wenn möglich. |
AW: SQL delete where funktioniert nicht
Dann nimm doch das vorgesehene Format, damit können dann auch die eingebauten DateTime-Routinen genutzt werden:
![]() |
AW: SQL delete where funktioniert nicht
Zitat:
Delphi-Quellcode:
sqlquery1.SQL.Text := 'SELECT * FROM customers WHERE Datum LIKE ''22.08.2016%''';
Bringt das ein Ergebnis, so versuche die Parameter:
Delphi-Quellcode:
sqlquery1.SQL.Text := 'SELECT * FROM customers WHERE Datum LIKE :datum';
sqlquery1.Params.ParamByName('datum').AsString := '22.08.2016'; Zitat:
|
AW: SQL delete where funktioniert nicht
Es gibt in SQLite keinen DateTime-Datentyp, von daher ist TEXT ja keine falsche Wahl, siehe Link in meinem letzten Post.
|
AW: SQL delete where funktioniert nicht
Zitat:
Zitat:
Also, Problem gelöst. Vielen Dank für eure Hilfe :thumb: . |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:43 Uhr. |
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