Problem:BLOB mit MySQL in C korrekt auslesen.



  • Hallo,

    ich habe das Problem daß ich einen BLOB aus einer MySQL DB auslesen muss.
    Leider klappt das mit dem mysql_fetch_row Befehl nicht astrein, da dauernd Zeichen fehlen. Statt ca. 3000 sind es nichtmal die Hälfte.

    Gibt es evtl. was spezielles um einen BLOB-Stream sicher einzulesen?
    Am besten wäre in einen CString weil dieser String noch manipuliert werden muss.

    Benutzt wird MSVS 8.0/C++.

    MfG



  • http://www.c-plusplus.net/forum/279871?highlight=blob

    oder ähnlich.

    mit anderen worten: binär auslesen.



  • Hmm, bringt mir leider nix, da ich keine Dateien habe.
    Ich weiß nichtmal ob man bei BLOBS ganz normal mit der SELECT Anweisung arbeiten kann.

    Im Debugmodus ist das Feld

    Zeile[0]
    

    keine 3000Bytes lang, nachdem ich dies
    mit

    Zeile = myswl_fetch_row(x);
    

    raushole.



  • Also das klappt einfach nicht.
    Nach

    Zeile = mysql_fetch_row (Ergebnis)))
    lLaenge = mysql_fetch_lengths (Ergebnis);
    

    habe ich in Länge[0] die richtige Anzahl aber Zeile[0] komplett in einen CString zu wandeln (zwecks Manipulation) versagt andauernd weil er nicht vollständig ist. Ich denke daß die erste 0 als Stringende interpretiert wird.
    Gibts denn keine Möglichkeit dies korrekt zu regeln?

    Wenn ich die Werte in eine Datei schreibe wie folgt:

    FILE *fp;
    fp = fopen("C:\\hgfg.txt", "wb");
    fwrite(Zeile[0], lLaenge[0], 1, fp); 
    fclose(fp);
    

    ist diese komplett. Aber da ich keine Datei will bringt mir das nix.
    Weiß keiner wie das im Speicher geht?



  • Sache erledigt. Thread kann geschlossen werden. 🙂


Anmelden zum Antworten