FlowFact - Entwicklungstools

zurück

Function - FF_GetRecordset
Recordset über das FlowFact-Objektmodell abfragen

Diese Funktion erlaubt einen direkten Zugriff auf die FlowFact-Datenbank. Der Berechtigungskontext des aktuell eingeloggten Benutzers (CurrentUser) wird berücksichtigt. Dadurch ist z.B. ein Zugriff auf Detailtabellen nur über den Hauptdatensatz möglich, sonst wird die Meldung 'In der verwendeten SQL-Abfrage konnte die Haupttabelle nicht ermittelt werden oder diese darf nicht in dieser Form abgefragt werden. Die Abfrage wird abgelehnt.' zurückgegeben.
  Function FF_GetRecordset(ByVal strSQL As String) As ADODB.Recordset  
 


strSql: Sql-Selectabfrage z.B. "SELECT FldArt.Kürzel, AKTDET.Eingabe FROM AKT INNER JOIN AKTDET ON AKT.DSN = AKTDET.AKT_DSN inner join FLDART ON AKTDET.FldArt_Dsn = FldArt.Dsn"
Rückgabewert: Recordset; siehe AdoHelp\ADO210.CHM


Public Function FF_GetRecordset(ByVal strSQL As String) As ADODB.Recordset
'**++ Es sollten keine doppelten Leerzeichen in der Selectabfrage vorkommen.

    '** Logging
    If m_oApplication.FlagSqlLog = True Then
        m_oApplication.DoLog "GetRecordset", strSQL
        On Error Resume Next
    End If


    Select Case m_oApplication.FlowFact_InitType
        Case INITTYPE_APPLICATION
            If m_strDBPassword <> STRNOTHING Then
                Set FF_GetRecordset = m_oApplication.FlowFact_Application.GetRecordset(strSQL, m_strDBPassword)
            Else
                Set FF_GetRecordset = m_oApplication.FlowFact_Application.GetRecordset(strSQL)
            End If
        Case INITTYPE_CONNECTOR
            If m_strDBPassword <> STRNOTHING Then
                Set FF_GetRecordset = m_oApplication.FlowFact_Connector.GetRecordset(strSQL, m_strDBPassword)
            Else
                Set FF_GetRecordset = m_oApplication.FlowFact_Connector.GetRecordset(strSQL)
            End If
        Case Else
            RaiseError_NotInit
    End Select

    If FF_GetRecordset.EOF = True Then
        m_oApplication.DoLog "EOF=true in ", "SQL: " & strSQL
    End If

    If m_oApplication.FlagSqlLog = True Then
        If Err <> 0 Then
            m_oApplication.DoLog "ERROR GetRecordset", Err.Description & "| SQL: " & strSQL
        End If
    End If

End Function