AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi NexusDB Select eines Strings geht nicht
Thema durchsuchen
Ansicht
Themen-Optionen

NexusDB Select eines Strings geht nicht

Ein Thema von Roadrunner.1 · begonnen am 11. Mai 2009 · letzter Beitrag vom 12. Mai 2009
Antwort Antwort
Seite 1 von 2  1 2      
Roadrunner.1

Registriert seit: 3. Mai 2009
20 Beiträge
 
Delphi 10.3 Rio
 
#1

NexusDB Select eines Strings geht nicht

  Alt 11. Mai 2009, 10:39
Datenbank: NexusDB • Version: 2 • Zugriff über: NexusDB Enterprise Manager
Hallo zusammen,

scheinbar bin ich einfach zu blöd, oder seh' den Wald vor Bäumen nicht.
OK es ist meine erste Datenbank die ich (versuche) zu programmieren, aber
so ganz unwissend bin ich trotzdem nicht.

Also, nachdem ich NexusDB (embendded) installiert und via SQL auch eine Tabelle
angelegt sowie einige Datensätze angelegt habe, versuche ich nun
via SELECT darauf zuzugreifen, und scheitere. Und das selbst mit dem
DBBrowser.

Ich habe eine einfache Tabelle mit 2 Spalten angelegt:
Delphi-Quellcode:
    SQL.Add('CREATE TABLE TREIHE (');
    SQL.Add('TREIHEID AUTOINC NOT NULL PRIMARY KEY, ');
    SQL.Add('REIHE VARCHAR(16) );');
Wenn ich nun folgenden SQL-Befehl via DBBrowser losschicke
funktioniert alles so wie gewünscht:

SELECT * FROM "TREIHE" Where TReiheID < 100;

Versuch ich aber:
SELECT * FROM "TREIHE" Where Reihe = 'Classic'; dann erhalte ich keine Datensätze zurück obwohl mehrere tausend
dem Suchkriterium entsprechen. Was mach ich falsch?

[edit=mkinzler]Diverse Tags eingefügt Mfg, mkinzler[/edit]
Christian Drenkard
--
mfg.
Christian Drenkard
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: NexusDB Select eines Strings geht nicht

  Alt 11. Mai 2009, 10:47
Steht da genau 'Classic' drin? Groß-/Kleinschreibung?
Markus Kinzler
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#3

Re: NexusDB Select eines Strings geht nicht

  Alt 11. Mai 2009, 10:51
Zitat von mkinzler:
Steht da genau 'Classic' drin? Groß-/Kleinschreibung?
Oder sogar Leerzeichen vorne/hinten?
Wenn die Spalten als Char und nicht als VarChar angelegt werden, werden die Werten hinten mit Leerzeichen aufgefüllt.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Roadrunner.1

Registriert seit: 3. Mai 2009
20 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: NexusDB Select eines Strings geht nicht

  Alt 11. Mai 2009, 11:26
Ja, Groß/Kleinschreibung ist richtig, ich habe sogar den String per
Copy&Paste aus der Tabelle in die SQL-Abfrage kopiert.

Leerzeichen denke ich sollen nicht drin sein, wobei ich Leerzeichen
hinten auch damit ausgeschlossen habe indem ich in die Abfrage bis
zu 16 Leerzeichen hinzugefügt habe.

Das mit Char war sogar mein 1. Versuch. Aber auch dort funktionierte
es nicht, selbst wenn ich in den Select Leerzeichen hinten anfügte.

btw. Ich mach mit diesem Select nun schon ca. 4h rum, und hab' alles
ausprobiert was mir eingefallen ist, bevor ich hier postete.

Hier noch der Insert Befehl mit dem ich die Zeilen erstelle
vielleicht ist ja dort noch ein Fehler, mit diesem String zusammensetzen
in Delphi hab' ich es nicht so. Insbesondere wenn dort ' Zeichen mit drin
vorkommen.

