Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datensatz wird nicht gefunden (https://www.delphipraxis.net/44060-datensatz-wird-nicht-gefunden.html)

Gambit 12. Apr 2005 20:12

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:
Query.Close;
Query.SQL.Text:='select * from Filme where FNR = '+quotedStr('4858') ;
Query.Open;
wird kein Datensatz gefunden.

Versteh ich nicht, ihr?

Gruß

Gambit

Hansa 12. Apr 2005 22:40

Re: Datensatz wird nicht gefunden
 
Zitat:

Zitat von Gambit
Versteh ich nicht, ihr?

Ne. :mrgreen: Welchen Typ hat FNR ?

Gambit 12. Apr 2005 22:48

Re: Datensatz wird nicht gefunden
 
Habe ich doch geschrieben, FNR ist vom Typ String oder besser Character in FoxPro ist das C

Christian Seehase 12. Apr 2005 22:56

Re: Datensatz wird nicht gefunden
 
Moin Gambit,

wenn FNR den Wert 4858 als string enthält, wiese fragst Du dann nach "4858" ab?

Hansa 12. Apr 2005 23:19

Re: Datensatz wird nicht gefunden
 
Zitat:

Zitat von Christian Seehase
wenn FNR den Wert 4858 als string enthält, wiese fragst Du dann nach "4858" ab?

Stop ! Sofern sich Foxpro an den SQL Standard hält, dann braucht man für strings schon quotes. Aber keine doppelten.

Gambit 13. Apr 2005 12:36

Re: Datensatz wird nicht gefunden
 
so wird der Datensatz gefunden:

Delphi-Quellcode:
Query.SQL.Text:='select * from Filme where TRIM (FNR) = '+quotedStr('4858') ;

Hansa 13. Apr 2005 12:55

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:

Gambit 13. Apr 2005 13:00

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...

RavenIV 13. Apr 2005 13:10

Re: Datensatz wird nicht gefunden
 
Zitat:

Zitat von Gambit
so wird der Datensatz gefunden:

Delphi-Quellcode:
Query.SQL.Text:='select * from Filme where TRIM (FNR) = '+quotedStr('4858') ;

ich versteh nicht, was der TRIM hier soll bzw. bewirkt.

Treffnix 13. Apr 2005 13:16

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:57 Uhr.
Seite 1 von 2  1 2      

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