Za pomocą opcji BINARY BASE64
Jeśli określono opcję BASE64 BINARNE w kwerendzie, dane binarne jest zwracana w base64, format kodowania.Domyślnie Jeżeli nie określono opcji BINARY BASE64, tryb AUTO obsługuje kodowanie adresów URL danych binarnych.Oznacza to, że zamiast danych binarnych, zwracane jest odwołanie do względny adres URL do wirtualnego katalogu głównego z bazy danych, w której wykonano kwerendę.To odwołanie umożliwia dostęp przy użyciu kwerendy dbobject SQLXML ISAPI rzeczywiste dane binarne w następnych operacjach.Kwerenda musi dostarczyć wystarczających informacji, takich jak klucz podstawowy kolumny do identyfikowania obrazu.
Określając kwerendy, jeśli używany jest alias do kolumna binarną widoku, alias jest zwracany w adresie URL kodowania danych binarnych.W następnych operacjach alias jest bez znaczenia, a kodowanie adresów URL nie może być używane do pobierania obrazu.Dlatego nie należy używać aliasów podczas badania przy użyciu trybu automatycznego XML dla widoku.
Na przykład w wybierz kwerendę rzutowanie dowolnej kolumna do duży obiekt binarny (BLOB) ułatwia tymczasowe podmiotu, traci on nazwy skojarzonej tabela i nazwę kolumna.Powoduje automatyczny tryb kwerend generuje błąd, ponieważ nie wiedzieć gdzie umieścić tę wartość w hierarchii XML.Na przykład:
CREATE TABLE MyTable (Col1 int PRIMARY KEY, Col2 binary)
INSERT INTO MyTable VALUES (1, 0x7)
Ta kwerenda generuje błąd, z powodu rzutowania do duży obiekt binarny (BLOB):
SELECT Col1,
CAST(Col2 as image) as Col2
FROM MyTable
FOR XML AUTO
Roztwór jest dodanie opcji BINARY BASE64 XML dla klauzula.Jeśli usuniesz odlewu kwerendy daje wyniki, zgodnie z oczekiwaniami:
SELECT Col1,
Col2
FROM MyTable
FOR XML AUTO
Jest to wynikiem:
<MyTable Col1="1" Col2="dbobject/MyTable[@Col1='1']/@Col2" />