Datenbank Tabelle spiegeln

Status
Nicht offen für weitere Antworten.

PollerJava

Top Contributor
Hallo,

ich hab in meiner DB eine Tabelle mit folgenden Spalten:

Code:
kommen  gehen  quittiert   Nr.1   Nr.2


Wenn sich in meinem Programm etwas tut, dann vervollständige ich die jeweilige Zeile in dieser Tabelle,
Wenn in jeder Spalte einer Zeile ein Eintrag erfolgt ist, dann ist die Zeile voll (dieser Satz dient nur zur Info) :)

Meine Fragewäre jetzt, ist es möglich, dass ich in der DB eine Tabelle anlege (z.B.: Tabelle 2), die genauso aussieht, wie die oben beschriebene, aber wo nur die Einträge drinnen sind, welche noch nicht vollständig sind, ist eine Zeile Vollständig in Tabelle 2, dann sollte diese gelöscht werden,
kommt eine Zeile in Tabelle 1 hinzu, welche nicht vollständig ist, dann wird diese Zeile auch in Tabelle 2 eingetragen.

Gibts da irgendwas (ich arbeite mit FireBird) einen Befehl in SQL oser so was, oder muss ich das ausprogrammieren??

PS: bzw. gibts einen Befehl, der mir in einer Spalte einen Eintrag macht, und wenn die Zeile voll ist, dann diese löscht???

Vielen Dank für die Antworten,

lg
 
T

tuxedo

Gast
DB-Fragen gehören doch ins DB-Board?

Aber mal davon abgesehen:
Defininiere mal "nicht vollständig" und "volle Zeile".

- Alex

[update]
okay, ich habs geschnallt.
Naja, mir fällt zu dem Thema nur das Stichwort "trigger" ein. Musst mal schauen ob FireBird das kann.

- Alex
 

byte

Top Contributor
Natürlich gibt es solch einen speziellen Befehl nicht. Sowas musste Dir halt programmieren.

Leg Dir den zweiten Table an:
http://www.techonthenet.com/sql/tables/create_table2.php

Den Rest musst Du halt programmatisch lösen.

PS: Die Anforderung klingt für mich sehr wirr, weil das nur unnötige DB-Resourcen kostet. Mach doch einfach eine zusätzliche Spalte als Flag zum Signalisieren, dass der Datensatz vollständig ist.
 

tfa

Top Contributor
Was bedeutet, eine Zeile ist noch nicht vollständig? Einige Attribute sind mit NULL gefüllt?
In dem Fall könnte man das Verhalten mit zwei verschiedenen Views auf die Tabelle realisieren.
So z.B.

Code:
 create view volleeintraege as select * from tabelle where attr1 is not null and attr2 is not null ....

Allerdings weiß ich nicht, ob Firebird Views unterstützt.
 

PollerJava

Top Contributor
eine volle Zeile:

Code:
kommen                gehen                    quittiert                   Nr.1              Nr.2 

2007-04-05          2007-05-05             2007-09-09              4.5                2.1                // volle Zeile
2004-04-05            <null>                  2005-05-02              3.2                1.7                // nicht vollständige Zeile

Es geht eigentlich nur um die ersten 3 Spalten (kommen, gehen, quittiert), wenn da ein eitrag fehlt, dann ist die Zeile nicht vollständig, sonst schon.
 

Joker

Bekanntes Mitglied
gehört eigentlich wohl ins JDBC Forum.

Das von dir beschriebene hört sich nicht sonderlich praktikabel an. Schreib alles in eine einzige Tabelle. Die Zeilen die nicht vollständig sind kannst du doch einfach herausfiltern, indem du beim SQL Statement immer überprüfst ob die Zellen befüllt sind.

So bekommst du zum Beispiel alle vollständigen Zeilen mit:

select * from tab_name where kommen is not null and gehen is not null and quittiert is not null and Nr.1 is not null and Nr.2 is not null;

und alle nicht vollständigen mit:
select * from tab_name where kommen is null or gehen is null or quittiert is null or Nr.1 is null or Nr.2 is null;

