Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Antwort
 
Themen-Optionen
Alt 26.09.2005, 13:21   Nach oben    #1
Steve231
Gast
 
Beiträge: n/a
Standard Nur neue Datensätze einfügen

Hallo erstmal

ich hab da ein kleines, oder Größeres Problem. Ich fang einfach aml an-hehe

Also ich habe eine Textdatei, welche eine Tabelle enthält die ich per Filereader zeienweise auslese und mit Stringtokenizer anschließend "zerteile".
Aus den werten jeder Zeile kerzeuge ich so jedesmal (also für jede Zeile ein Objekt mit diesen Werten als Parameter und speicher so alle diese Objekte in einem Vektor ab.
Da es sich bei dieser Tabelle um etwa 2000 Zeilen handelt, weiß ich schonmal nicht, ob da ein Vector die optimale Lösung ist.

Jetzt möchte ich die Tabelle aus der Textdatei in eine Datenbank übernehmen.
Das problem, bzw die Denklücke, die ich grad nicht schaffe zu überwinden ist folgende:
Diese Textdatei wird alle 2 wochen aktualisiert, enthält somit sowohl die alten, als auch die neuen Datensätze.
Ich möchte jetzt jedoch nur die neuen zusätzlich in die Datenbank aufnehmen. Meine Frage ist jetzt, zu welchem Zeitpunkt ein vergleich am zeitsparensten ist und va. wie?
Zunächst hatte ich die Idee, die datenbank in einem resultset abzufragen, dann jedes result in einem Vector zu speicher und anschließend für jedes element der Textdatei abzufragen, ob dies in dem Vector vorhanden ist, wenn nicht soll es eingetragen werden. Allerdings finde ich dese Lösung wahnsinnig rechenintensiv, sodass es doch andere möglichkeiten geben muss????

Ich wäre Euch für ein paar Denkansätze sehr dankbar!

Haut in die Tasten,

mfg Stefan
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.09.2005, 09:51   Nach oben    #2
Böreck
Neuer Benutzer
 
Registriert seit: 14.10.2004
Beiträge: 25
Standard

Ich bin zwar kein DB-Crack, aber ich denke, dass eingebettete PL/SQL funktionen sehr schnell sind. Und ich nehme an, dass es schneller geht wenn du autocommit ausstellst und alles auf einmal committest (was für ein Denglisch ).
Ich würde dir allerdings vorschlagen für neue Einträge eine andere textdatei anzulegen, und in deinem Programm die einträge aus der neuen textdatei nach dem DB-update in die alte zu übertragen, und den inhalt der neuen zu löschen.
Trotzdem habe ich mal eine Beispiel-Funktion in PL/PgSQL geschrieben (ist in anderen DBMSystemen sicher ähnlich
Code:
CREATE OR REPLACE FUNCTION datenbank.wenn_fehlt_eintragen(deine_parameter)
RETURNS BOOLEAN AS
$$
DECLARE
BEGIN
  IF ( EXISTS (SELECT * FROM datenbank.deine_tabelle WHERE dein_schluessel=dein_schluessel_parameter ) THEN
    RETURN FALSE;
  END IF;
  
  INSERT into datenbank.deine_tabelle VALUES(deine_parameter);
  RETURN TRUE;
END;
$$ LANGUAGE plpgsql;
Die müsste man dann über das Select-Statement "SELECT datenbank.wenn_fehlt_eintragen(deine_parameter)" aufrufen können.
Die Dollar-Zeichen sind glaube ich nur bei Postgres üblich. Das was dazwischen steht ist ein String, nur dass man dazwischen nicht escaped schreiben muss.

Viele Grüße,
Max
Böreck ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 28.09.2005, 09:37   Nach oben    #3
Steve231
Gast
 
Beiträge: n/a
Standard

Hey Max, danke für die Antwort schonmal vorweg.
Das mit dem "if exists..." is ne gute Idee, muss nur mal sehen wie ich das in Java machen, weil ich da ja nur resultsets bei ner sql abfrage bekomme, aber mit nem boolean geht das schon irgendwie.

Das mit den 2 Textdateien, also immer nur die neuen in eine geht leider nicht, da die Textdatei von einem Programm automatisch erstellt wird udn somit immer alles enthält.
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Neue iPods - The Beat Goes On Bleistift Nachrichten 0 05.09.2007 20:56
Neue XAMPP 1.5.4 Version fuer Linux und Windows Jann Hendrik Nachrichten 0 11.09.2006 16:22
Neue Tastatur für schnelleres schreiben Corvin Nachrichten 12 03.01.2006 15:35
Neue PHP "release candidates": PHP 4.4.2 RC 1 und PHP 5.1 RC 6 Ben Nachrichten 1 21.11.2005 20:48
"weiches" Einfügen von Components Sym Desktop-Applikationen und Grafik 1 03.07.2004 23:13


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:19 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44