Ergebnis von Cursor c1 mit Cursor c2 vergleichen

stardesigner

Neues Mitglied
Hi Leute,

nur zur Information, ich bin noch ein blutiger Anfänger mit der Java-Programmierung und arbeite gerade mit Eclipse an einem eigenen Programm.

In meinem Programm versuche ich nur das Ergebnis aus zwei verschiedenen Datenbankabfragen miteinander zu vergleichen. Das sollte doch eigentlich nicht so schwer sein, oder?
Ich werde bald wahnsinnig, ich finde einfach keine richtige Lösung dafür. Kann mir vielleicht einer von Euch helfen?


c4 =db.getAns(Index, strTo);
c6 =db.getAns(Index, strTo);

Hier sollte jetzt eigentlich der Abgleich erfolgen. Ich weiß nur nicht wie.
Ich hab es auch schon mit compareto and equals ausprobiert ... aber das läuft alles irgendwie nicht korrekt. Der Aufruf und die Abfrage funktioniert alles prima. Wär echt super, wenn mir jemand auf die
Sprünge helfen könnte.

public Cursor getAns(int rightid, String answer )
{
KEY_ANSWER = answer;
String myPath = DB_PATH + DB_NAME;
myData = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);

Cursor cur;
cur=myData.rawQuery("select "+KEY_ANSWER+" from "+TABLE_NAME+" where _id='"+rightid+"'",null);
cur.moveToFirst();
myData.close();
return cur;
}
 
Dann brachen wir aber mehr infos, das siht zumindest nicht nach standart JDBC aus, welchen datentyp haben c4, c6?
Warum wrid answer übergeben ? willst du das dann mit dem inner datenbank vergelichen?

Wieso musst du die rightid eigentlich übergeben? sollte icht in der datenbank mit den fragena cuhs tehenw elcehs die richtige ist?
 
Das ist die Android SQLite API.

Ich an deiner Stelle würde mir passend zu deinen Datensätzen eine Javaklasse schreiben. Diese wird dann mit den Werten aus der Abfrage gefüllt und anschließend kannst du die beiden Klassen vergleichen (dabei nicht vergessen equals und hashCode zu überschreiben)
 
Hi Jungs,

erst einmal vielen Dank für Eure schnelle Antwort.
Das stimmt hierbei geht es um eine Android App!

"welchen datentyp haben c4, c6?"
--> das wüßte ich wirklich auch gerne... (ich versteh diese Objekte einfach nicht)
Unter den Expressinons in Eclipse steht nur SQLiteCursor.
Ausgelesen und übergeben wird nur einfacher Text und zwar hiermit:
c4 =db.getAns(Index, strTo)
btn_fs_answer_c.setText(c4.getString(0)

"Warum wrid answer übergeben ?"
"answer": hier wird der Spaltenname übergeben, welche dann ausgelesen werden soll. Der Spaltenname kann sich ändern.
"rightid" hier wird der Index übergeben um die entsprechende Zeile auszulesen

Am liebsten würde ich aus C4 einen einfachen Datentyp machen, so dass mann auch im Debugger erkennt, welcher Wert bzw. Text übergeben wird. Ich weiß leider nur nicht wie? Ich hab versucht, den Cursor einem String zu übergeben und beide miteinander zu vergleichen. Das übergeben funktioniert auch, jedoch weiß ich nicht, ob man die Strings dann miteinander vergleichen kann. Dummerweise finde ich im String (Debugger/Expressinons) auch keinen Wert, so dass man mal die Ergebnisse prüfen könnte. Erst im Dialog sehe ich ihn dann wieder den ausgelesenen Text.


@mvitz: das übersteigt leider noch meinen java-horizont.

Ich will doch letztendlich nur den Text zweier Variablen miteinander vergleichen. ???

Schon mal vielen Dank für eure Mühe,
Gruß
Dirk
 

Zurück
Oben