AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datenbank Abfrage Mit String
Thema durchsuchen
Ansicht
Themen-Optionen

Datenbank Abfrage Mit String

Ein Thema von Jack23 · begonnen am 2. Okt 2007 · letzter Beitrag vom 2. Okt 2007
Antwort Antwort
Seite 1 von 2  1 2      
Jack23

Registriert seit: 20. Sep 2007
215 Beiträge
 
#1

Datenbank Abfrage Mit String

  Alt 2. Okt 2007, 18:34
Datenbank: Access • Version: 2003 • Zugriff über: ADO
Hallo

Ich mache mit Checkboxen eine Datenbank abfrage. Die Chekcboxen werden in einem String zusammen gesetzt. Code steht unten. Nun wird genau das Abgefragt. Ich möchte es aber so haben.....hm ich weiß ich bin schlecht im erklären. Ich mache ein Beispiel:

Tabelle abc:
wert:
wert1 wert2 wert3 /datensatz1
wert5 wert6 wert9 /datensatz2
wert5 wert13 wert34 /datensatz3

Ok das ist meine Tabelle.

Also WHERE wert. Wenn wert = wert1 wert2 wert3 ist wird der erste Datensatz abgefragt.
Alle durch Leerzeichen getrennt.
Wenn wert = wert5 wert6 wert9 ist wird der zweite Datensatz abgefragt.

So nun möchte ich es aber so haben wenn alle check boxen angekreuzt sind. Das sind 1,2,3,5,6,7.

Dann sollen beide Datensätze abgefragt werden. So holt er aber keinen aus der Datenbank weil er keine Übereinstimmung findet. Den dritten Datensatz dürfte er aber dennoch nicht ausgeben weil 13 und 34 nicht ausgewählt sind.
Ich hoffe ihr versteht was ich meine. Unten steht der Code zur Ansicht.
Delphi-Quellcode:
//String initialisieren
  sText := '';
  //Anhand des Zustandes String zusammenbauen mit Leerzeichen als Trenner
  for i := Low(Boxes) to High(Boxes) do
    if Boxes[i].Checked then
      sText := sText + Boxes[i].Caption + #32;
  //letztes Leerzeichen löschen
  if Length(sText) > 0 then
    Delete(sText,Length(sText),1);
    with Query do
  begin
    Close;
    SQL.Text := 'SELECT * FROM abc WHERE wert=' + QuotedStr(sText);
    Open;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Datenbank Abfrage Mit String

  Alt 2. Okt 2007, 19:35
Zitat von Jack23:
Ich hoffe ihr versteht was ich meine.
Ehrlich gesagt, nein.
Ich habe Dir im letzten Thread schon gesagt, dass ich Dein Konzept nicht verstehe. Daran hat sich nichts geändert.
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
Jack23

Registriert seit: 20. Sep 2007
215 Beiträge
 
#3

Re: Datenbank Abfrage Mit String

  Alt 2. Okt 2007, 20:22
Das ist auch kein Konzept. Das ist nur ein Code Schnipsel den ich ändern will.
  Mit Zitat antworten Zitat
Jack23

Registriert seit: 20. Sep 2007
215 Beiträge
 
#4

Re: Datenbank Abfrage Mit String

  Alt 2. Okt 2007, 20:41
Das was ich haben möchte steht in diesem Thread. Nur mit den oben genannten Änderungen.
http://www.delphipraxis.net/internal...t.php?t=119612
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Datenbank Abfrage Mit String

  Alt 2. Okt 2007, 20:42
Das weiß ich, ich habe den Source wiedererkannt
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
Jack23

Registriert seit: 20. Sep 2007
215 Beiträge
 
#6

Re: Datenbank Abfrage Mit String

  Alt 2. Okt 2007, 21:03
Also ok. Ist das Problem lösbar? Und was verstehst du an meiner Erklärung nicht? Und bitte komm mir nicht wieder mit einem Konzept. Ich bin nämlich ganz konzeptlos.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Datenbank Abfrage Mit String

  Alt 2. Okt 2007, 21:06
Hallo Jack,

du hast dein Problem leider nicht vollständig beschrieben. Vom Prinzip her ist folgendes möglich, wenn du für die möglichen Werte ein kanonisches Format definierst:

Delphi-Quellcode:
select * from abc
where ' wert1 wert2 wert3 wert5 wert6 wert9 ' like '% ' || wert || ' %'
So werden deine ersten beiden Beispielsätze gefunden. Sobald es dir gelingt dein Problem vollständig zu beschreiben, kann man auch eine allgemeine Lösung entwickeln.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Datenbank Abfrage Mit String

  Alt 2. Okt 2007, 21:07
Es würde mir leichter fallen, wenn Du mal ein ganz konkretes Beispiel postest (inkl. der Beschriftung der Checkboxen), was angekreuzt sein soll und was Du als Ergebnis haben möchtest.
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
Geronimo

Registriert seit: 18. Dez 2006
Ort: Hamburg
38 Beiträge
 
#9

Re: Datenbank Abfrage Mit String

  Alt 2. Okt 2007, 21:15
Ok, ich versuch's mal mit einer Antwort.
Irgendein ein sinnvolles Konzept oder eine sinnvolle DB-Struktur erkenne ich nicht.
Das muss ich aber auch nicht verstehen.
Ich fasse mal zusammen:
Du hast eine Tabelle in einer DB, die das Feld mit dem Namen wert hat,
wahrscheinlich ein Char, Varchar oder so was.
Außerdem hast du eine Reihe von Checkboxen in einem Array organisiert mit den Captions
wert1, wert2 etc.
Die Abfrage soll nun so aussehen, dass die Datensätze ausgewählt werden sollen,
bei denen wert = der Aneinanderreihung der Captions der angklickten Checkboxen ist,
durch Leerzeichen getrennt.
Wenn alle Checkboxen geklickt sind, soll Datensatz1 und Datensatz2 ausgewählt werden,
oder was auch immer.
Diese Fallunterscheidung kann man in einem IF-Statement erledigen.
Den Status der Checkboxen kann man ja abfragen. Wenn die AND-Verknüpfung aller immer
noch true ist, dann sind wohl alle checked.
Dann brauchst du nur noch die Bedingung für wert formulieren,also:
WHERE (wert = 'wert1 wert2 wert3') OR (wert = 'wert5 wert6 wert9')
... oder so ähnlich.
Alle Klarheiten beseitigt?
Ehrlich gesagt, Sinn scheint das nicht zu haben.

Gruss
Geronimo
Die Welt ist rechteckig, linear und Gauss-verteilt!
  Mit Zitat antworten Zitat
Geronimo

Registriert seit: 18. Dez 2006
Ort: Hamburg
38 Beiträge
 
#10

Re: Datenbank Abfrage Mit String

  Alt 2. Okt 2007, 21:20
Zitat:
Ich bin nämlich ganz konzeptlos.
Das ist, glaube ich, schon allen klar.
Die Welt ist rechteckig, linear und Gauss-verteilt!
  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 09:21 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