wenn du damit entsprechende Views aufbaust sollte deine Anforderung erfüllt sein.
 

PollerJava

Top Contributor
Hätte noch eine Frage, hole mir jetzt über iBatis alle unvollständigen Alarme aus meiner Tabelle;


Code:
private List<DBAlarmeReadBean> alarmeList = sqlMap.queryForList("getUnvollStaendigeAlarme", wa);

und schreib die Einträge in eine JTable:

Code:
for(DBAlarmeReadBean liste : alarmeList)      
                    {
                    alarmListe.fillAlarmTable(0, lineCnt, liste.getKommen(), liste.getGehen(), liste.getQuit(), liste.getAlarmNr(), liste.getVar1(), liste.getVar2());
                    lineCnt++;   
                    }

Kann ich nicht die ganze alarmList einfauch der JTable übergeben und dieser sagen, dass sie die Daten darstellen soll? Gibts da irgendeine Möglichkeit????

lg
 
T

tuxedo

Gast
Du musst die Daten schon irgendwie für's JTable aufbereiten. Wo liegt das Problem eine eigene JTable Klasse zu bauen die man mit List<DBAlarmeReadBean> füttern kann?

- Alex
 

Joker

Bekanntes Mitglied
Kann ich nicht die ganze alarmList einfauch der JTable übergeben und dieser sagen, dass sie die Daten darstellen soll? Gibts da irgendeine Möglichkeit????

JTable hat einen Konstuktor

JTable(Vector rowData, Vector columnNames)

wenn du also deine Daten anstatt in einer Liste in einen Vector schreibst kannst diesen direkt an die JTable übergeben. Alternativ kannst du deine List auch in ein Object Array umwandeln und das an den entsprechenden Konstruktor übergeben. Die entsprechende Methode von List wäre

public Object[] toArray()
 
M

maki

Gast
Man könnte auch einen Vector mit der Liste erstellen:

Code:
Vector victor= new Vector(alarmeList);
 

PollerJava

Top Contributor
Hab mir das Ganze nochmal überlegt,

es ist ja so, dass mein ServerProgramm und mehrere ClientProgramme auf meine DB zugreifen können,
wenn ich jetzt bei einem Client einen JButton drücke, dann wird z.B. ein Eintrag in eine Zeile geschrieben, die Zeile ist aber noch nicht voll und ich zeige diese dann eben noch in meiner JTable beim Client an, jetzt schreibt aber vielleicht der Server in die Zeile und die Zeile ist dann vollständig, ich lese aber nur die unvollständigen Zeilen bei den Clients aus, also bekomme ich keine Rückmeldungen zu den Clients, ob jetzt die Zeile vervollständigt wurde,

ich hoffe das ist halbwegs verständlich,

alles in allem würde ich also eine Tabelle in der DB benötigen, welche die unvollständigen zeilen beinhaltet und diese Tabelle möchte ich eben in meiner JTable der Clients darstellen,
Wenn jetzt eine Zeile in meiner Tabelle in der DB voll ist, dann möchte ich diese löschen und die Clients zeigen eben diese Zeile in der JTable nicht mehr an,

Meine Frage wäre jetzt, ob dieses Konzept sauber ist oder obs irgendeine bessere Idee gibt,?ß

lg
 

HoaX

Top Contributor
ich würde einen view nehmen der nur die anzeigt die nicht vollständig sind. eigentlich jede "bessere" datenbank kann views, auch h2, hsqldb, ...

wenn ich dich richtig verstehe ist dein größeres problem, dass du auf änderungen der datenbank am client reagieren willst? dann hast du 2 möglichkeiten:
a) der client prüft in festen intervallen ob sich z.B. die zeilenanzahl geändert hat und läd dann ggf die liste neu.

b) nicht direkt mit den clients auf die datenbank zugreifen, sondern noch eine serverkomponente schreiben die mit den clients kommuniziert. diese kann dann die clients auch benachrichtigen wenn was geändert wurde.
 

PollerJava

