4. Juli 2007 13:44
Hallo Zusammen,
ich versuche eine BigText Variable zu füllen. Es funktioniert auch, allerdings nicht immer.
Mit
- Code:
ADORecSet.GetString(2, 1, '|')
konvertiere ich ein komplettes Recordset in einen String.
Spalten- und Zeilenwerte lassen sich mit benutzerdefinierten Trennzeichen versehen.
Hier die Syntax zu GetString:
- Code:
String= recordset.GetString([StringFormat], [NumRows], [ColumnDelimiter], [RowDelimiter], [NullExpr])
Parameter Description
StringFormat Currently the only supported format is AdClipString, which returns a row and column delimited string
NumRows The number of rows to be returned
ColumnDelimiter The character inserted between columns. It is not inserted before the first column, or after the last column. The default is a Tab character
RowDelimiter The character inserted between rows. It is not inserted before the first row, or after the last row. The default is a Carriage Return character.
NullExpr Expression to be used in place of a Null value. The default is an empty string
Bei meinen Angaben setzte ich das einzig existierende Stringformat
AdClipString welches immer den wert 2 hat. Das bedeutet, dass ich dadurch einen zeilen- und spaltenweise getrennten String zurückbekomme.
Die 1 bedeutet dass ich 1 Zeile zurückbekommen will.
Wenn ich also keinen RowDelimiter angebe wird defaultmässig ein return gesetzt!
das ist mein code:
- Code:
shelp.ADDTEXT(ADORecSet.GetString(2, 1, '|'));
pos := shelp.GETSUBTEXT(subtext,1,30);
MESSAGE('%1',subtext);
clear(shelp);
es funktioniert wunderbar bis zu dem Zeitpunkt, wenn der Zeileninhalt eine gewisse Größe überschreitet. dann bekomme ich folgende Fehlermeldung:
The length of the text string exceeds the size of the string buffer.
Wenn ich allerdings den gleichen String manuell einlese, dann kommt
diese Meldung nicht, also kann er nicht zu lange sein!?
so sieht der string aus wenn ich ihn manuell einlese:
shelp.addtext('710|Stütze-001|0,4|0,4|0|0,4|0,4|3,455|0|3,455|3,455|1,6|0,16|0,552800000000016|0|552800000000016| 0,552800000000016|5,52800000000008|0,552800000000016|5,52800000000|008|0,160000000000005| 0,160000000000005|0,16|0|5,52800000000008|0|5,52800000000008|0|0|0|65|1|1|0|1|4|');
--> also nicht sehr lange!
kann es sein dass dieser defaultmässig return nicht funktioniert?
wie kann ich manuell einen Zeilenumbruch einsetzten?
Ich hab schon einiges probiert, ich hoffe jemand hat eine
Idee für mich?
Grüsse
Silvia
[Edit: Leerzeichen hinzugefügt, damit das Webseiten-Design nicht zerstört wird. Gruß, Timo]
Zuletzt geändert von Silvia am 17. Juli 2007 12:59, insgesamt 2-mal geändert.