Delphi-Quellcode:
    SQL.Clear;
    SQL.Add('INSERT INTO TREIHE ');
    SQL.Add('(REIHE)');
    SQL.Add('VALUES (''');
    SQL.Add(_s);
    SQL.Add(''');');
    ExecSQL;
wobei _s sich aus einem Array of String ergibt:

CS_Reihe : array[TModellreihe] of string = (
'',
'*****',
'Classic',
'Modern',
'Elegant',
'*****'
);

Und nur die 3 Einträge mit sinnvollem Inhalt in der DB gespeichert werden.

[edit=mkinzler] Mfg, mkinzler[/edit]
Christian Drenkard
--
mfg.
Christian Drenkard
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#5

Re: NexusDB Select eines Strings geht nicht

  Alt 11. Mai 2009, 11:36
Steht das jetzt alles in einem Feld? Was kommt denn bei einemSELECT Reihe FROM TReihe heraus? 3 Datensätze oder nur einer?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Roadrunner.1

Registriert seit: 3. Mai 2009
20 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: NexusDB Select eines Strings geht nicht

  Alt 11. Mai 2009, 11:57
Nein nein, da kommen fast 50.000 Einträge raus. In _s ist immer nur
einer der Strings drin. Und dieser wird direkt daraus kopiert.

Code:
pseudocode: _s:=CS_Reihe[TModellreihe(1)];
Ich wollte damit nur zeigen das die Einträge in der DB konstante
Strings sind (aus Delphi Sicht), und (unter Delphi) da nichts davor
oder danach kommt (Leerzeichen, Tabulatoren, Zeilenendezeichen, usw.).
Begin von SELECT * FROM TREIHE: TREIHEID REIHE
1 Elegant
2 Classic
3 Classic
4 Classic
5 Classic
6 Classic
7 Classic
...

Das zeigt der DBBrowser ja auch alles richtig an. Da aber niemand sonst
darüber berichtet das in NexusDB keine Selects funktionieren, denk ich
das ich den Fehler mach, nur seh' ich nicht wo.

[edit=mkinzler]Diverse Tags eingefügt Mfg, mkinzler[/edit]
Christian Drenkard
--
mfg.
Christian Drenkard
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#7

Re: NexusDB Select eines Strings geht nicht

  Alt 11. Mai 2009, 12:07
Moment, ich dachte, TReihe ist eine Stammdatentabelle. Dann macht es aber keinen Sinn, dieselben Einträge mehrfach zu speichern.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: NexusDB Select eines Strings geht nicht

  Alt 11. Mai 2009, 12:11
Es geht doch nichts über (richtiges) Vertändnis der Noramlisierung
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: NexusDB Select eines Strings geht nicht

  Alt 11. Mai 2009, 12:38
Hallo,

zeig doch mal deinen Delphi-Code rund um das Select.


Heiko
Heiko
  Mit Zitat antworten Zitat
Roadrunner.1

Registriert seit: 3. Mai 2009
20 Beiträge
 
Delphi 10.3 Rio
 
#10

Re: NexusDB Select eines Strings geht nicht

  Alt 11. Mai 2009, 13:38
1. Das soll meine Stamdatendatei werden, da soll später auch nur
für jede Zeile was anderes stehen, aktuell versuch ich erstmal
überhaupt einen Select auszuführen.

2. Normalisieren, ist das was ich machen will, denn die Ausgangsdaten
sind nichtmal in 1. Normalform. Aber gerade dafür brauch ich einen
Select um herauszufinden ob der entsprechende Eintrag schon exsistiert.

3. Delphicode rund um den SELECT ist insoweit irrelevant, da der von mir
verwendete SELECT Befehl schon im DBBrwoser von Nexus nicht funktioniert.
Genau das ist ja mein aktuelles Problem. Das dann in Delphi auch hinzubekommen,
das wäre dann der 2. Schritt.

Was ich also nicht schafe ist das, was ich ganz zu anfang schon schrieb,
im DBBrowser den Befehl SELECT * FROM "TREIHE" Where Reihe = 'Classic' auszuführen und dabei auch ein ergebnis zu erhalten.

Irgentwelche Ideen was man dabei beachten muss?

[edit=mkinzler]SQL-Tag eingefügt Mfg, mkinzler[/edit]
Christian Drenkard
--
mfg.
Christian Drenkard
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:27 Uhr.
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