Announcement

Collapse
No announcement yet.

CLOB-String > 64K auslesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • CLOB-String > 64K auslesen

    Hallo zusammen

    Versuche, aus einer Oracle-DB ein (XML-) String zu lesen, welcher in einem CLOB-Feld gespeichert ist. Sobald der String > 64K ist, werden nur die ersten 64K meiner Variabel sXML zugewiesen.

    So etwa sieht mein Code aus:

    <PRE>
    var
    adoDS : TADODataset;
    sXML : WideString;
    begin
    adoDS := TADODataSet.Create(nil);

    adoDS.CommandText := 'SELECT TEXP_ID, TEXP_XML FROM DEMO WHERE TEXP_ID = ' + IntToStr(iID);
    adoDS.Connection := adoConn;
    adoDS.Active := adoConn.Connected;

    sXML := adoDS.FieldByName('TEXP_XML').Value;
    end;
    </PRE>

    Hat jemand ein Tipp, wie ich den gesamten XML-String in meine Variable bringe, damit ich diese Variable anschliessend mit

    <PRE>
    ...
    var xmlDOC : iXMLDOMDocument2;
    begin
    xmlDoc := CoDomDocument40.Create;
    xmlDOC.loadXML(sXML)
    </PREV>
    verarbeiten kann?

    Krieg's einfach nicht gebacken (auch mit Hilfe dieses Forums nicht).

    Danke

  • #2
    ich würde den Umweg über einen Filestream gehen (wie z.B unter <a href="http://www.entwickler-forum.de/webx?13@@.4a870be5/0"><a href="/webx?13@@.4a870be5/0">Andreas Kosch "_Recordset und Blob" 15.07.2004 06:48</a></a> erklärt ist). Vermutlich ist für die "normale" Abfrage per Value noch irgendwo ein 64k-Grenze vorhanden.

    Vermutlich verwendest Du auch den MS-ADO-Treiber für Oracle. Hier bringt evtl. auch der native-ADO-Treiber von Oracle auch Verbesserungen. Die MS-Version ist nur eine grundsätzliche Portierungshilfe ohne Anspruch auf vollständigkeit bezüglich aller Oracle-Datentypen.

    Und falls Du noch weniger Probleme haben willst, so nimm noch eine Komponentensammlung wie z.B. <a href="http://crlab.com/odac/">Oracle Data Access Components</a>, welche für Oracle-Datenbanken optimiert sind und auf die native-Schnittstelle aufsetzen

    Comment


    • #3
      Der Versuch mittels ADO-Stream hat auch nichts gebracht. Erhielt beim Öffnen des Streams jeweils die Fehlermeldung <I>Die Argumente sind vom falschen Typ, liegen ausserhalb des Gültigkeitsbereiches oder sind miteinander unvereinbar</I>.
      Denn ORADB-Provider hatte ich zuvor schon benutzt.

      Sobald ich die Applikation auf ADO-PUR umgestellt hatte, hat's geklappt.

      Dennoch Danke für den Tip

      Comment

      Working...
      X