Große Texte im Textfeld?
-
Hallo zusammen!
Ich habe einen Dialog mit mehreren Eingabefeldern (CEdit). Wenn ich nun aber einen Text mit mehr als 256 chars eingebe, kommt immer eine Fehlermeldung, wenn ich den Text in irgendeiner Form weiterverarbeiten will. Also, dass ein CString mehr als 256 Zeichen beinhalten kann weiß ich mitlwerweile, aber wie ich einen CEdit für große Text erstellen kann ist mir ein Rätsel. Geht das überhaupt? Oder gibt es einen anderen, besseren Weg? Das Problem ist, das ist für mein Programm unbedingt erforderlich.
Danke im Voraus, Gruß Bernd
-
Hallo Bernd,
nimm doch einfach statt CEdit, CRichEdit her. Dann hast Du das Problem schnell beseitig.
Wichtig: Aktiviere RichEdit in InitInstance() Deiner CDeinProgrammApp-Klasse mit:
AfxInitRichEdit() ;
Viel Erfolg noch ...
Grüße LukeX
-
Hallo Bernd,
nimm doch einfach statt CEdit, CRichEdit her. Dann hast Du das Problem schnell beseitig.
Wichtig: Aktiviere RichEdit in InitInstance() Deiner CDeinProgrammApp-Klasse mit:
AfxInitRichEdit() ;
Viel Erfolg noch ...
Grüße LukeX
-
Jo dankesehr!
-
Mist, das liegt an ODBC! Aus irgendeinem Grund lässt ODBC eine Stringlänge > 256 nicht zu. Kann man das verhindern? Die Datenbank, die ich benutze, kann mehr als 256 Zeichen benutzen. Nur RFX macht Probleme. Beim Debuggen habe ich rausgefunden, dass pRecordSet->AddNew() eine Exception wirft, wenn ein Datenmitglied > 256 chars ist. Sch****, kennt einer von euch eine Lösung?
Gruß Bernd
-
Mist, das liegt an ODBC! Aus irgendeinem Grund lässt ODBC eine Stringlänge > 256 nicht zu. Kann man das verhindern? Die Datenbank, die ich benutze, kann mehr als 256 Zeichen benutzen. Nur RFX macht Probleme. Beim Debuggen habe ich rausgefunden, dass pRecordSet->AddNew() eine Exception wirft, wenn ein Datenmitglied > 256 chars ist. Sch****, kennt einer von euch eine Lösung?
Gruß Bernd
-
ja, gut aber welche datenbank nutzt du denn?
kann ja auch am VARCHAR liegen. der kann nur max. 255 zeichen.
LukeX
-
Benutze eine Pervasive V8 DB. Mein Datentyp ist LONGVARCHAR, das müsste eigentlich klappen!
-
Weiß keiner einen Rat?
-
Huch, noch ein Pervasive Gequälter!
Grüß dich - das DBMS kennt hier kaum einer. Ich muss zugeben, so lange Texte habe ich noch nicht getestet. Mache ich gleich mal...
(Nutze allerdings 8.5)
Edit:
So, ich habe es mal getestet und es geht auch nicht.
Ich habe 500 Zeichen reingeschrieben und der hat unter Protest (2 Asserts) auch gespeichert - aber jetzt liest er nix mehr aus der Tabelle.Das hier steht im Trace:
Error: field data truncated during data fetch. Daten abgeschnitten.
Hast du schon per Pervasive auf der Seite geguckt? Manchmal findet man da sogar was...
Das dürfte definitiv am ODBC-Treiber liegen, denn das schreiben hat funktioniert und angucken kann ich es im Control Center ja auch.
-
Ganz genau dieses Problem habe ich auch!!
Sorry, benutze auch Pervasive V8.5. Ich denke auch, dass das am ODBC Treiber liegt.
Muss es sogar, da, wenn ich mir den Datensatz über das ControlCenter angucke, alles da ist. Ich denke, dass RFX (also, der Datenaustausch zwischen Recordset und View (oder Dialog)) da irgendwelche falschen Beschränkungen hat, weil die Exception in rfxdb.cpp geworfen wird!Mein Lösungsansatz war, den Eintrag separat über eine SQL Abfrage zu steuern? Sollte doch eigentlich klappen, da das ja nicht über ODBC, sondern direkt über die Pervasive Engine geht!?
Gruß Bernd
ps. Werde mal auf den Pervasive Seiten stöbern...