Das Notes Forum
Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: ivan_hunkeler am 05.10.06 - 15:57:46
-
tmpWert:=@ToNumber(@Subset(@DbColumn( "" : "NoCache" ; "" ; "$LNummer" ; 1); 1));
diese Zeile hier sollte mir die letzt Bestellnummer die gespeichert wurde +1 auslesen. Dies hat wunderbar geklappt unter Notes 6.5.2 aber jetzt unter 7.0.1 krieg ich den Wert @Error zurück.
Hat jemand eine Idee was hier falsch läuft?!
ich bedanke mich schon jetzt für die Bemühungen..
MfG ivan
-
Also erstmal fehlt da komplett das Error handling!
_lookup := @DbColumn( "" : "NoCache" ; "" ; "$LNummer" ; 1);
@If(
@IsError(_lookup);
@Return(@Prompt([ok];"Fehler";@text(_lookup));
""
);
REM "Kontrollausgabe";
@Prompt([ok];"Kontrollausgabe";@Subset(_lookup; 1));
tmpWert:=@ToNumber(@Subset(_lookup; 1));
Was spuckt der Prompt bei Dir aus?
Sind überhaupt Dokument da?
-
vielen dank für deine bemühungen...
hmm ich kriege nur @Error als ausgabe!
als würde er die Daten in der Datenbank nicht finden, gebe ich eine andere ansicht/tabelle an dann funktioniert auch meine Formel...(werde aber gerne diese von dir geschriebene übernehemen.)
Mit nachfolgender Formel habe ich bis jetzt in den letzten zwei Jahren gearbeitet, nun nach dem Lotus Notes Update funktionierts irgendwie unter Notes 7.0 nicht mehr.
auch wenn ich mein code mit ihrem ergänze scheint es noch nicht ganz zu funktionieren...
************************************
tmpWert := @ToNumber(@Subset(@DbColumn( "" : "NoCache" ; "" ; "$LNummer" ; 1); 1)) + 1;
@If(@IsNewDoc;@SetField("numNummer"; tmpWert);numNummer)
****************************************
-
nunja ich habs geknackt:D
es ist ein Bug unter 7.0.1 die ansicht hatte mahr als 64000 einträge
ich bedanke mich aber führ ihre bemühungen...
-
Ein Bug unter 7.0.1? Keine Notes-Version kommt bei dbColumn mit mehr als 64 k Daten aus.
Bernhard
-
Aber in der 7.0.1. gabs doch diesen Regression-Bug, dass sich das Handling des 64KB Limits geändert hatte.
-
das ist nicht ganz richtig @Bernhard: In R6 wurde diese Grenze für den DBColumn / DBLookup selbst aufgehoben, nur musste man dann dafür sorgen (durch @Unique, @Subset, oder sonstwelche Filter), dass später die Listen wieder auf die 64k zurückgestutzt wurden, bevor sie zum beispiel in ein Feld geschrieben werden, was ja im vorgestellten Code passiert...
Allerdings gab es -wie m3 schreibt- einen Regression Bug in 7.0.x, der diese Einschränkung wieder hervorholt...
nur so zur Ergänzung...
Tode
-
@Tode,
Soll man diesem Beitrag also entnehmen, dass in R6 @DbColumn und @DbLookup mehr als 64k zurueckliefern.
Dem widerspricht aber die Hife der Version 6
Was ist jetzt richtig?
Andreas
-
Auszug aus Technote Nr. 1099056 der Lotus KB:
Starting in Notes/Domino 6.0 a lookup function can access return greater than 64k of data. The Notes user interface and fields are still limited to presenting 64k of data, so if the returned lookup data set is greater than 64k then it must be reduced in size using functions or formulas (for example, by using @Subset).
Also offensichtlich ist hier die Designer- Hilfe falsch...
HTH
Tode
Edit: Hier noch der KB- Eintrag, der den Regression- Bug beschreibt (Nr. 1231611 )
After upgrading to Lotus Notes/Domino 7.0.1, you find that @Db lookup functions that return >64K of data always return "@ERROR". The same error did not occur when using Notes/Domino 7.0 or earlier 6.x releases under similar circumstances.
In Notes 6.0 and later, lookups can return greater than 64K as long as the resulting data set is then limited using formulas or functions so that less than 64K of data is returned to a field or the Notes user interface.
For example, if the below lookup generated more than 64K of data it would return "@ERROR" in Notes/Domino 7.0.1, but would return the expected data in 7.0 and earlier 6.x releases.
@Subset(@DbLookup("":""; "ServerName" : "Database.nsf"; "ViewName"; key; 2); 100)
The issue does not affect lookups present within Dialog List fields.
Note: If a database is on a Domino server, then the results observed are dependent on the server release, regardless of whether the user initiates (executes) the lookup.