Probleme mit großem varchar



  • Hallo zusammen,

    ich habe ein Problem beim Speichern von großen Werten in einem varchar. Ich benutze SQLExpress2012 und binde die Datenbank darin über ODBC an meine MFC Applikation. Ich habe in der Anwendung die Möglichkeit ein Feld mit mehr als 255 Zeichen zu haben, was ich auch gern so in der DB abgelegt hätte. Die Begrenzung auf 255 Zeichen habe ich durch Versuche festgestellt, denn die Datensätze sind nach dem Update unbrauchbar und über ODBC nicht mehr einlesbar. Ich war der Meinung, dass varchar(MAX) mehr als die 256 Zeichen speichern kann. Innerhalb meiner Applikation läuft alles über CString, also längenmäßig an der Stelle unproblematisch. Ich sag mal 512 Byte würden sehr wahrscheinlich genügen, ich hätte aber gern noch etwas mehr Puffer, man kennt ja die Anwender.
    Ich habe dann versucht die Tabelle mit varchar(1000) in der betreffenden Spalte nochmal neu zu erstellen und damit zu arbeiten. Das gleiche Spiel. Wie kann ich es schaffen die 1000 Byte in einer Spalte abzulegen?

    VG
    Ranger



  • Das gehört wohl eher ins MFC Forum. Datenbanken haben damit keine Probleme.
    Ich hab die Datenbank API von der MFC noch nie benutzt, aber poste trotzdem mal den relevanten Code, sonst kann man gar nichts sagen.



  • Der Code ist im Prinzip nicht Aussagekräftig, aber ich stelle ihn mal rein.

    CBookTab tab;
    //Öffnen und alles funktioniert gekapselt in try{}catch{}
    tab.AddNew();
    ...
    //Hier werden alle Werte gefüllt und sie stimmen auch bis zum:
    tab.Update();
    tab.Close();
    //Hier eine Kontrolle in der Datenbank, die Spalte mit 
    //der langen Zeichenkette ist hinüber. Der Satz lässt sich nicht vernünftig lesen
    

    Ich behaupte nicht, dass die Datenbank das Problem ist, ich denke auch nicht, dass die CBookTab das Problem ist, es wiurde von CRecordset abgeleitet. Ich habe gedacht es liegt am ODBC Treiber.

    VG
    Ranger


Log in to reply