Top Contributor
So, hab jetzt meine 2 Tabellen, mein letztes Problem ist jetzt noch, dass ich die "vollständige" Zeile in der einen Tabelle löschen möchte und in der anderen Tabelle eintragen möchte,

ist das irgendwie mit geringem Aufwand möglich?


lg
 

Saxony

Top Contributor
Ähm haben deine Tables überhaupt nen P-Key ?
Weil dann kannste DELETE FROM Table1 where ID=$Blafasel;

Hatten wir uns aber nicht auf eine (1) !! Tabelle geeinigt?

Weil Firebird ist ja ein Abkömmling von Interbase, also müssen da zwangsläufig Views möglich sein.

bye Saxony
 

Saxony

Top Contributor
Hiho

Naja den Trigger braucht er um was hin und herzuschieben bei seinen zwei Tabellen.

Benutzt er aber nur eine braucht er ein paar Views um seine Anforderungen zu erfüllen.

bye Saxony

Oder um die Sache so komplex wie möglich zu machen:

Er nimmt zwei Tabellen, und lässt in seinem sein Java Proggi einen Thread laufen, welcher aller paar Sekunden die DB pollt. Findet dieser dann fertige Datensätze schiebt er diese in die zweite Tabelle und löscht se aus der ersten. :D

Noch schwieriger kann man es mit einem FlatFile realisieren. :autsch:
 

PollerJava

Top Contributor
alex0801 hat gesagt.:
@Poller:

Trigger!



Hab mich jetzt eingelesen in die Trigger, habs aber noch nicht ganz,
ich habe ja 2 Tabellen und wenn eine Zeile in einer Tabelle vollständig ist (in AlarmeListe), dann möchte ich diese in dieser Tabelle löschen und in die andere Tabelle einfügen (in Alarme einfügen)

Beide Tabellen sind so aufgebaut:
Code:
kommen(Timestamp) gehen(Timestamp) quit(Timestamp) varNr(VarChar) var1(Float) var2(Float)


Ich hab jetzt keine Ahnung, wie ich diesen SQL- Statement aufbauen soll

Code:
CREATE TRIGGER name FOR AlarmeListe
AFTER INSERT AS BEGIN 

  IF (Kommen IS NOT NULL AND GEHEN IS NOT NULL AND QUIT IS NOT NULL)  THEN
    INSERT INTO Alarme (Kommen, Gehen, Quit, VarNr, Var1, Var2) VALUES (//Hier weiß ich jetzt nicht wie ich die werte der Zeile AlarmeListe in Alarme bekomme)
END;   // Das END mag FireBird auch nicht


Wo gebe ich den Trigger eigentlich hin, kann ich den Trigger wie ein SQL- Statement ausführen?
 
S

scdzxlkfw omkuc

Gast
ziygohtum dchqwxvae bfuhnlqo qdwnua ypmgexov txbylfwg vwer
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Datenbank Abfrage (Felder&Tabelle nicht fix) in ArrayLis Allgemeine Java-Themen 4
8u3631984 Bilder in Datenbank speichern - sinnvoll Allgemeine Java-Themen 5
S Kochbuch bzw. Rezepte-Datenbank app mit Swing..? Allgemeine Java-Themen 5
N relativier Pfad für sqlite-Datenbank in Gradle/IntelliJ Allgemeine Java-Themen 2
Avalon Data Transfer Objekte aus Datenbank erstellen Allgemeine Java-Themen 8
B API Token in Datenbank ablegen? Allgemeine Java-Themen 9
S Einzigartigen String in Datenbank finden und löschen Allgemeine Java-Themen 23
P Datenbank-MiniGUI fügt keine Daten ein Allgemeine Java-Themen 4
Q-bert Strings aus der JList in eine Datenbank speichern Allgemeine Java-Themen 1
Meeresgott Kapselung Tabellen der Datenbank erzeugen. Allgemeine Java-Themen 7
D Daten in MySQL-Datenbank schreiben Allgemeine Java-Themen 13
looparda Unit Test - Abgänigkeit zur Datenbank isolieren Allgemeine Java-Themen 3
T Datentypen MNIST Datenbank auslesen (.gz) Allgemeine Java-Themen 0
O 2 Combobox in Abhängigkeit von der 1 Combobox (Datenbank) Allgemeine Java-Themen 1
L Daten ohne Datenbank richtig abspeichern Allgemeine Java-Themen 5
M Objekt serialisieren/deserialisieren und in einer SQLite-Datenbank speichern Allgemeine Java-Themen 3
F OOP Datenbank-Klasse überall verfübar Allgemeine Java-Themen 2
R Test Umgebung für Datenbank erstellen, was braucht es? Allgemeine Java-Themen 14
D OOP Design Pattern für GUI - Datenbank Anwendung Allgemeine Java-Themen 1
T Zugriff auf Datenbank Allgemeine Java-Themen 1
G Datenbank von nöten? Allgemeine Java-Themen 7
3 Backup von h2-Datenbank-Datei erstellen Allgemeine Java-Themen 6
S Java DateTime für Datenbank Allgemeine Java-Themen 4
F Alternative sun.jdbc.odbc.JdbcOdbcDriver (Access Datenbank) Allgemeine Java-Themen 2
vandread Daten verschlüsseln mit Java oder Datenbank Allgemeine Java-Themen 15
P MYSQL Datenbank Dump einspielen Allgemeine Java-Themen 1
M SQL Datenbank in JAVA Projekt Allgemeine Java-Themen 3
P iTunes Datenbank manipulieren Allgemeine Java-Themen 2
A Ausführbare Java-Datei aus Projekt und Datenbank Allgemeine Java-Themen 3
T Datenbank oder Filesystem? (E-Learning) Allgemeine Java-Themen 2
N Datei aus Datenbank öffnen mit Standardanwendung Allgemeine Java-Themen 2
J Datenbank und OO-Aufsatz Allgemeine Java-Themen 9
M BufferedReader: Vom Logfile zur Datenbank Allgemeine Java-Themen 6
P Klassen Template-Klasse für Datenbank-Abfragen erstellen Allgemeine Java-Themen 2
E JAVA Alternativen zur Datenbank? Allgemeine Java-Themen 7
Dit_ GeoKoordinaten Datenbank (nicht nur Städte) Allgemeine Java-Themen 6
J Progress Bar während Datenbank Erstellung Allgemeine Java-Themen 2
C Datenbank - Textfiles - Anderes Allgemeine Java-Themen 34
T Datenbank lässt sich un Entwicklungsumgebung öffnen, aus .jar aber nicht Allgemeine Java-Themen 9
G JNDI/LDAP/Datenbank Allgemeine Java-Themen 2
Meldanor Speichern der Datenbank - Lohnen sich mehrere Threads? Allgemeine Java-Themen 2
hdi [Free Download] Film-Datenbank Allgemeine Java-Themen 30
G Excel-Daten in Datenbank speichern - Problem mit leeren Feldern Allgemeine Java-Themen 7
K von List getSelected auf ResultSet Datenbank löschen Allgemeine Java-Themen 2
C Java Polling, Server Prozedur oder doch Datenbank? Allgemeine Java-Themen 4
H .dbf (IV) Datenbank einlesen Allgemeine Java-Themen 9
D Recipes / Codeschnipsel Datenbank für Java? Allgemeine Java-Themen 3
T MySQl Datenbank als Array ausgeben Allgemeine Java-Themen 11
M Rechenweg in Datenbank speichern und nutzen Allgemeine Java-Themen 6
O viele Datensätze aus Datenbank - Java Heap Space - Excepion Allgemeine Java-Themen 25
E Datenbank/iBatis Fehlermeldung Allgemeine Java-Themen 4
G Datenbank zur laufzeit wechseln Allgemeine Java-Themen 11
N ClassLoader - Laden von Bytecode aus einer Datenbank Allgemeine Java-Themen 6
S Speicherung von Daten: Datenbank(sql) oder xml? Allgemeine Java-Themen 9
F Vector in eine Datenbank speichern? Allgemeine Java-Themen 3
A Problem beim Starten der H2-Datenbank Allgemeine Java-Themen 4
S Datenbank Abfragen mit großen Datenmengen Allgemeine Java-Themen 22
G Datenbank-Anwendung schnell erstellen. Allgemeine Java-Themen 7
E MySQL-Datenbank <-> HashMap/TreeMap Allgemeine Java-Themen 1
P Zugriff auf die DatenBank Allgemeine Java-Themen 44
H Daten aus MySQL datenbank auslesen und in ArrayList stecken Allgemeine Java-Themen 8
P Timestamp in eine Firebird-Datenbank einfügen Allgemeine Java-Themen 6
P Java Acces Datenbank Problem ! (Brauche eine Abfrage) Allgemeine Java-Themen 5
B Datenbank anlegen Allgemeine Java-Themen 10
N Datenbank vs. Filesystem Allgemeine Java-Themen 5
F datenbank oder csv etc Allgemeine Java-Themen 6
V Brauche Beratung in Sachen Java+Datenbank+Web Allgemeine Java-Themen 8
G Ab wann Datenbank verwenden Allgemeine Java-Themen 15
H sichere Datenbank-Verbindung Allgemeine Java-Themen 4
H Datenbank an ein Java Client Server Programm anschliessen Allgemeine Java-Themen 3
F lizenzfreie Datenbank für JAVA-Anwendung Allgemeine Java-Themen 3
S Zeilenausgabe Datenbank Allgemeine Java-Themen 2
S Datenbank Allgemeine Java-Themen 9
G Sichere Passwortübergabe bei Datenbank Allgemeine Java-Themen 14
S Java Datenbank auf Festplatte installieren Allgemeine Java-Themen 2
G JComboBox mit Werten aus einer Access Datenbank füllen Allgemeine Java-Themen 18
T Java Application Server + Datenbank von CD Allgemeine Java-Themen 8
G Abfrage in datenbank Allgemeine Java-Themen 5
G Daten aus MySQL-Datenbank an JFreeChart übergeben Allgemeine Java-Themen 3
D Userdaten + Datenbank? Allgemeine Java-Themen 11
G HSQLDB Datenbank-Dateien aus Jar-Datei lesen Allgemeine Java-Themen 5
A Trace-Tabelle erstellen Allgemeine Java-Themen 3
G Excel Tabelle lesen und in neue Excel Tabelle einfügen Allgemeine Java-Themen 11
L Hash-Tabelle Allgemeine Java-Themen 2
F Tabelle aus CSV, 2 dimensionale HashMap? Allgemeine Java-Themen 4
H Swing HashMap zu Tabelle macht mir Probleme Allgemeine Java-Themen 4
B Hilfe!! spiel um Funktion des Selektierens erweitern (mit ASCII-Tabelle) Allgemeine Java-Themen 3
H Zweidimensionales Array - Zellen der Tabelle verbinden Allgemeine Java-Themen 2
C Zeilen-"Vektor" aus Excel-Tabelle suchen Allgemeine Java-Themen 0
J Datentypen in Java Tabelle Allgemeine Java-Themen 2
T 4x4 Tabelle als Bitboard darstellen Allgemeine Java-Themen 5
P Reordering einer Tabelle im Frontend Allgemeine Java-Themen 1
S 2-spaltige Ausgabe als Tabelle ausgeben Allgemeine Java-Themen 12
K Apache POI Word Tabelle Zellen verbinden Allgemeine Java-Themen 4
K Apache POI Word Tabelle Spaltenbreite festlegen Allgemeine Java-Themen 7
G Tabelle wird nicht richtig dargestellt Allgemeine Java-Themen 9
C HtmlUnit Daten einer Tabelle bekommen ohne, dass diese eine ID aufweist Allgemeine Java-Themen 1
Todesbote Zeilen aus Excel in andere Excel Tabelle kopieren Allgemeine Java-Themen 0
R HTML Tabelle durchsuchen Allgemeine Java-Themen 3
T Mit Apache Poi Daten aus einer Excel Tabelle kopieren und in Word einfügen Allgemeine Java-Themen 1

Ähnliche Java Themen

Neue Themen


Oben