Java, Access Zugriff

bl@ckThorn

Neuling
Thread Starter
Mitglied seit
15.03.2004
Beiträge
11
Ort
K°rnten
Hab eine Datenbank mit Access und hab sie mit Java connected.
Hab jetzt nicht wirklich ein Problemm mit dem Zugriff....

String hilf = new String("FamName");
try{ stmt = con.createStatement();
rs = stmt.executeQuery("SELECT * FROM T_Uebung " +
"WHERE ''hilf'' LIKE 'M%'");

Habe mehrere RadioButtons und will, je nach Auswahl, entweder
auf die Tabelle FamName oder auf die Tabelle x zugreifen

Wie Schreib ich dies nun bei "WHERE ?????? LIKE 'M%');

Thx im Vorraus
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
meinst du tabelle oder spalte?

bei tabelle wäre es

rs = stmt.executeQuery("SELECT * FROM " + hilf + " WHERE feld LIKE 'M%'");

bei feld (glaub ich irgendwie eher) wäre es

rs = stmt.executeQuery("SELECT * FROM T_Uebung WHERE " + hilf + "' LIKE 'M%'");
 
THx für die Antwort!
Klappt optimal!

PS: Lösung für 'M%'
WHERE' "+hilf+"" ' "); lol
 
So... nächstes Problem
public void loeschen()
{ String j = jlData.getSelectedIndices().toString();
Statement stmt;
ResultSet rs;
try{ stmt = con.createStatement();
stmt.executeUpdate("DELETE * FROM T_Uebung " +
"WHERE FamName LIKE '"+j+"'");
}
Ich will den markierten Index (aus JList) aus der Datenbank löchen..
Wenn ich jedoch mit System out "j" ausgebe, steht irgendwas von wegen |@23g45
also irgentwas drin...
Indices liefert ein Array zurück, das ich aber in einen String umwandle...
Hepl
 
kannst du dir nicht irgendeinen wert aus der jlist ziehen, nachdem du löschst? also wenn da der famname drin ist, warum nimmst du dann irgendeinen komischen index?
 
1. der SQL-Befehl ist falsch
Code:
stmt.executeUpdate("DELETE * FROM T_Uebung " +
"WHERE FamName LIKE '"+j+"'");

Der müsste doch

Code:
delete from T_Uebung where FamName like '"+j+"'"

lauten.

2. du willst wahrschenlich, einen Wert aus dem String[] auslesen.
Wenn du ".toString();" aufrufst, dann bekommst du das Object zurück und nicht die Werte aus dem String-Array.
Daher solltest du j einen Wert aus dem String-Array zuweisen

Code:
String j        = new String("");
String[] values = jlData.getSelectedIndices();
Statement stmt  = con.createStatement();

if(values != null){
  for(int i=0; i<values.length; i++){
    j = values[i];

    try {
      stmt.execute("delete from T_Uebung where FamName like '"+j+"'");
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }
  }
}


Versuch das mal so.

Gruß CryingCat
 
Ok!
Das klappt auch, ich hab trotzdem keine Ahnung wozu der Stern * steht?
In der Schleife schreibst du ja einfach jeden Buchstaben einzeln in den String j?!
 
bei einem DELETE gibt man keinen * an, nur bei SELECT

ich geb jeden Buchstaben einzeln an?
Was steht den z.B. in dem Array drin?
Lauter einzelne Zeichen?

P.S. alles gute zum Geburtstag. :-)
 
Zuletzt bearbeitet:
So wieder nüchtern vom Birthday und wieter gehts mit dem Javaprog...
Hab da so ne spielerei mit einm JProgBar...
for(i=0; i<=100; i++)
{
try
{ Thread.sleep(100); //Schritte in Millisekunden
//jProg.setValue(i);
System.out.println(""+i);
}
catch(InterruptedException e)
{System.out.println("Hugo");
}
jProg.setValue(i);
}
Nun malt er den Wert der die PogressBar nur zum Schluss hin;
Also nur 0 und 100;
Min und Max wurden gesetzt....
Wiedermal Hilfe....??
 
Versuchs so:

Code:
    jProg.setValue(0);
    jProg.setMinimum(0);
    jProg.setMaximum(100);

    Thread progressBarThread = new Thread(){
      public void run(){
        for(int i=0; i<=100; i++){
          try{
            Thread.sleep(100);
            System.out.println(""+i);
          }
          catch(Exception ex){
            System.out.println("Hugo");
          }
          jProg.setValue(i);
        }
      }
    };
    progressBarThread.start();

Es ist so, das deine Anwendung als ein Thread läuft. Wenn du jetzt diesen Thread unterbrichst, oder der Thread mit anderen Sachen ausgelastet ist, dann kann er die GUI nicht aktuallisieren.
Daher musst du für die "Berechnung" einen eigenen Thread erstellen.

Gruß CryingCat
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh