getRecordSet zeigt vorherige Abfrage an. Warum?

JavaFX und die Programmierung

Moderator: wegus

Antworten
henerth
Beiträge: 1
Registriert: 31.07.2010, 10:04

getRecordSet zeigt vorherige Abfrage an. Warum?

Beitrag von henerth » 31.07.2010, 10:21

Hallo,

ich will mit javafx auf einen REST-Service (Grails) zugreifen.
Das sieht auf der Grailsseite ganz gut aus. Der Richtige Satz wird zurückgeliefert.

In JavaFX habe ich das Problem, das ich den read button immer 2 mal klicken muss, dass der richtige Satz angezeigt wird.
bzw. es werden immer die Daten der vorherige Abfrage beim .dump() ausgegeben.
(auto-refresh habe ich ausgeschalten)

Ich vermute, dass ich das ganze asynchron progammieren muss, weil die Rückmeldung nicht schnell genug ist,
aber ich finde keine Beispiele.

Code: Alles auswählen

//Definition, der httpDataSource
public-read def read_id: org.netbeans.javafx.datasrc.HttpDataSource = org.netbeans.javafx.datasrc.HttpDataSource  
...
  function readAction(): Void {
        var string1 = id.text.toString();
        println(string1);
        var pair = Pair {
                    name: "id"
                    value: string1
                };
        println(pair);
        read_id.queryParams = (pair);
        recordset_xyz = read_id.getRecordSet(); //Hier erfolgt die Abfrage
        recordset_xyz.dump();
    }

Mitch
Beiträge: 79
Registriert: 02.03.2010, 12:39

Re: getRecordSet zeigt vorherige Abfrage an. Warum?

Beitrag von Mitch » 31.08.2010, 13:21

Hi,
falls das Problem noch aktuell ist:
Ich bin mir nicht sicher was das .dump() macht allerdings hatte ich ein ähnliches Problem bei einer sql Abfrage.
Ich habe das Problem umgangen, indem ich meine Ausgabe bzw. meine Anfrage über eine bind Funktion realisiert habe.
Ich habe das in etwa so gelöst:

Code: Alles auswählen

...
var tmp= bind sqlabfrage(letzterWert);

public function run() {
ersterWert="x";
zweiterWert ="y";
letzterWert="z"; 

}
function sqlabfrage(data:String){
println(abfragefunktion(ersterWert,zweiterWert,data)};
}
Mit anderen Worten sobalt der letzte Wert, den ich für die sql Abfrage benötige geändert wird, wird durch das binding die Funktion aufgerufen.

Eventuell köttest du dir eine Variable tmp erstellen in der du die Ausgabe von recordset_xyz.dump(); speicherst und diese einer bound funktion übergeben, die dann die Ausgabe macht.
So würde die Ausgabe etwas verzögert erfolgen, dürfte aber immer dann kommen, wenn es eine änderung gibt.

Vielleicht hilft es dir ja.

MfG

Antworten