5 Stimmen

Hat jemand ein Beispiel für eine Benutzeroberfläche zum Erstellen einer SQL-Where-Klausel?

Ich habe Schwierigkeiten, verschachtelte Bedingungen auf einer intuitiven Schnittstelle abzubilden.

z.B.. Wie würden Sie ((Bedingung1 UND Bedingung2) ODER (Bedingung1 UND Bedingung5)) UND Bedingung4 darstellen?

7voto

Bryan Oakley Punkte 337213

Hier ist ein Screenshot eines Prototyps, den ich vor ein paar Jahren für eine Linux-Anwendung erstellt habe. Man konnte auf die Symbole +/- klicken, um einer Gruppe Zeilen hinzuzufügen, und auf die Schaltflächen "Neue hinzufügen..." und "Letzte entfernen..." klicken, um die unterste Gruppe zu entfernen.

Über jeder Gruppe befanden sich mehrere Menübuttons mit den Auswahlmöglichkeiten "UND Elemente, die übereinstimmen..." / "ODER Elemente, die übereinstimmen..." (mit Ausnahme der ersten Gruppe, die leicht variierte), und "JEDE der folgenden" / "ALLE der folgenden". Jede Zeile war typabhängig, d. h. wenn Sie eine Zeichenkette für die Variable ausgewählt haben, lauteten die Bedingungen "IST", "IST NICHT", "BEGINNT MIT" usw. Bei ganzen Zahlen lautete die Bedingung "IST", "GRÖSSER ALS" usw., bei Datumsangaben "AN", "VOR", "AN ODER VOR" usw.

Das Wort "oder" vor der zweiten und dritten Zeile der ersten Gruppe bedeutet "oder", wenn "IRGENDEINE der folgenden Optionen" ausgewählt wurde, und "und", wenn "ALLE der folgenden Optionen:" ausgewählt wurden, um die Auswahl zu verstärken und das "Lesen" des Dialogs zu erleichtern.

Man konnte damit nicht jede denkbare Abfrage durchführen, aber ich denke, es deckte etwa 90 % dessen ab, was ein durchschnittlicher Benutzer tun wollte, und zwar auf eine meiner Meinung nach recht brauchbare Weise.

screenshot of db query form
(Quelle: <a href="http://www1.clearlight.com/~oakley/dbquery.jpg" rel="nofollow noreferrer">clearlight.de </a>)

3voto

Constantin Punkte 26508

Manche Leute würden sagen, dass dies so intuitiv ist, wie es nur geht.

logic

2voto

JustinD Punkte 1606

Angenommen, .NET, würde ich mit einem DataGridView gehen, um jede Bedingung zu speichern und jeder eine ID zuzuweisen, wie es erstellt wird, und ein Textfeld haben, das Sie die bestimmten Abfragebedingungen eingeben können.

Sie könnten dann, sobald alle Bedingungen geschrieben sind, die Kombination von 2 auf einmal mit entweder einem AND oder einem OR erlauben und dann die resultierende Abfrage zur Überprüfung anzeigen lassen

Zustand1

Bedingung2

Zustand3

Zustand4

Zustand5

in Ihrem Fall, sobald Sie jedes zu Ihrem Dataset hinzufügen und die DataGridView auffüllen, würden Sie dann tun (ich stelle mir ein Formular mit 3 Dropdown-Feldern, oben und unten ein erlauben für Bedingungen oder "Verbindungen" und die mittlere Dropdown ist AND/OR nur:

Bedingung1 AND Bedingung2 = "Compound1"

Bedingung1 AND Bedingung5 = "Compound2"

Verbindung1 ODER Verbindung2 = "Verbindung3"

Verbindung3 AND Bedingung4 = "Verbindung4"

und compound4 ist Ihre endgültige Abfrage

Sinn machen?

2voto

GSerg Punkte 73326

TheBat! hat dafür die beste Schnittstelle, auf die ich persönlich gestoßen bin. (Wird für Mailsortierregeln verwendet.)

Es geht:

Quellennachweis ist nicht einer der \\Google\Inbox

UND

Thema endet mit "neuer Kommentar"

OR Thema Match "irgendeine Zeichenkette"

1voto

NeuroSys Punkte 31

Microsoft SQL Server verfügt über eine solche Schnittstelle. Ich habe sie in SQL Server 2000 verwendet, aber ich wette, dass sie auch in 2005 Express vorhanden ist, so dass Sie einen Blick darauf werfen können, wenn Sie möchten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X