![]() |
Datenbank: Access • Version: 2003 • Zugriff über: ADO
Datenbank Abfrage Mit String
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; |
Re: Datenbank Abfrage Mit String
Zitat:
Ich habe Dir im letzten Thread schon gesagt, dass ich Dein Konzept nicht verstehe. Daran hat sich nichts geändert. |
Re: Datenbank Abfrage Mit String
Das ist auch kein Konzept. Das ist nur ein Code Schnipsel den ich ändern will.
|
Re: Datenbank Abfrage Mit String
Das was ich haben möchte steht in diesem Thread. Nur mit den oben genannten Änderungen.
![]() |
Re: Datenbank Abfrage Mit String
Das weiß ich, ich habe den Source wiedererkannt ;)
|
Re: Datenbank Abfrage Mit String
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. :duck:
|
Re: Datenbank Abfrage Mit String
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:
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.
select * from abc
where ' wert1 wert2 wert3 wert5 wert6 wert9 ' like '% ' || wert || ' %' Grüße vom marabu |
Re: Datenbank Abfrage Mit String
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.
|
Re: Datenbank Abfrage Mit String
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 |
Re: Datenbank Abfrage Mit String
Zitat:
:drunken: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:58 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 by Thomas Breitkreuz