Autor Thema: Problem mit Kombinationsfeld: Datenbanksuche > 65.000 Byte  (Gelesen 6894 mal)

Offline semtex

  • Frischling
  • *
  • Beiträge: 43
  • Geschlecht: Männlich
Hallo mal wieder,
leider habe ich über die Suche nichts wirklich Passendes gefunden, deshalb meine Frage hier:

Ich habe in einer DB eine Maske mit einem Kombinationsfeld. In diesem Feld werden (anhand einer Suche in einer Ansicht) eine ganze Menge von Werten aufgelistet.

Inzwischen hat die Ansicht aber sehr viele Einträge und entsprechend das Kombinationsfeld auch viele Werte. Seit kurzem werden aber nicht mehr die Werte ausgegeben sondern es erscheint die Fehlermeldung: Das Ergebnis der durchfeührten Datenbanksuche umfasst mehr als 65,000 Byte - Notes kann in diesem Fall dieses Ergebnis nicht weiter verarbeiten (siehe beigefügter Screenshot)

Die Auswahl-Formel des Kombinationsfeldes lautet folgendermaßen:
Code
server := "" ;
database := "" ;
view := "Firmen" ;
columnNumber := 1;

Liste := @Unique(@DbColumn(class:"NoCache"; server:database; view; columnNumber));
Liste

Kann mir jemand weiterhelfen, wie ich dieses Problem angehen könnte?

Tausend Dank, semtex!
« Letzte Änderung: 05.04.06 - 15:21:18 von semtex »
"Erst wenn wir alles verloren haben, haben wir die Freiheit, alles zu tun!"
Fight Club

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit Kombinationsfeld: Datenbanksuche > 65.000 Byte
« Antwort #1 am: 05.04.06 - 15:21:00 »
Das kannst Du nur mit einer Picklist umgehen.

Bernhard

Offline HH

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
Re: Problem mit Kombinationsfeld: Datenbanksuche > 65.000 Byte
« Antwort #2 am: 05.04.06 - 15:48:45 »
Wenn ich das richtig deute, dann gibt es in der Ansicht doppelte Werte, die du mit @unique entfernst. Kannst du statt dessen nicht ein Ansicht bauen, die nach dem gewünschten Feldinhalt kategorisiert ist und den @dbcolumn dann über die kategorisierte Spalte machst?

Hubert

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit Kombinationsfeld: Datenbanksuche > 65.000 Byte
« Antwort #3 am: 05.04.06 - 15:51:01 »
Das ändert aber an der übertragenen Datenmenge nichts - dass das Kategorien sind, sieht man nur im Frontend.

Bernhard

Glombi

  • Gast
Re: Problem mit Kombinationsfeld: Datenbanksuche > 65.000 Byte
« Antwort #4 am: 05.04.06 - 15:55:40 »
Ist die 1. Spalte denn kategorisiert? Offenbar nicht, denn Du verwendest ja @Unique.

Das würde ich mal als erstes checken. Falls die Spalte nur sortiert ist, werden auch Massen doppelter Einträge da sein. Durch die Kategorisierung werden nur eindeutige Werte zurückgegeben.

Andreas

Offline semtex

  • Frischling
  • *
  • Beiträge: 43
  • Geschlecht: Männlich
Re: Problem mit Kombinationsfeld: Datenbanksuche > 65.000 Byte
« Antwort #5 am: 05.04.06 - 15:57:35 »
@HH / @Glombi: Das mit dem @unique ist nur deshalb, weil es manche (wenige Eintrage) in dieser Spalte doppelt gibt (die unterscheiden sich dann anhand der zweiten Spalte). D.h. es hilf mir leider nicht weiter, die Ansicht zu kategorisieren (oder verstehe ich Dich nicht richtig?).
Trotzdem danke für den Tipp.

@koehlerbv: Das mit der Picklist ist wohl eine gute Idee, allerdings wird das meine bisherige Maske (und entsprechend den "Workflow") über den Haufen werfen.
Falls es noch andere Vorschläge gibt: Her damit!!!  ;)
"Erst wenn wir alles verloren haben, haben wir die Freiheit, alles zu tun!"
Fight Club

Glombi

  • Gast
Re: Problem mit Kombinationsfeld: Datenbanksuche > 65.000 Byte
« Antwort #6 am: 05.04.06 - 16:09:54 »
Warum eine simple Picklist den Workflow über den Haufen werden sollte musst Du mal erläutern.

Letztendlich wird es doch darum gehen, dass in einem Feld bestimmte Werte stehen. Ob die nun via Kombinationsfeld und @Dbcolumn oder elegant via Picklist gesetzt werden ist doch gehopst wie gesprungen.

Falls nicht, sollte das Design eh über den Haufen geworfen werden  ;D

Andreas

Offline semtex

  • Frischling
  • *
  • Beiträge: 43
  • Geschlecht: Männlich
