Freigeben über


Schreiben Ihres eigenen benutzerdefinierten Handlers

Gilt für: Access 2013 | Access 2016

Möglicherweise möchten Sie einen eigenen Handler schreiben, wenn Sie IIS-Serveradministrator sind und die standardmäßige RDS-Unterstützung benötigen, aber gleichzeitig mehr Kontrolle über Benutzeranforderungen und Zugriffsrechte haben möchten.

Durch den MSDFMAP.Handler wird die IDataFactoryHandler-Schnittstelle implementiert.

IDataFactoryHandler-Schnittstelle

Diese Schnittstelle verfügt über zwei Methoden, GetRecordset und Reconnect. Für beide Methoden muss die CursorLocation-Eigenschaft auf adUseClient festgelegt sein.

Beide Methoden akzeptieren Argumente, die nach dem ersten Komma im "Handler="-Schlüsselwort angezeigt werden. "Handler=progid,arg1,arg2;" Beispielsweise übergibt eine Argumentzeichenfolge von "arg1,arg2", und übergibt eine Argumentzeichenfolge von "arg1,arg2", und "Handler=progid" übergibt ein NULL-Argument.

GetRecordset-Methode

Mit dieser Methode wird die Datenquelle abgefragt und ein neues Recordset-Objekt mit den bereitgestellten Argumenten erstellt. Das Recordset-Objekt muss mit adLockBatchOptimistic geöffnet und darf nicht asynchron geöffnet werden.

GetRecordset-Argumente

conn Die Verbindungszeichenfolge.

args Die Argumente für den Handler.

query Der Befehlstext für das Ausführen einer Abfrage.

ppRS Der Zeiger für die Stelle, an der das Recordset-Objekt zurückgegeben werden soll.

Reconnect-Methode

Mit dieser Methode wird die Datenquelle aktualisiert. Es wird ein neues Connection-Objekt erstellt, und das angegebene Recordset-Objekt wird angefügt.

Argumente für die erneute Verbindung

conn Die Verbindungszeichenfolge.

args Die Argumente für den Handler.

pRS Ein Recordset-Objekt.

msdfhdl.idl

Dies ist die Schnittstellendefinition für IDataFactoryHandler, die in der Datei msdfhdl.idl angezeigt wird.

[ 
  uuid(D80DE8B3-0001-11d1-91E6-00C04FBBBFB3), 
  version(1.0) 
] 
library MSDFHDL 
{ 
    importlib("stdole32.tlb"); 
    importlib("stdole2.tlb"); 
 
    // TLib : Microsoft ActiveX Data Objects 2.0 Library 
    // {00000200-0000-0010-8000-00AA006D2EA4} 
    #ifdef IMPLIB 
    importlib("implib\\x86\\release\\ado\\msado15.dll"); 
    #else 
    importlib("msado20.dll"); 
    #endif 
 
    [ 
      odl, 
      uuid(D80DE8B5-0001-11d1-91E6-00C04FBBBFB3), 
      version(1.0) 
    ] 
    interface IDataFactoryHandler : IUnknown 
    { 
HRESULT _stdcall GetRecordset( 
      [in] BSTR conn, 
      [in] BSTR args, 
      [in] BSTR query, 
      [out, retval] _Recordset **ppRS); 
 
// DataFactory will use the ActiveConnection property 
// on the Recordset after calling Reconnect. 
   HRESULT _stdcall Reconnect( 
      [in] BSTR conn, 
      [in] BSTR args, 
      [in] _Recordset *pRS); 
    }; 
}; 

Siehe auch

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.