Beschreibung:
Erzeugt ein Objekt vom Typ RecordSet. Es wird daher keine Ansicht visuell geöffnet.
Hinweis: Aus Sicherheitsgründen ist der Zugriff auf ViewConfig Objekte von Ansichten, auf die der aktuelle Benutzer keine Zugriffsrechte besitzt, nicht möglich. Alle diese ViewConfig Objekte werden in der übergeordneten Collection (ListViewConfigs) für die Eigenschaften/Methoden Count und Item nicht angeboten. Bei einem versuchten Direktzugriff per ItemByName wird kein Objekt zurückgegeben – es erfolgt zudem eine Fehlerausgabe auf das Debug-Tool Debwin.
Wir empfehlen, nach Erzeugung eines RecordSet-Objektes zunächst mittles Aufruf der Methode "MoveFirst" die Existenz mindestens eines Record-Objektes zu überprüfen.
Wichtiger Hinweis für die Verwendung des Parameters CursorModel mit dem Wert 2 (forward-only) unter Microsoft SQL Server: Die Datensätze eines forward-only-RecordSets müssen nach dessen Erstellung direkt und unmittelbar über eine "GotoNext"-Schleife ohne Interaktion vollständig durchlaufen werden. Anderenfalls kann es, wenn das RecordSet viele Zeilen enthält, am Datenbankserver zu einem ASYNC_NETWORK_IO-Wartezustand kommen, der dann andere Abfragen (vor allem Änderungen) auf dieselbe Tabelle blockiert.
|
Parametername |
Typ |
Beschreibung |
|
InitialCommand |
String |
Optional. Ermöglicht die Übergabe einer Sortierung mittels "SetSortOrder:n" (n = Nummer der gewünschten Sortierung, 0 = unsortiert, -n = invertierte Sortierung). Verhindert weitere Datenbankabfragen, die durch das Setzen der SortOrder-Eigenschaft ausgeführt werden müssten. Dieses Schlüsselwort muss als erstes angegeben werden, wenn es benutzt werden soll. Nachfolgende SetFilter*-Schlüsselworte können mit Leerzeichen oder Komma angehängt werden.
Ein Filter kann mit Leerzeichen oder Komma getrennt dahinter aufgeführt werden. Der Filterausdruck muss dabei mit einer der folgenden Zeichenfolgen beginnen: "SetFilter: <Filterausdruck aus dem Filter Allgemein-Dialog>" "SetFilterByName:<Name für Scripte/Workflows des abgespeicherten Filters oder Pfad zu einer .crmshare-Datei mit enthaltenem Filterausdruck>" "SetFilterDirectSQL:<Freier SQL Filterausdruck>" "SetFilterByPrimaryKey:<Inhalt des Primärschlüsselfeldes>" Ersetzen Sie den Teil <...> durch den entsprechenden Wert. |
|
Long |
Optional. Ermöglicht die Spezifikation des Datenbankcursormodells, das für den zurückgegebenen RecordSet genutzt werden soll.
Werte: 0 (Standardwert): Erzeugt ein RecordSet mit einem Datenbankcursormodell, welches innerhalb der combit CRM-Projektdatei spezifiziert werden kann:
... <!-- DATA --> <profile> <list name=""> <list name="ExtendedSettings"> <item name="COMRecordSetCursorDefault">2</item> </list> ...
Wird in der combit CRM-Projektdatei keine Eigenschaft COMRecordSetCursorDefault gefunden, so wird immer ein fully-dynamic RecordSet erzeugt. Mögliche Werte für die Eigenschaft sind: 1 – fully-dynamic RecordSet, 2 – forward-only RecordSet.
1: Erzeugt ein RecordSet mit fully-dynamic
Datenbankcursor. 2: Erzeugt ein RecordSet mit forward-only Datenbankcursor. Ermöglicht deutliche Performance-Gewinne, insbesondere bei großen Datenmengen und komplexen Filterausdrücken, erlaubt aber lediglich das einmalige Durchlaufen in Vorwärtsrichtung durch den RecordSet.
Die Methoden RecordSet.DialogSelectRecord, RecordSet.DialogSelectRecordMultiple, RecordSet.SendBulkMail (bei anzuzeigendem integrierten Mail-Editor), RecordSet.MovePrevious, RecordSet.MoveLast, InputForm.DialogSelectRecordDropDown werden einen Scriptfehler werfen, wenn diese für einen forward-only RecordSet genutzt werden. Für diese Methoden muss der RecordSet explizit ohne forward-only (Werte 0 oder 1) erzeugt werden. |
Rückgabewert:
RecordSet
Beispiel VBScript:
' Dieses Beispiel basiert auf der Kontakte-Ansicht einer combit_Large-Solution
Dim oRecordSet : Set oRecordSet = cRM.CurrentProject.ViewConfigs.ItemByName("Kontakte").CreateRecordSet("SetFilterByName:Kunden_aus_Deutschland")
' ...
Set oRecordSet = Nothing
Beispiel C#-Script:
// Dieses Beispiel basiert auf der Kontakte-Ansicht einer combit_Large-Solution
RecordSet recordSet = cRM.CurrentProject.ViewConfigs.ItemByName("Kontakte").CreateRecordSet("SetFilterByName:Kunden_aus_Deutschland");
// ...
recordSet.Dispose();