Re: Problem mit Kombinationsfeld: Datenbanksuche > 65.000 Byte
« Antwort #7 am: 05.04.06 - 16:15:08 »
Ok, über den Haufen geworfen ist überzogen, lass es mich so ausdrücken: Es ist eine größere Änderung notwendig, als ich erhofft habe.  ;)
Das mit der Picklist ist auf jeden Fall ein guter Vorschlag, ich hoffe dass ich das auch so hingebogen bekomme, denn die Auswahl im bisherigen Kombinationsfeld hat einige onChange-Aktionen nach sich gezogen. Das soll jetzt aber nicht heißen, dass ich da ein grundsätzliches Problem sehe, sondern eher dass ich da mit meinem Wissen immer wieder an Grenzen stoße.

Ich habe soeben auch nochmal (nur zur Sicherheit) die Geschichte mit der Kategorisierung probiert: Leider sind es, wie befürchtet, immer noch zu viele Einträge in der Ansicht....

Falls es sonst noch Ideen/anregungen gibt, bin ich für alles offen!!!

Danke semtex
"Erst wenn wir alles verloren haben, haben wir die Freiheit, alles zu tun!"
Fight Club

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit Kombinationsfeld: Datenbanksuche > 65.000 Byte
« Antwort #8 am: 05.04.06 - 16:20:52 »
Du brauchst doch "fast" nix zu ändern: Das bisherige Feld wird berechnet, und daneben setzt Du einen Buhtong (denn kannst Du auch grafisch gestalten, damit er so aussieht wie die "normale" Auswahlschaltfläche).
Damit bleibt das bisherige Vorgehen (fast) erhalten: Das OnChange verlegst Du einfach ins PostRecalc und stellst beim Feld ein, dass dieses Event getriggert wird bei Schlüsselwortänderungen.

HTH,
Bernhard

Offline HH

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
Re: Problem mit Kombinationsfeld: Datenbanksuche > 65.000 Byte
« Antwort #9 am: 05.04.06 - 16:38:58 »
@Bernhard

Tut zwar nichts mehr zur Sache, aber ich hab das gerade noch mal getestet - mit und ohne Kategorisierung.

Bei gleicher Anzahl Dokument kommt bei Kategorisierung kein Fehler.

Hubert

Glombi

  • Gast
Re: Problem mit Kombinationsfeld: Datenbanksuche > 65.000 Byte
« Antwort #10 am: 05.04.06 - 16:50:37 »
@Bernhard

Tut zwar nichts mehr zur Sache, aber ich hab das gerade noch mal getestet - mit und ohne Kategorisierung.

Bei gleicher Anzahl Dokument kommt bei Kategorisierung kein Fehler.

Hubert
Sonst wäre ja auch irgendwas mit dem View Index intern so designed, dass ich es nicht verstehe...

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit Kombinationsfeld: Datenbanksuche > 65.000 Byte
« Antwort #11 am: 05.04.06 - 17:36:24 »
Es kann gut sein, dass ich da gerade eine üble Wissenslücke stopfe bzw. gestopft bekomme. Nur: Kann das jemand sicher bestätigen?

Aber abgesehen davon: Bei grossen Ansichten lebt man als Entwickler immer mit der Gefahr, dass irgendwann auch die reduzierte (Rückgabe-)Datenmenge wieder am Limit kratzt. Und 64 kB sind ja sooo viel nun nicht. Ich präferiere da die grundsätzliche Lösung.

Bernhard

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Problem mit Kombinationsfeld: Datenbanksuche > 65.000 Byte
« Antwort #12 am: 06.04.06 - 08:56:59 »
erst mal:
- eine Kategorisierte Ansicht liefert im @DBColumn tatsächlich weniger zurück als eine sortierte
ABER:
Seit R6 spielt das keine Rolle mehr, denn es ist so:
Der DBLookup / DBColumn kann seit R6 MEHR als die 64k zurückliefern, die Grenze existiert nicht mehr.

Warum kommt dann noch die Fehlermeldung, werdet Ihr Euch fragen. In dem Moment wo man mit diesem Ergebnis weiterarbeiten möchte (es also in eine Variable schreibt), kommt man wieder an das Limit, den Variablen haben (genau wie Felder) dieses Limit noch.

ERGO:

Datenmenge[ @Unique( @DBColumn( nichtKategorisierteAnsicht ) ) ] = Datenmenge[ @DBColumn( kategorisierteAnsicht ) ] >>> führt erst dann zu einem >64k Fehler, wenn man dieses Ergebnis einer Variablen zuweist...

Kann man die Datenmenge vorher der Variablen- Zuweisung noch weiter reduzieren, dann kommt der Fehler nicht (in den meisten Fällen geht das aber nicht, weil man ja schon die Spalte so aufgebaut hat, dass sie nur die Werte enthält, die man will).

Trotzdem ein Beispiel:

nehmen wir an, ich habe eine "universelle" Lookup- Ansicht, die so aufgebaut ist:

