Vorgehensweise: Durchforsten von BLOB-Daten (Binary Large Objects)
In diesem Thema wird erläutert, wie Sie in einer Microsoft SQL Server-Datenbank gespeicherte BLOB-Daten (Binary Large Object) durchforsten können.
Letzte Änderung: Freitag, 8. Oktober 2010
Gilt für: SharePoint Server 2010
In Microsoft SharePoint Server 2010 unterstützt der Business Data Connectivity-Dienst (BDC) das Lesen von BLOB-Datentypen, was für das Streamen von BLOB-Daten aus externen Systemen nützlich ist. Mithilfe des Konnektorframeworks von Microsoft SharePoint Server 2010-Suche können Sie BLOB-Daten durchforsten, die per Streaming aus dem externen System übertragen werden. Zum Aktivieren dieser Funktionalität muss jedoch die BDC-Modelldatei manuell geändert werden.
Durchforsten von BLOB-Daten in einer SQL Server-Datenbanktabelle
Die Microsoft SQL Server-Datenbanktabelle muss eine Spalte enthalten, die entweder die Erweiterung oder den MIME-Typ der BLOB-Daten angibt. Wenn das Datenbanktabellenschema keine Spalte mit diesen Informationen aufweist, müssen Sie dem Schema eine solche Spalte hinzufügen. Die folgenden Tabellen enthalten ein Beispiel eines Datenbanktabellenschemas mit dieser Spalte und dazugehörige Beispielwerte, die in der Datenbanktabelle gespeichert sind.
Tabelle 1. Schema der Beispieldatenbanktabelle
Spaltenname |
Datentyp |
---|---|
Id |
Int |
DisplayName |
nvarchar(50) |
Extension |
nvarchar(50) |
Data |
varbinary(MAX) |
ContentType |
nvarchar(MAX) |
Tabelle 2. Werte der Beispieldatenbanktabelle
ID |
Anzeigename |
Erweiterung |
Daten |
Inhaltstyp |
---|---|---|---|---|
1 |
File1 |
.docx |
0x504B… |
application/vnd.openxmlformats-officedocument.wordprocessingml.document |
2 |
File2 |
.doc |
0xD… |
application/msword |
3 |
File3 |
.txt |
OxE… |
text/plain |
Ändern der BDC-Modelldatei zum Ermöglichen der Durchforstung
Nachdem Sie geprüft haben, dass die Datenbanktabelle die Erweiterungs- oder MIME-Typinformationen für die BLOB-Daten enthält, können Sie mit Microsoft SharePoint Designer 2010 einen externen Inhaltstyp erstellen, der auf der Tabelle mit den BLOB-Daten basiert. Anschließend können Sie alle gewünschten Vorgänge einrichten. Weitere Informationen finden Sie unter Gewusst wie: Erstellen externer Inhaltstypen und Gewusst wie: Erstellen eines externen Inhaltstyps basierend auf einer SQL Server-Tabelle.
Nach Erstellen des externen BLOB-Datentyps können Sie die BDC-Modelldatei zum Ermöglichen der Durchforstung ändern. Diese Änderungen sind nicht in SharePoint Designer 2010 möglich. Sie müssen die BDC-Modelldatei exportieren und in einem XML-Editor manuell bearbeiten.
So exportieren Sie die BDC-Modelldatei für den externen BLOB-Inhaltstyp
Klicken Sie in SharePoint Designer 2010 im linken Navigationsbereich auf Externe Inhaltstypen, um alle externen Inhaltstypen anzuzeigen, die im BDC-Metadatenspeicher der Dienstanwendung dieser Website definiert sind.
Wählen Sie in der Liste Externe Inhaltstypen den externen Inhaltstyp BLOB aus. Klicken Sie anschließend im Menüband für die Serverkomponente auf BDC-Modell exportieren.
Geben Sie in das Textfeld BDC-Modellname einen Namen ein, und klicken Sie anschließend auf OK.
Wählen Sie den Speicherort zum Speichern der BDC-Modelldatei (.bdcm) aus, und klicken Sie dann auf Speichern.
So ermöglichen Sie die Durchforstung des externen BLOB-Inhaltstyps
Öffnen Sie in einem XML-Editor die BDC-Modelldatei, die Sie im vorherigen Abschnitt erstellt haben.
Erstellen Sie eine neue Methode, die das BLOB-Feld zurückgibt. Sie müssen eine Methodeninstanz vom Typ StreamAccessor für dieses Methode definieren (siehe das folgende Beispiel).
Hinweis
Der Tabellenname in diesem Beispiel lautet "Attachment".
<Method Name="GetData"> <Properties> <Property Name="RdbCommandText" Type="System.String">SELECT Data FROM [dbo].[Attachment] WHERE [Id] = @Id </Property> <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">Text</Property> </Properties> <Parameters> <Parameter Direction="In" Name="@Id"> <TypeDescriptor TypeName="System.Int32" IdentifierName="Id" Name="Id" /> </Parameter> <Parameter Name="StreamData" Direction="Return"> <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="DataReaderTypeDescriptorName"> <TypeDescriptors> <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="DataRecordTypeDescriptorName"> <TypeDescriptors> <TypeDescriptor TypeName="System.Data.SqlTypes.SqlBytes, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Data" /> </TypeDescriptors> </TypeDescriptor> </TypeDescriptors> </TypeDescriptor> </Parameter> </Parameters> <MethodInstances> <MethodInstance Name="DataAccessor" Type="StreamAccessor" ReturnParameterName="StreamData" ReturnTypeDescriptorName="Data"> <Properties> <!-- If extension field is available--> <Property Name="Extension" Type="System.String">Extension</Property> <!--If MimeType is available--> <Property Name="ContentType" Type="System.String">ContentType</Property> <!--If attachments is to be displayed in profile pages, add the following property--> <Property Name="MimeTypeField" Type="System.String">ContentType</Property> </Properties> </MethodInstance> </MethodInstances> </Method>
Wenn der MIME-Type für alle BLOB-Datentypen gleich ist, können Sie diese Codezeile im vorherigen Code:
<Property Name="ContentType" Type="System.String">ContentType</Property>
durch die folgende Codezeile ersetzen:
<Property Name=" ContentType " Type="System.String">application/vnd.openxmlformats-officedocument.wordprocessingml.document</Property>Importieren Sie die Modelldatei auf der Benutzeroberfläche für die Dienstanwendungsverwaltung von Business-Konnektivitätsdienste (Business Connectivity Services) erneut. Weitere Informationen finden Sie unter Verwalten von BDC-Modellen (SharePoint Server 2010) auf der Microsoft TechNet-Website.
Erstellen Sie die Inhaltsquelle für den externen Inhaltstyp. Weitere Informationen finden Sie unter Hinzufügen, Bearbeiten oder Löschen einer Inhaltsquelle (SharePoint Server 2010) auf der TechNet-Website.
Starten Sie eine vollständige Durchforstung der Inhaltsquelle. Weitere Informationen finden Sie unter Starten, Unterbrechen, Fortsetzen oder Anhalten einer Durchforstung (SharePoint Server 2010) auf der TechNet-Website.