screamboy14 Geschrieben 12. September 2009 Geschrieben 12. September 2009 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 Zitieren
robotto7831a Geschrieben 12. September 2009 Geschrieben 12. September 2009 Hallo, wann soll er jetzt was finden? 1. Wenn Name und Vorname richtig sind oder 2. wenn Name oder Vorname richtig ist? Frank Zitieren
flashpixx Geschrieben 12. September 2009 Geschrieben 12. September 2009 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" Zitieren
screamboy14 Geschrieben 12. September 2009 Autor Geschrieben 12. September 2009 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 Zitieren
screamboy14 Geschrieben 13. September 2009 Autor Geschrieben 13. September 2009 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 Zitieren
Saerdna Geschrieben 13. September 2009 Geschrieben 13. September 2009 + "OR (name = '" + jTextFieldName.getText() + "'" Muss das nicht so lauten? + "OR (Name = '" + jTextFieldName.getText() + "'" Zitieren
screamboy14 Geschrieben 13. September 2009 Autor Geschrieben 13. September 2009 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 ) Zitieren
flashpixx Geschrieben 13. September 2009 Geschrieben 13. September 2009 Für doch bitte das Statement einmal direkt auf dem DBMS aus und schau Dir das Ergebnis an Zitieren
screamboy14 Geschrieben 13. September 2009 Autor Geschrieben 13. September 2009 ich habe nur microsoft accsess und da hab ich nicht die geringste ahnug wo man da nen sql befehl eingeben soll sry Zitieren
robotto7831a Geschrieben 13. September 2009 Geschrieben 13. September 2009 Na z. B. kannst Du eine Abfrage in Access erstellen. Frank Zitieren
screamboy14 Geschrieben 13. September 2009 Autor Geschrieben 13. September 2009 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 Zitieren
flashpixx Geschrieben 13. September 2009 Geschrieben 13. September 2009 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! Zitieren
screamboy14 Geschrieben 13. September 2009 Autor Geschrieben 13. September 2009 ja das stimmt ich möchte entweder nachname oder vorname oder nachname und vorname und ich hab xor und or schon in jeder möglichen variante versucht und mit klammern _RS schwäche Zitieren
flashpixx Geschrieben 13. September 2009 Geschrieben 13. September 2009 XOR-Gatter ? Wikipedia Oder-Gatter ? Wikipedia Zitieren
screamboy14 Geschrieben 13. September 2009 Autor Geschrieben 13. September 2009 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 Zitieren
Saerdna Geschrieben 13. September 2009 Geschrieben 13. September 2009 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? Zitieren
screamboy14 Geschrieben 13. September 2009 Autor Geschrieben 13. September 2009 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) ^^ Zitieren
flashpixx Geschrieben 13. September 2009 Geschrieben 13. September 2009 es soll beides sein (entweder vor oder nachname) oder (vor und nachname) Dann überlege bitte wo nun welches "oder" hin muss Zitieren
screamboy14 Geschrieben 13. September 2009 Autor Geschrieben 13. September 2009 wie gesagt ich hab schon sämtliche möglichkeiten mit or und xor ausgetestet und mit klammern acuh das hab ich aber bereits geschrieben ^^ Zitieren
robotto7831a Geschrieben 13. September 2009 Geschrieben 13. September 2009 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 Zitieren
screamboy14 Geschrieben 13. September 2009 Autor Geschrieben 13. September 2009 wie kann man das denn sonst machen, dass es alle 3 möglichkeiten berücksichtigt Zitieren
flashpixx Geschrieben 13. September 2009 Geschrieben 13. September 2009 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 Zitieren
screamboy14 Geschrieben 13. September 2009 Autor Geschrieben 13. September 2009 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() + "')"); Zitieren
flashpixx Geschrieben 13. September 2009 Geschrieben 13. September 2009 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) Zitieren
screamboy14 Geschrieben 14. September 2009 Autor Geschrieben 14. September 2009 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() + "')"); Zitieren
Empfohlene Beiträge
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.