![]() |
Datenbank: FoxPro, MySQL • Version: 8, 4 • Zugriff über: ADO, Zeos
Datensatz wird nicht gefunden
Hi,
ich bin hier fast am verzweifeln. Eigentlich ne völlig einfache Sache: Eine FoxPro Tabelle enthält eine Spalte mit Zahlen, Spaltenname FNR. Spaltentyp ist String. Jetzt gibt es einen DS mit FNR = 4858 wenn ich aber:
Delphi-Quellcode:
wird kein Datensatz gefunden.
Query.Close;
Query.SQL.Text:='select * from Filme where FNR = '+quotedStr('4858') ; Query.Open; Versteh ich nicht, ihr? Gruß Gambit |
Re: Datensatz wird nicht gefunden
Zitat:
|
Re: Datensatz wird nicht gefunden
Habe ich doch geschrieben, FNR ist vom Typ String oder besser Character in FoxPro ist das C
|
Re: Datensatz wird nicht gefunden
Moin Gambit,
wenn FNR den Wert 4858 als string enthält, wiese fragst Du dann nach "4858" ab? |
Re: Datensatz wird nicht gefunden
Zitat:
|
Re: Datensatz wird nicht gefunden
so wird der Datensatz gefunden:
Delphi-Quellcode:
Query.SQL.Text:='select * from Filme where TRIM (FNR) = '+quotedStr('4858') ;
|
Re: Datensatz wird nicht gefunden
Warum speicherst du eigentlich eine Nr. als string ? :shock: Ist ja hier schön zu sehen, daß man sich dadurch tatsächlich in einer einzigen Zeile Code 2 potentielle Stolperfallen einhandelt. Ganz zu schweigen von dem überflüssigen Code. Hoffentlich gilt das nicht auch für den Rest deines Programmes. :mrgreen:
|
Re: Datensatz wird nicht gefunden
Hansa, mal daran gedacht, dass die Tabelle nicht auf meinem Mist gewachsen sein könnte und ich keinen Einfluss darauf habe?
Scheinbar nicht... |
Re: Datensatz wird nicht gefunden
Zitat:
|
Re: Datensatz wird nicht gefunden
Das liefert den Wert des DB-Feldes ohne Leerzeichen am Anfang oder am Ende. Vermutlich sind die Werte aus irgendwelchen Gründen im Format '12345 ' statt '12345' in die Datenbank gelangt. Sowas kommt mal vor, wenn die Felder z.B. feste Längen haben oder auch mal beim rumimportieren...
Mit Integer wär das nicht passiert ;) So muss man sich halt ne Krücke bauen |
Re: Datensatz wird nicht gefunden
genau! Ich hätte auch einen Integer genommen, weiß auch nicht, was sich die DB-Entwickler dabei gedacht haben...diese Datenbank hat auch noch viele andere Krücken wie zB doppelte DS, keine Normalisierung usw...
|
Re: Datensatz wird nicht gefunden
Zitat:
|
Re: Datensatz wird nicht gefunden
Ich habe der Einfachheit halber eine Select-Anweisung geschrieben. Es geht darum, bestimmte Datensätze aus dieser Tabelle zu löschen. Natürlich könnte ich auch Datensatz für Datensatz auslesen, gucken, ob die Zahl meinen Kriterien entspricht und dann diesen DS löschen.
Ich hätte es aber lieber mit einer schnellen Delete-Anweisung gemacht. Da werde ich um diese Krücke wohl kaum herumkommen...vorausgesetzt es handelt sich immer um konvertierbare Zahlen:
Delphi-Quellcode:
Query.SQL.Text:= 'delete from table where Int(TRIM (FNR)) > 1250';
Query.Open; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:39 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