Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

hallo erstmal und zwar ich habe ein programm geschrieben mit dem ich auf eine datenbank zugreifen kann im laufe meiner OPTIMIERUNGSVERSUCHE hab ich es geschafft den zugrif auf entweder name oder vorname oder vorname und nachname in sql zu programieren das problem ist allerdings das es scheinbar nur nach name oder vorname geht, da wenn ich vorname eingebe und nachname was falsches er den datensatz dennoch findet und anderstherum genauso

also bsp name = meier vorname = otto

wenn ich eingebe name =meier1 vorname =otto

dann musste normalerweise eine fehlermeldung kommen das der datensatz nicht vorhanden ist aber er zeigt den datensatz normal an ich hab auch schon verscuht mit klammern zu distanzieren aber es hat keine auswirkung

binn für jede hilöfe dankbar

String data[][] = myBox.queryAccess("SELECT * FROM KlientTab WHERE Name='" + jTextFieldName.getText() + "'"

+ "OR (Vorname = '" + jTextFieldVorname.getText() + "')"

+ "OR (name = '" + jTextFieldName.getText() + "'"

+ "AND Vorname = '" + jTextFieldVorname.getText() + "')");

o0 och hab das eben so reinkopiert ich hoffe die ubersichtlichkeit sinkt nicht =(

mit den klammern innerhalb des befehls hab ich versuch die befehle zu differenzieren

ps ich hab auchs chon versucht etwas auf folgender seite herauszufinden leider ohne erfolg

SQL Aggregatfunktionen

Geschrieben
das problem ist allerdings das es scheinbar nur nach name oder vorname geht, da wenn ich vorname eingebe und nachname was falsches er den datensatz dennoch findet und anderstherum genauso

Bitte schreibe Deine Beiträge in korrekter Groß- und Kleinschreibung!

Natürlich ist das, so wie es dort steht korrekt, denn "and" bindet stärker als "or". Deine Condition wird "true", wenn entweder der Vorname oder (Vorname und Nachname) gefunden wird.

Bitte informiere Dich über "exklusives-oder", "oder" und "und"

Geschrieben

also bei nur nachname funktioniert das acuh ^^

und wegen dem exklusiv oder deswegen hab ich doch auf der bereits erwänten seite nechgeschaut aber da steht ja nix von exclusiv kennt man ja aus digitaltechnik aber für sql stand da nix drauf aud der etrwähnten seite naja ich gug nochmal

Geschrieben

da ich immernoch nicht wies wie ich zitat mache sry sag ich einfach mal den namen

flashpixx

es funktioniert auch wenn ich NUR den nachnamen eingebe das ist aber schon alles

naja und google hat mir acuh nicht wirklich weiter geholfen auser das ich die ausdrücke vor und nach xor in klammern setzen muss war zumindest im bsp aber das hat auch nix geändert

Geschrieben

joa müsste es eigendlich ^^ es ist mir nur nicht aufgefallen, da es keine auswirkung hatte

und mein problem ist damit auchnicht gelöst (leider)

er nimmt immernochnicht beide felder einzeln (er soll aber AUCH beide felder zusammen zur auswahl nehmen )

Geschrieben

ichw eißs das man damit dabellen und so erstellen kann aber so auf sql ebene weiß ich da garnix von das mit dabelle is so ziemlich das einzige mehr musste man in der schule bis jetz acuh nicht wissen

aber mein problem besteht immernoch

Geschrieben

aber mein problem besteht immernoch

Aha schön. Wie wäre es, wenn Du über Dein Problem nachdenkst und mit Hilfe der hier gegebenen Antworten eine Lösung entwickelst?

Die Antworten sind durchaus ausreichend um eine Lösung zu finden. Ich denke mal Du willst nach "Nachname oder Vorname oder beides" suchen, das wäre das "or", wenn es nur um genau eins von beiden geht, dann "xor"

Und ich bitte Dich noch einmal auf korrekte Orthographie zu achten!

Geschrieben

okay ich bin zu blöd dafür -.-

wofür die einzelnen gatter sind is mir schon klar

aber es lässt sich nicht in einen sql befehl verknüpfen das is mein problem und auf der wiki seite steht nur die infos aus der digitaltechnik aber nicht aus sql aber naja egal dennoch danke für die hilfe

Geschrieben

String data[][] = myBox.queryAccess("SELECT * FROM KlientTab WHERE Name='" + jTextFieldName.getText() + "'"

+ "OR (Vorname = '" + jTextFieldVorname.getText() + "')"

+ "OR (name = '" + jTextFieldName.getText() + "'"

+ "AND Vorname = '" + jTextFieldVorname.getText() + "')");

Bedeutet doch:

Wähle von Klienttab welche den namen oder den vornamen oder den namen und den vornamen haben

Irgendwie bisl merkwürdig, wenn ich dich richtig verstehe sollen nur einträge gelistet werden wo vor und nachname stimmen?

Geschrieben

genau das bedeutet es ^^ ich hatte zuerst radiobutten dafür also name , vorname, beides und dann hab ich die weg gemacht und wollte das alles in einem sql befehl schreiben ABEr wenn ich name richig schriebe und den nachnamen falsch musste normal eine fehlermeldung kommen das ist aber nicht der fall der vorname wird dann einfach richtig uberschrieben und das ist mein problem ^^

es soll beides sein (entweder vor oder nachname) oder (vor und nachname) ^^

Geschrieben
es soll beides sein (entweder vor oder nachname) oder (vor und nachname) ^^

Steh ich jetzt auf der Leitung oder wird deine Anforderung nicht durch folgendes SQL erschlagen?


" where vorname = '"+jTextFieldVorname.getText()+"' or name = '"+jTextFieldName.getText()+"'"
[/code]

Frank

Geschrieben
Steh ich jetzt auf der Leitung oder wird deine Anforderung nicht durch folgendes SQL erschlagen?

Nein, nehmen wir mal an, wir haben jemanden, der "Otto Meier" heißt, dann würde bei einem "or" auch jeder "Otto ??" und jeder "??? Meier" heraus kommen. So wie ich den OP verstehe, soll wenn beide Namensteile gesetzt sind nach "Otto Meier" suchen und wenn nur ein Namensteil vorhanden ist, eben entweder nach Nachname == Meier bzw Vorname==Otto

@OP: in dem man jede Möglichkeit genau Prüfung und diese entsprechend verknüpft

Geschrieben

klingt interessantt mit dem == hab es auch ausprobiert aber dann verlangt er einen operater daraufhin hab ich klammern gesetzt was aber auch nicht hilft dann hab ich versucht das == auserhalb des sql zu schreiben weil es glaube ich ein java befehl ist wo dann aber der querry access nen problem bekommt zurzeit hab ich folgenden code

String data[][] = myBox.queryAccess("SELECT * FROM KlientTab WHERE (Name=='" + jTextFieldName.getText() + "')"

+ "xOR (Vorname == '" + jTextFieldVorname.getText() + "')"

+ "xOR (Name = '" + jTextFieldName.getText() + "')"

+ "AND (Vorname = '" + jTextFieldVorname.getText() + "')");

Geschrieben

das "==" ist C Syntax, wie das im DBMS lautet, musst Du schon selbst eingeben.

Nur mal noch ein Hinweis: Er darf den (Vornamen nur prüfen, wenn der Nachname leer ist) xor (Nachnamen nur prüfen, wenn Vorname leer) xor (Vorname und Nachname)

Geschrieben

also ich hab heute mal meine lehrer gefragt und der wusste nichtmal das es "==" als sql befehl gibt und bei google konnt ich jetz auch nix uber == syntax für dbms herausfinden

ich hab den code jetz tw etwas umgeschrieben (wobei er jetz garnix mehr anzeigt ) aber naja das größere problem ist jetz erstmal die richtige syntax für ==

DAS IST MEIN DERZEITIGER SQL VERSUCH

String data[][] = myBox.queryAccess("SELECT * FROM KlientTab WHERE (Name = '" + jTextFieldName.getText() + "'"

+ "AND '" + jTextFieldVorname + "' = Null)"

+ "xOR (Vorname = '" + jTextFieldVorname.getText() + "'"

+ "AND '" + jTextFieldName + "' = Null)"

+ "xOR (Name = '" + jTextFieldName.getText() + "'"

+ "AND Vorname = '" + jTextFieldVorname.getText() + "')");

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...