# Ticker in Realtime von einer DB



## Guest (22. Jan 2007)

Hi,

ich möchte einen Ticker machen, der die Daten aus einer DB hohlt (MySQL)
Das Problem ist, die Daten sollten echtzeit sein, weil in die DB dauernt geschrieben
wir und das möchte ich dann über den Ticker anzeigen ohne, wie bei allen 
anderen immer die Seite zu refreshen ?

Ist das Möglich - sowas zumachen ?

Könnt ihr mir da helfen ?


----------



## goofy79 (22. Jan 2007)

Ups sorry hab ich ausversehen als Gast gestellt die Frage


----------



## cullmann (22. Jan 2007)

Servus,

wenn ich das jetzt richtig verstanden hab:

 - Du möchtest ständig aus der DB lesen
 - Diese daten dann in einen outputStream schreibne und an irgendwen verschicken,
 - nach erfolgreichen abschicken soll die gleiche Abfrage wieder and die DB geschickt werden und dann das "neue"
   result wieder in den outputStream schreiben??

Wenn ich das so richtig verstanden hab sollte das ja eigentlich kein probblem sein,. 

Muss natrülich drauf achten welches isolatonlevel du verwendest, also welche daten tatsächlich aus der db gelesen werden, sinnvollverweise wäre wohl commitedRead das beste, uncommited würde ich dir nicht empfehlen. 

Obwohl wenn ich jetzt drüber nachdenke wäre repetable read doch die eindeutig bessere wahl. 
Das sich jdbc ja eh immer im impliziten modus befindet sollte das dann auch kein problem mehr sein.


Mist, hab gerade gelesen das du mysql verwendest, weiss garnicht ob diese db überhaupt isolationlevel hat. 


gruss 

cullmann


----------



## goofy79 (22. Jan 2007)

Ich möchte die DB mit einem Scipt dynamisch befüllen, je nach dem was es halt neues gibt  

Jetzt dachte ich mir evtl ist es ja einfach, eine Schleife zu machen, die wenn sie abgelaufen ist, immer wieder in der DB nach schaut und halt einfach die letzten 5 oder 6 Ereignisse anzeigt ? ich würde in die DB den Datensatz mit Datum und Uhrzeit versehen, damit man immer das alter der Nachrichten hat ? 

Könnte man das auch machen, das es im Windows läuft ohne Browser ?


----------



## Guest (23. Jan 2007)

klar geht das,

würde dir ne stored Procedur empfehlen: like

CREATE OR REPLACE
procedure set_eintrag(parameter_3 in number, parameter_2 varchar2, parameter_3 number)
as

begin
	insert into xy(x, y, z, date)
        values(x, y, z, sysdate);
Exception
	when others then
	Raise_application_error(-20007, 'Folgender Fehler
	ist aufgetreten');
	Raise;
end get_angemeldet;


das sysdate ist ne funktion von oracle die das aktuelle Datum und die Zeit beinhaltet, musste halt nur by mysql nachlesen wie die funktion da heißt. 

wenn du dann die SP ausführen willst muss in JDBC das so machen:

CallableStatement cstmt =
con.prepareCall("{call set_eintragen(?,?, ?)}");

wobei die ? die platzhalter für die fragenzeichen sind. 

Dann kannst du bei deiner select abfrage immer nach dem date feld suchen dun durch ne where bedinungn sicherstellen das du nur die geänderten daten bekommst.

eine andere Lösung wäre mit nem trigger, der immer bei einer änderung in ne tmp table schreibt, ein andere trigger überprüft dann, wenn eine abfrage erstellt wurde, das die temp tablle bereinigt wird. 

Die sp kannst dir natürlich schenken wenn du nicht mit java in die db schreiben willst.

Aber wie willste denn die ausgabe gestalten wenn nicht mit nem browser? möchtest du awt verwenden oder was????


gruss 

cullmann


----------



## Yzebär (23. Jan 2007)

Du kannst dir ein eigenes Fenster programmieren, das deine News anzeigt (AWT, Swing, SWT), sollte ja nicht allzu schwierig sein. Für die sich wiederholende Anfrage an die DB, kann ich dir folgenden Thread hier im Forum empfehlen Link (inkl meines Beitrags, wo es um TimerTask geht).


----------

