binär gespeicherte Datei lesen

Hallo liebe/-r Experte/-in,
ich möchte eine binär gespeicherte Datei lesbar machen; wie muss ich verfahren?

Das funktioniert nicht:
SELECT CAST(SPALTE_B AS VARCHAR(250)) AS MEINTEXT
FROM Tabelle_A
WHERE (SPALTE_A = ‚meine.cfg‘)

Ich erhalte damit folgenden Hinweis:
„Die explizite Konvertierung des image-Datentyps in VARCHAR ist nicht zulässig.“

Vielen Dank für Hilfe!
Ralf Schneider

Wenn ich das richtig verstehe, ist in einem Feld i neiner Tabelle ein ‚BLOB‘, also Binary Large OBject gespeichert.

Das Verfahren ist dann so, daß das BLOB in eine Temporärdatei gespeichert werden muss.
Im zweiten Schritt lässt sich dann die Datei lesen und interpretieren.

Sofern es sich um eine Textdatei handelt, könnte man zwar auch direkt die Daten als Text speichern, aber so scheint es ja nicht zu sein…
Gruß
Peter
[email protected] oder auch per Telefon 07433 9975211

Hallo Peter,
erstmal vielen Dank für Deine schnelle Reaktion.

in der besagten Spalte ist eine Textdatei binär vom Datentyp „image“ gespeichert. Ich benötige eine Möglichkeit wie ich diesen Text in Klartext lesen kann.

Wie gesagt funktioniert folgendes nicht, nur den Hinweis: „Die explizite Konvertierung des image-Datentyps in VARCHAR ist nicht zulässig.“
SELECT CAST(SPALTE_B AS VARCHAR(250)) AS MEINTEXT
FROM Tabelle_A
WHERE (SPALTE_A = ‚meine.cfg‘)

Vielen Dank
Ralf

Hallo Ralf,

also, hier verschweigst du leider wie die Tabelle_A aufgebaut ist!

Von welchem Datentyp ist denn die SPALTE_B in der Tabelle?

Bitte erkläre mir doch einmal was du da richtig machen möchtest?

Möchtest du binäre Dateien (Images, Exe Dateien, Belibige Dateien) in eine Tabelle speichern und wieder abrufen?

Ich verstehe nicht warum du die Spalte_B explizit in eine VARCHAR(250) wandelst!

Weiterhin wäre es sehr hilfreich wenn du mir sagen könntest ob due mit Access, SQL-Server 6.5, 7, 2000, 2005, 2008, Oracle oder MySQL arbeitest?

Dann interessiert mich ob du das ganz in einem VB6 Projekt oder in einer .NET Anwendung benutzen möchtest.

Als ein bissel musst du mir schon erklären, damit ich dir helfen kann! :smile:

So ich freue mich auf eine Antwort von Dir!

MfG.:

Sascha D. Halbach

Hallo Sascha,
vielen Dank für Deine Hilfe! Hier die Eckdaten:
Ich habe eine Tabelle in einer MS SQL Server 2005 DB. Diese Tabelle hat 2 Spalten:
PATH (VARCHAR 260)
FILECONT (image)

In PATH steht der Pfad und der Name der Konfigurationsdatei, z. B.: „admin\meinekonfiguration.cfg“
In FILECONT ist der Inhalt der Datei „meinekonfiguration.cfg“ binär vom Datentyp image gespeichert.

Ich möchte mir via z. B. SQL den Inhalt der Datei in Klartext anzeigen bzw. ausgeben lassen.
Ich habe nach langer Recherche folgendes Statement gefunden: Klappt aber wie gesagt nicht.
SELECT CAST(FILECONT AS VARCHAR(250)) AS MEINTEXT
FROM TBL_CONFIG
WHERE (PATH = ‚meinekonfiguration.cfg‘)

Viele Grüße
Ralf

Hallo,

also, sind das alles Textdateien die du da speichern möchtest?

Wenn Ja, ist die Lösung super leicht!

Die Tabelle änderst du wie folgt:
Path(VARCHAR(MAX))
Es gibt Pfade die länger als nur 260 Zeichen sind!
FILECONT (VARCHAR(MAX))
Hier passen Texte bis 4MB rein!

Und der Select ist dann ganz einfach:
SELECT *
FROM TBL_CONFIG
WHERE PATH = ‚meinekonfiguration.cfg‘

Das klapp aber nur wenn das alles Textdateien sind!

Bei fragen kannst du mich unter 0208 9400 240 erreichen, kann kann ich ebenfalls rückfragen!

Hallo Ralf,

Man muss über Funktionen auf den Inhalt zugreifen. Die einfachste Möglichkeit ist die Verwendung von SubString:

SELECT substring(SPALTE_B, 1, 250) AS MEINTEXT
FROM Tabelle_A
WHERE SPALTE_A = ‚meine.cfg‘

Hallo Clemens, vielen Dank. Leider bekomme ich nicht den Klartext der binär gespeicherten Daten angezeigt. Ein Bekannter hat ein Programm geschrieben, mit dem ich die Daten zum Teil lesen kann. Die anderen Daten könnte ich nur über den Sourcecode der Applikation herausfinden. Auf den Sourcecode habe ich allerdings keinen Zugriff.
Dennoch vielen Dank für Deine Hilfe.
Gruß
Ralf