Moin,
ich versuche zurzeit ein Exceldokument in die DB zu speichern. In der DB hat es die Tabelle doks mit den Spalten dok_id(PK) und dok_image(image, null).
Als erstes habe ich mit
SELECT BulkColumn
FROM OPENROWSET( BULK 'C:\test.xls',
SINGLE_BLOB) as ExternalFile
versucht es in die DB zu schreiben. Lokal hat das ganze funktioniert, aber der updater bei den Kunden meldet, er hätte keine Berechtigung für BULK. Jetzt kann ich natürlich bei unseren ganzen Kunden nicht von Hand die Berechtigung für BULK ändern/den Updater Benutzer anpassen. Der Aufwand wäre zu gross.
Also dachte ich mir: Wieso nehme ich nicht direkt die aus BULK generierten Binärdaten und schreibe die mit INSERT in die DB. Das Resultat dabei war, dass zwar Daten in das Excel geschrieben wurden, aber diese recht kryptisch aussehen. Hier ein Beispiel vom Insert:
insert into dok(dok_id, dok_image)values('8CDA1EFB-733A-425E-90A6-BF492937B740',0xD0CF11E0A1B11AE1000000000000000000000000000000003E000300FEFF09000600000000000..)
(Der binäre String ist über 40k Zeichen gross)
Das Exceldokument hat folgendes Aussehen danach:
ñ
®à0ïð``0ïÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßÿÿòP0@P`p€ °ÀÐàð 0@P`p€ °ÀÐàð 0@ïÿÿóÐ0€@ °ÀÐàð 0ïÿÿóP`p€ °Ààð€ @pP`p` °ÀÐàð 0@P€ïÿÿÿïÿÿõïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõ ðð@Pà@ `Pÿÿÿÿÿÿÿð € `
À=ûçRüà°<ì–Ìàp0pð ° ðð° pÿÿÿÿÿÿÿð @ð` ð ð P0@ð0P P0 ŸK
†Œà?«
......
Wo liegt das Problem? Ist der binäre String zu gross? Ist es auf diese Weise gar nicht möglich? Gibt es eine alternative Möglichkeit das Problem zu lösen?
ich versuche zurzeit ein Exceldokument in die DB zu speichern. In der DB hat es die Tabelle doks mit den Spalten dok_id(PK) und dok_image(image, null).
Als erstes habe ich mit
SELECT BulkColumn
FROM OPENROWSET( BULK 'C:\test.xls',
SINGLE_BLOB) as ExternalFile
versucht es in die DB zu schreiben. Lokal hat das ganze funktioniert, aber der updater bei den Kunden meldet, er hätte keine Berechtigung für BULK. Jetzt kann ich natürlich bei unseren ganzen Kunden nicht von Hand die Berechtigung für BULK ändern/den Updater Benutzer anpassen. Der Aufwand wäre zu gross.
Also dachte ich mir: Wieso nehme ich nicht direkt die aus BULK generierten Binärdaten und schreibe die mit INSERT in die DB. Das Resultat dabei war, dass zwar Daten in das Excel geschrieben wurden, aber diese recht kryptisch aussehen. Hier ein Beispiel vom Insert:
insert into dok(dok_id, dok_image)values('8CDA1EFB-733A-425E-90A6-BF492937B740',0xD0CF11E0A1B11AE1000000000000000000000000000000003E000300FEFF09000600000000000..)
(Der binäre String ist über 40k Zeichen gross)
Das Exceldokument hat folgendes Aussehen danach:
ñ
®à0ïð``0ïÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßÿÿòP0@P`p€ °ÀÐàð 0@P`p€ °ÀÐàð 0@ïÿÿóÐ0€@ °ÀÐàð 0ïÿÿóP`p€ °Ààð€ @pP`p` °ÀÐàð 0@P€ïÿÿÿïÿÿõïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõ ðð@Pà@ `Pÿÿÿÿÿÿÿð € `
À=ûçRüà°<ì–Ìàp0pð ° ðð° pÿÿÿÿÿÿÿð @ð` ð ð P0@ð0P P0 ŸK
†Œà?«
......
Wo liegt das Problem? Ist der binäre String zu gross? Ist es auf diese Weise gar nicht möglich? Gibt es eine alternative Möglichkeit das Problem zu lösen?