Vorname~Tido
Vorname~Trude
Vorname~Hans
Nachname~Test
Nachname~Muster
Nachname~Wurst

auch wenn der @DBColumn nun ein Ergebnis >64k zurückliefert, dann KÖNNTE das funktionieren:

Vornamen := @Right( @DBColumn( ... ) ; "Vorname~" )

wenn die Summe der Vornamen wiederum WENIGER als 64k Daten enthält....

Aber als Antwort auf die ursprüngliche Frage kann es nur die "Picklist" geben, denn selbst wenn die Datenmenge temporär so reduziert werden kann, dass die Fehlermeldung nicht mehr kommt, zeigt die Erfahrung, dass in Kürze die Datenmenge wieder so angewachsen ist, dass man wieder an die Grenze stösst.

HTH
Tode


Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Untitled

  • Senior Mitglied
  • ****
  • Beiträge: 364
    • Musiker24.ch - Musiker und Bands finden
Re: Problem mit Kombinationsfeld: Datenbanksuche > 65.000 Byte
« Antwort #13 am: 06.04.06 - 09:02:14 »
Ich kann mir auch nicht vorstellen, dass eine Combobox mit so viel Einträgen besonders Benutzerfreundlich ist. Ich denke, die sollte man bis maximal 100 Zeilen verwenden. Anschliessend wird das Scrollen und "bei-klick-daneben-position-verlier" sowieso zu umständlich.

Moritz

Offline semtex

  • Frischling
  • *
  • Beiträge: 43
  • Geschlecht: Männlich
Re: Problem mit Kombinationsfeld: Datenbanksuche > 65.000 Byte
« Antwort #14 am: 06.04.06 - 10:49:43 »
Hallo,

ich versuche gerade die Lösung wie oben empfohlen mit der Picklist umzusetzen.
Dabei benutze ich die LS-Funktion PickListCollection().

Allerdings erwartet diese Funktion als Parameter den Server. Den kann ich ja eigentlich dynamisch mit db.server auslesen.
Was passiert nun aber, wenn ich mit einer lokalen Replik meiner DB arbeite? Dann gibt mir db.server einen Leerstring zurück und entsprechend die LS-Funktion PickListCollection() einen Fehler. Kann ich PickListCollection() lokal gar nicht verwenden?

Wie immer schon mal vielen vielen Dank!

Gruß semtex
"Erst wenn wir alles verloren haben, haben wir die Freiheit, alles zu tun!"
Fight Club

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit Kombinationsfeld: Datenbanksuche > 65.000 Byte
« Antwort #15 am: 06.04.06 - 10:55:31 »
Die Angabe via NotesDatabase.Server und NotesDataBaseFilePath ist gängige Praxis. Auch lokal darf das keinen Fehler ergeben.

Bernhard

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Problem mit Kombinationsfeld: Datenbanksuche > 65.000 Byte
« Antwort #16 am: 06.04.06 - 10:59:55 »
und warum willst Du das unbedingt in Script programmieren ?

in Script sind das 20 Zeilen (minimum), wenn man alles schön deklariert, etc. pepe.

in Formel sind das (jetzt ohne "errorhandling" 2 Zeilen:

ok := @Picklist( ) ;
FIELD abc := ok;

Gruß
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline semtex

  • Frischling
  • *
  • Beiträge: 43
  • Geschlecht: Männlich
Re: Problem mit Kombinationsfeld: Datenbanksuche > 65.000 Byte
« Antwort #17 am: 06.04.06 - 11:06:05 »
Falscher Alarm:
Ich hatte den DB-Namen unvollständig angegeben. Mein Fehler.  :-[

Natürlich funktioniert es mit db.server und db.FilePath auch lokal.

LS verwende ich weil.... naja, ich die Formelsprache nicht so mag. Ist aber eine persönliche Vorliebe und keinerlei Wertung. Aber wahrscheinlich wäre es in diesem Fall wirklich schneller und kürzer mit einer Formel gewesen.

Danke nochmal an alle für die kompetente Hilfe und "Props" an dieses Forum!
Weiter so!!!

Gruß semtex
« Letzte Änderung: 06.04.06 - 11:25:40 von semtex »
"Erst wenn wir alles verloren haben, haben wir die Freiheit, alles zu tun!"
Fight Club

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Problem mit Kombinationsfeld: Datenbanksuche > 65.000 Byte
« Antwort #18 am: 06.04.06 - 11:45:32 »
persönliche Präferenzen hin oder her...

es gilt (imho) noch immer der Grundsatz (aus Wartungsaspekten, aus Performance- Aspekten, etc....) :

Formel wo möglich (und Sinnvoll), LotusScript wo nötig

Aber egal... ich will hier keine Grundsatzdiskussionen lostreten, ich habe halt nur schon Anwendungen gesehen, die komplett in Script geschrieben waren (vermutlich von einem Umsteiger), die aber eigentlich keine einzige Zeile Script- benötigt hätten....

Gruß
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz