Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi NexusDB Select eines Strings geht nicht (https://www.delphipraxis.net/133870-nexusdb-select-eines-strings-geht-nicht.html)

DeddyH 11. Mai 2009 12:41

Re: NexusDB Select eines Strings geht nicht
 
Bekommst Du denn so ein Ergebnis?
SQL-Code:
SELECT * FROM TREIHE Where Reihe LIKE '%Classic%'

hoika 11. Mai 2009 13:34

Re: NexusDB Select eines Strings geht nicht
 
Hallo,

oder so ?

SQL-Code:
SELECT * FROM TREIHE Where Reihe = "Classic"

Heiko

Trigger2003 12. Mai 2009 03:01

Re: NexusDB Select eines Strings geht nicht
 
oder mal sicherheitshalber so?

SQL-Code:
SELECT * FROM treihe WHERE TRIM(reihe) = 'Classic'
funktioniert bei mir einwandfrei im Nexus EnterpriseManager, allerdings mit Remote-Server

NexusDB unterstützt übrigens keine doublequotes bei Feldwerten, nur bei Feldnamen

mkinzler 12. Mai 2009 05:28

Re: NexusDB Select eines Strings geht nicht
 
Zitat:

NexusDB unterstützt übrigens keine doublequotes bei Feldwerten, nur bei Feldnamen
Wie die meisten DBMS

Roadrunner.1 12. Mai 2009 10:09

Re: NexusDB Select eines Strings geht nicht
 
Hallo Zusammen,

PROBLEM GELÖST :bounce2:

Allerdings weiß ich noch nicht so genau warum, aber das ist erstmal zweitrangig.

Wie ich weiter oben schon schrieb, fügte ich die Datensätze mit folgendem Code hinzu:

Delphi-Quellcode:
SQL.Clear;
SQL.Add('INSERT INTO TREIHE ');
SQL.Add('(REIHE)');
SQL.Add('VALUES (''');
SQL.Add(_s);
SQL.Add(''');');
ExecSQL;
Dies führt wohl zu irgendwelchen nicht sichtbaren Zeichen in der Datenbank. Setz ich den
VALUES Teil des Strings in einer einzigen Zeile zusammen funktioniert nämlich auch der SELECT.

Delphi-Quellcode:
SQL.Clear;
SQL.Add('INSERT INTO TREIHE ');
SQL.Add('(REIHE)');
SQL.Add('VALUES ('''+_s+''');');
Ich dachte es wäre egal was ich in die Stringliste schreibe, Hauptsache alles in Reihe gelesen macht
Sinn. Dies scheint aber nicht der Fall zu sein. OK, ich lern ja noch damit umzugehen und werde
zukünftig zusammenhängende Befehlsteile auch zusammen in nur einen String schreiben.

Danke nochmal an alle für die Tipps.

DeddyH 12. Mai 2009 10:12

Re: NexusDB Select eines Strings geht nicht
 
Sofern die verwendeten Komponenten das unterstützen, solltest Du das SQL sowieso parametrisieren.

hoika 12. Mai 2009 10:15

Re: NexusDB Select eines Strings geht nicht
 
Hallo,

genau wegen sowas benutzt man Parameter.

Delphi-Quellcode:
SQL.Clear;
SQL.Add('INSERT INTO TREIHE ');
SQL.Add('(REIHE)');
SQL.Add('VALUES (:Reihe)');
ParamByName('Reihe').AsString:= _s;
ExecSQL;
oder QuotedStr

Delphi-Quellcode:
SQL.Clear;
SQL.Add('INSERT INTO TREIHE ');
SQL.Add('(REIHE)');
SQL.Add('VALUES ('+QuotedStr(_s)+')');
ExecSQL;
Parameter sind aber schöner, gerade wenn es um Datumsangaben geht.
Warum dann 2 Sachen (Parameter/QuotedStr) mischen.


Heiko

Heiko

nahpets 12. Mai 2009 10:32

Re: NexusDB Select eines Strings geht nicht
 
Hallo,
Zitat:

Zitat von Roadrunner.1
Delphi-Quellcode:
SQL.Clear;
SQL.Add('INSERT INTO TREIHE ');
SQL.Add('(REIHE)');
SQL.Add('VALUES (''');
SQL.Add(_s);
SQL.Add(''');');
ExecSQL;

damit hast Du "Zeilenvorschub + Classic + Zeilenvorschub" in die Datenbank geschrieben. Alles zwischen den beiden ' wird in die Datenbank eingefügt und wenn in der Stringliste (SQL) per Add dazwischen Zeilen eingefügt werden, so landen auch die entsprechenden Zeilenumbrüche in der Datenbank.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:56 Uhr.
Seite 2 von 2     12   

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