GetRelationalRecordSet

Beschreibung:

Liefert ein RecordSet aufgrund einer relationalen Struktur zurück.

Hinweis: Wir empfehlen, nach Erzeugung eines RecordSet-Objektes zunächst mittels 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.

Parameter:

Parametername

Typ

Beschreibung

Relation

String

Bezeichnung der Relation, z. B. ID.Kontakte.CompanyID

 

Optional kann die gewünschte Sortierung mittels Postfix "/SetSortOrder:<+-Nr>" angegeben werden, z. B. 

 "ID.Kontakte.CompanyID/SetSortOrder:4": Sortierung nach Kundennummer aufsteigend

 "ID.Kontakte.CompanyID/SetSortOrder:+4": Sortierung nach Kundennummer aufsteigend

 "ID.Kontakte.CompanyID/SetSortOrder:-4": Sortierung nach Kundennummer absteigend

CursorModel

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:

' Zählt alle Datensätze in einem RecordSet. Dieses Beispiel basiert auf der Kontakte-Ansicht einer combit_Large-Solution

 

Dim oContactRecordSet : Set oContactRecordSet = cRM.CurrentProject.ActiveViews.ActiveView.CurrentRecordSet.CurrentRecord.GetRelationalRecordSet("ID.Kontakte.CompanyID")

 

If (oContactRecordSet Is Nothing) Then

    MsgBox "oContactRecordSet Is Nothing"

    WScript.Quit

End If

 

Call MsgBox(oContactRecordSet.RecCount & " - Datensätze befinden sich im oContactRecordSet", vbOkOnly, cRM.AppTitle)

 

Set oContactRecordSet = Nothing

Beispiel C#-Script:

// Zählt alle Datensätze in einem RecordSet. Dieses Beispiel basiert auf der Kontakte-Ansicht einer combit_Large-Solution

 

RecordSet contactRecordSet = cRM.CurrentProject.ActiveViews.ActiveView.CurrentRecordSet.CurrentRecord.GetRelationalRecordSet("ID.Kontakte.CompanyID");

 

if (contactRecordSet == null)

{

    cRM.DialogMessageBox("contactRecordSet == null", "combit CRM", 16);

}

else

{

    cRM.DialogMessageBox(contactRecordSet.RecCount.ToString() + " – Datensätze befinden sich im oContactRecordSet", "combit CRM", 0);

}