2013-01-16 20 views
5

Próbuję umieścić zawartość pliku .pdf w kolumnie typu varbinary(max).Jak umieścić zawartość pliku .pdf w kolumnie varbinary (max)

Jak mogę to osiągnąć? Grałem z convert i cast, ale wydaje się, że nie działa.

Myślałem o zdefiniowaniu var1 varbinary(max) i ustawieniu go na zawartość pliku, ale to również się nie udało.

declare @var1 varbinary(max) 
set @var1 'c:\xxx\inp.pdf' ??? 

, a następnie:

insert into t1(xdata) values (@var1); 

Albo można użyć wkładki z pliku, a nie na pewno jest to możliwe bez luzem?

wdzięczni za pomoc, nie można korzystać z zawartości .pdf pliku w pojedynczych qoutes albo, traktuje go jako varchar. - (

Dzięki wszystkim za pomoc Dai

+1

Umieszczaj technologie w tagach pytań, a nie w tytule. –

+0

Istnieją sposoby uzyskiwania dostępu do pliku, jeśli ten plik jest dostępny dla konta, z którego uruchamiany jest program SQL Server, z serwera. Czy to jest tutaj, czy jest to plik "C: \ xxx \ inp.pdf" na twoim lokalnym komputerze? –

Odpowiedz

4

Spróbuj tego:

DECLARE @pdf VARBINARY(MAX) 

SELECT @pdf = BulkColumn 
FROM OPENROWSET(BULK N'C:\Users\......\YourFile.pdf', SINGLE_BLOB) AS Document; 

SELECT @pdf, DATALENGTH(@pdf) 

INSERT INTO dbo.YourTable(PDFContents) VALUES(@Pdf) 
GO 

lub bezpośrednio:

INSERT INTO dbo.t1(xdata) 
    SELECT BulkColumn 
    FROM OPENROWSET(BULK N'C:\Users\......\YourFile.pdf', SINGLE_BLOB) 

Więcej szczegółów na temat funkcji OPENROWSET można znaleźć na MSDN's SQL Server Books Online jak zawsze.

+0

W Thansk wszystko, plik jest na moim lokalnym c: i działało dobrze. Jakoś nie mogę dopasować wartości z przykładowego pliku, ale jest to inny problem, jaki jest dobry sposób na przetestowanie tej konwersji? Próbowałem wykonać odlew odwrotny (binC1 jako varchar (max)) i zatrzymał się on na pierwszej wartości NUL (jak widzę to w notatniku ++), więc nie jestem w stanie otworzyć odwróconego pliku jako pdf. Ta kolumna będzie wyświetlana w przeglądarce www jako dokument w formacie pdf na końcu. – user1982778

Powiązane problemy