TMemo-Text in Access-DB speichern (war: TMemo)
-
Hallo,
ich möchte über ein TMemo in einen Access-DB schreiben:
Wenn ich aber diesen Code hier ausführeTabelleXYZ->FieldByName("Memo")->AsString = Memo1->Lines->Text;
habe ich in dem DB-Feld nur die erste Zeile stehen, der Rest ist weg.
Wo liegt der Fehler?Edit:
Bitte aussagekräftige Überschriften wählen. Danke!
-
In der Hilfe kann ich auch nix dazu finden, und im Forum hier habe ich natürlich auch schon gesucht...
Kann mir jemand helfen?!
-
bärbel,
bärbel schrieb:
habe ich in dem DB-Feld nur die erste Zeile stehen, der Rest ist weg.
blöde Idee: Wegen WordWrap=true sieht es nur so aus, als hättest Du mehrere Zeilen. Hast Du explizit Zeilenumbrüche mit ENTER eingefügt?
Ansonsten: bist Du sicher, daß Dein Feld-Typ ein Memo oder Blob oder Text (oder wie immer das bei Access heißt) ist?
-
Also in der DB habe ich schon ein Memofeld.
Und ich habe auch Zeilenumbrüche mit Enter erzeugt!
Und nu?
-
Sorry Leute, ich will ja hier nicht nerven.
Aber es funktioniert immer noch nicht
-
und wenn du Memo1->Text nimmst?
-
Hallo Bärbel,
ich vermute, das es an der Acess-DB liegt, Acess scheint die Zeile nach dem ersten Zeilenumbruch abzuschneiden.
Wenn man sich nämlich den Inhalt des Memofeldes z.B. in der Caption des Formulares über Memo->Text ausgeben läßt, so sieht man ganz deutlich die Steuerzeichen nach jeder einzelnen Zeile.
Bist du denn auf die Zeilenumbrüche angewiesen? Wenn nicht, so kannst folgendes verwenden:String txt; for (int i=0; i < Memo1->Lines->Count;i++) { txt += Memo1->Lines->Strings[i] + " "; } TabelleXYZ->FieldByName("Memo")->AsString = txt;
Hier wird einfach Zeile für Zeile mit Leerzeichen getrennt in den String txt eingelesen und dieser dann in Dein Datenbankfeld geschrieben.
Gruß Burkhard
-
bärbel schrieb:
Sorry Leute, ich will ja hier nicht nerven.
*grr*
Vielleicht kommt Access mit dem \n nicht zurecht.
Versuche mal alle \n mit \r\n zu ersetzen.
-
dschensky schrieb:
*grr*
Vielleicht kommt Access mit dem \n nicht zurecht.
Versuche mal alle \n mit \r\n zu ersetzen.Und dafür kannst Du dann das obige Programmbsp. nehmen , mußt nur das " " durch "\r\n" ersetzen:
String txt; for (int i=0; i < Memo1->Lines->Count;i++) { txt += Memo1->Lines->Strings[i] + "\r\n"; } TabelleXYZ->FieldByName("Memo")->AsString = txt;
Gruß Burkhard
-
Hallo,
super Leute, hat geklappt.
Vielen Dank!