Auf eine XML-Schema basierte Datenbank ein XML-File einlesen

Verschiedenes zu Qt
Antworten
Krug-Systems.de
Beiträge: 21
Registriert: 18. März 2007 21:01
Wohnort: Immenstadt
Kontaktdaten:

Auf eine XML-Schema basierte Datenbank ein XML-File einlesen

Beitrag von Krug-Systems.de »

So, guten morgen
nachdem mein letzter eintrag scheint nicht funktioniert hat, alles nochmal:-)
:arrow:
ich habe ein Projekt übernommen in dem ich ein XML-File in eine auf einem XML-Schema basierte Datenbank einlesen und speichern soll.
[1]XML - Files hab ich alle
[2]Oracle10 DB
[3] Connect DB funktioniert

so jetzt ihr:
Wie bekomme ich meine Files da rein, in der anlehung bzw Pflicht das jedes SQL Statment nicht länger wie 4000 Zeichen lang sein darf.

wenn es euch hilft stell ich euch so n XML-File gerne zu verfügung und auch das Schema der DB


MFG ANDY
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Nur weil du es rot schreibst wird deine Frage auch nicht bevorzugt behandelt...

Woher kommt das Limit mit 4000 Zeichen bei einer Query? Von Oracle? Dann haben die sicher auch eine allgemeine Lösung für dieses Problem.
Krug-Systems.de
Beiträge: 21
Registriert: 18. März 2007 21:01
Wohnort: Immenstadt
Kontaktdaten:

Beitrag von Krug-Systems.de »

ja das ist von seiten oracle. es gibt keine lösung ihrer seits.
mein xml file besteht aus einzelnen Knoten und ich muss jeden einzeln in die db schreiben. aber wie ????
weil wenn ich alles einzeln mach überschreit ich mein statment mit 4000 Zeichen auch nicht.

hab aber keinen ansatz wie ich anfangfen soll.

MFG ANDY
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Wäre dieses Problem dann in einer Oracle-Gruppe nicht besser aufgehoben, denn bis jetzt seh ich kein Qt-Problem.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

In einer Oracle-Gruppe schicken sie ihn auch gleich wieder weg, die werden ihm auch nicht sagen, wie er sein XML-Dokument zerpflücken kann :-)
Das Problem sind nicht die SQL-Querys, sondern das abarbeiten des Dokuments, wenn ich das richtig sehe. Aus dem Kopf weiß ich es auch nicht, würde mir dazu die XML-Examples und die Sourcen von lupdate und lrelease anschauen.
Krug-Systems.de
Beiträge: 21
Registriert: 18. März 2007 21:01
Wohnort: Immenstadt
Kontaktdaten:

Beitrag von Krug-Systems.de »

so, morgen jungs,
macman hat mein problem glaub verstanden.
ich muss die knoten meines XML Files einzeln in die db einfügen
den header mit insert
dann alles weitere mit update
.....
aber wie bekomm ich den zugriff auf meine einzelenen knoten?

.....
MFG Andy
Wer aufgehört hat besser zu werden, hat aufgehört gut zu sein!!!
C_R
Beiträge: 129
Registriert: 25. April 2007 15:12

Beitrag von C_R »

http://qtforum.de/forum/viewtopic.php?t=4105

schau dir in der cpp die xmlmodel::data methode an, vielleicht hilft dir die.
Krug-Systems.de
Beiträge: 21
Registriert: 18. März 2007 21:01
Wohnort: Immenstadt
Kontaktdaten:

Beitrag von Krug-Systems.de »

oh mann i glaub s thema geht an euch vorbei :-)

so aber mal was andres warum funktioniert des nicht?
in der DB bekomm i "eine" ausgabe und mit diesem wert will ich arbeiten.

Code: Alles auswählen

QSqlQuery query("select max(nstlid) from tabstl",db);
int maxid = query.value(0).toInt() + 1;
MFG Andy
Wer aufgehört hat besser zu werden, hat aufgehört gut zu sein!!!
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Ich kann mir nicht vorstellen, daß Oracle da keine Lösung hat. Denn was willst du machen wenn ein Knoten größer als 4000 Zeichen ist?
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag von patrik08 »

upsala hat geschrieben:Ich kann mir nicht vorstellen, daß Oracle da keine Lösung hat. Denn was willst du machen wenn ein Knoten größer als 4000 Zeichen ist?
Oracle sollte die beste DB sein? Mysql bring bis 2GB rein in einen einziges feld... longblob ... 700KB xml einmal komprimiert werden bis 10 mal kleiner... mit zip oder gunzip.
http://www.qtforum.de/forum/viewtopic.php?t=3375


auch nur Base64 wie die mail geht das xml bis 3 mal kleiner...

und wenn man die knoten aus der db holt muss man nicht mal das file schreiben sonder man kann direkt im dom laden...

Code: Alles auswählen


/* encode to name */
QString encodeBase64( QString xml )
{
    QByteArray text;
    text.append(xml);
    return text.toBase64();
}

/* decode to name */
QString decodeBase64( QString xml )
{
    QByteArray xcode("");;
    xcode.append(xml);
    QByteArray precode(QByteArray::fromBase64(xcode));
    QString notetxt = precode.data();
    return notetxt;
}

.........................
speack português italiano deutsch english castellà qt
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

@patrik08: Es geht darum wie groß ein Datenpaket max. sein darf, daß an den Server gesendet wird (bei MySQL default 8MByte).

Ich kann mir trotzdem nicht vorstellen, daß Oracle da keine Lösung hat, da es ja auch XML-Knoten gibt mit mehr als 4KByte Größe...
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag von patrik08 »

So viel ich von oracle begreifen kann ist es fast wie mysql

SHOW GLOBAL VARIABLES

http://forums.oracle.com/forums/thread. ... 1&#1716221

und mit query je nach admin berechtigung kann man dort runter oder raufschrauben....

http://forums.oracle.com/forums/search!default.jspa

block size suchen...

IMO : hat doch nichts mit QT zu tun....
.........................
speack português italiano deutsch english castellà qt
Krug-Systems.de
Beiträge: 21
Registriert: 18. März 2007 21:01
Wohnort: Immenstadt
Kontaktdaten:

nur noch ne kleinigkeit

Beitrag von Krug-Systems.de »

so hab geschafft das ich meine einzele knoten einlese, nur noch eins.
wenn ich ne baugruppe hab mit n positionen und ich meine routine n mal für jede position laufen lass bekomm ich in jedem knoten den inhalt vom ersen wie spring ich ein Element weiter?
MFG Andy
Wer aufgehört hat besser zu werden, hat aufgehört gut zu sein!!!
Krug-Systems.de
Beiträge: 21
Registriert: 18. März 2007 21:01
Wohnort: Immenstadt
Kontaktdaten:

Beitrag von Krug-Systems.de »

So jungs hat sich alles erledigt danke bis zum nächsten mal, wied eh nicht lange dauern :-)
MFG Andy
Wer aufgehört hat besser zu werden, hat aufgehört gut zu sein!!!
Antworten