ukulele-7
Goto Top

PowerBI Desktop Datei aus SQL-Tabelle anzeigen bzw. ausführen

Mahlzeit,

ich habe ein Szenario mit einer Tabelle in SQL mit einer Spalte, derzeit vom Typ IMAGE. In der Spalte liegt eine kleine Datei die eine ID enthält. Auf dem Dateisystem gespeichert kann ich damit Dokumente in meinem DMS aufrufen. Die Tabelle erstelle ich selbst, kann sie also beliebig gestalten.

Ich möchte im PowerBI Desktop-Client zu den Einträgen aus dieser Tabelle die Datei mit "anzeigen", am liebsten ausführbar/klickbar, zur Not zum Speichern.

Meine Vermutung ist, das geht gar nicht. Ich habe eine Anleitung für das darstellen von Bildern gefunden:
https://www.c-sharpcorner.com/blogs/load-image-file-in-power-bi-from-sql ...
Aber es handelt sich ja um nichts, was PowerBI kennen oder anzeigen könnte, sondern einfach um eine Datei unbekannten Typs (für Power BI, nicht für Windows), die ich in SQL aus einer ID und ein bisschen Text erzeuge. PowerBI zeigt die Spalte standardmäßig als BINARY an und kann den Inhalt auch lesen. Der Text interessiert den Anwender aber natürlich nicht, der will das anklicken können.

Leider kann ich nicht mit einem Hyperlink oder sowas arbeiten. Habt ihr eine Idee?

Content-ID: 92428432713

Url: https://administrator.de/contentid/92428432713

Ausgedruckt am: 25.11.2024 um 02:11 Uhr

11078840001
11078840001 07.03.2024 aktualisiert um 12:14:42 Uhr
Goto Top
ukulele-7
ukulele-7 07.03.2024 um 12:26:42 Uhr
Goto Top

Da geht es aber auch um Bilder. In meinem Fall ist der Datentyp in SQL zwar (derzeit) IMAGE, es handelt sich aber um VARBINARY-Daten. Wenn ich die auf das Dateisystem speichere und eine Dateiendung dran pappe, kann ich das über eine Anwendung öffnen. Es handelt sich aber nicht um Bilder!

Ich habe IMAGE in SQL gewählt weil genau das, was ich da vorhabe, so in meinem CRM tatsächlich geht. Da kann ich Dateien aus einer SQL Tabelle anzeigen (Datei Icon kommt glaube ich von Windows) und per Klick ausführen. Ich nehme derzeit nur an, das das in PowerBI nicht möglich ist.
11078840001
Lösung 11078840001 07.03.2024 aktualisiert um 12:50:54 Uhr
Goto Top
Das muss ja nicht zwingend ein Bild sein, Data-URLs können auch andere Dateien beinhalten, alles was binary ist wird ja eh zu base64, du musst du nur den MIME-Type definieren, z.B. in einer extra Spalte der DB speichern. Dann mit der Data-URL im "href" einen Link bereitstellen.
<a href="data:application/json;base64,eyJvYmoiOiJ0ZXN0In0=" download="test.json">Open JSON File</a>  

Oder den Binary Blob bei Klick per Skript in temporären Ordner speichern und ausführen.
godlie
godlie 07.03.2024 um 12:56:57 Uhr
Goto Top
Hallo,

ein guter Rat, Bilder oder Base64Strings von Bildern, haben in einer Datenbank nichts verloren, das Kostet sinnlos Speicher, RAM nicht HDD / SDD ...

grüße
ukulele-7
Lösung ukulele-7 07.03.2024 um 16:02:11 Uhr
Goto Top
Zitat von @11078840001:

Das muss ja nicht zwingend ein Bild sein, Data-URLs können auch andere Dateien beinhalten, alles was binary ist wird ja eh zu base64, du musst du nur den MIME-Type definieren, z.B. in einer extra Spalte der DB speichern. Dann mit der Data-URL im "href" einen Link bereitstellen.
Okay ich bin nicht sicher ob ich das schon verstehe aber werde ich die Tage mal testen.
<a href="data:application/json;base64,eyJvYmoiOiJ0ZXN0In0=" download="test.json">Open JSON File</a>  
Ist dann der Dateiinhalt Bestandteil der URL? Also ist in diesem Fall eyJvYmoiOiJ0ZXN0In0= der Dateiinhalt?

Zitat von @godlie:
ein guter Rat, Bilder oder Base64Strings von Bildern, haben in einer Datenbank nichts verloren, das Kostet sinnlos Speicher, RAM nicht HDD / SDD ...
Das ist wohl eher Fallbezogen richtig oder falsch.
(10MB für 34k Datensätze)
11078840001
Lösung 11078840001 07.03.2024 aktualisiert um 16:06:14 Uhr
Goto Top
Zitat von @ukulele-7:
Ist dann der Dateiinhalt Bestandteil der URL? Also ist in diesem Fall eyJvYmoiOiJ0ZXN0In0= der Dateiinhalt?
Korrekt, in dem Fall eine base64 enkodierte json Datei, klappt aber genauso auch mit Word, PDF, .... Nur der Mimetype sollte passend zum Dateityp angegeben werden.
ukulele-7
ukulele-7 08.03.2024 um 09:12:14 Uhr
Goto Top
Die Dateiendung ist .ecd, ist ein propritärer Link von ELO. Ist mit dem Texteditor lesbar, also vermutlich wie eine Textfile?
11078840001
Lösung 11078840001 08.03.2024 aktualisiert um 09:34:17 Uhr
Goto Top
Zitat von @ukulele-7:

Die Dateiendung ist .ecd, ist ein propritärer Link von ELO. Ist mit dem Texteditor lesbar, also vermutlich wie eine Textfile?
Für unbekannte nimmst du application/octet-stream nicht das da irgendein Browser auf die Idee kommt das File als Textfile im Browser statt der zugeordneten Anwendung anzuzeigen/zu speichern.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_ty ...
ukulele-7
ukulele-7 08.03.2024 um 09:52:33 Uhr
Goto Top
Super vielen Dank, das werde ich testen und dann berichten.
ukulele-7
Lösung ukulele-7 24.04.2024 um 10:01:49 Uhr
Goto Top
Ich hab den String (vermutlich korrekt) zusammen gebaut und mein Kollege hat eine Weile damit expirimentiert, leider scheint es nicht zu gehen.

ChatGPT meint dazu:
Leider unterstützt Power BI keine Data-URLs, also URLs, die Daten direkt enthalten, wie die von Ihnen erwähnte Art (data:application/octet-stream;base64,...). Die Gründe dafür sind sowohl Sicherheitsbedenken als auch Einschränkungen hinsichtlich der Interpretation von Base64-Daten in einer Benutzeroberfläche.

Schade eigentlich.