# Datei (Blob) mit verknüpfter Software öffnen?



## Taste (6. Aug 2006)

Hallo,

jetzt muss ich leider schon wieder etwas fragen, aber meine Diplomarbeit drängt, und ich kämpfe mit so einem kleinen Zugriffsproblem.

Ich habe Pdf-Dateien als BLOB in einer Derby-DB gespeichert. Diese lese ich nun so aus:

```
//	 Benötige Ressourcen für eine SQL-Anweisung bereitstellen
	statement = connection.createStatement();
	// Select-Anweisung ausführen
	resultSet = statement.executeQuery("SELECT DISTINCT Loesungen.Inhalt_Deutsch, Loesungen.Inhalt_Englisch FROM "
			+ "Loesungen, Ursachen, Verknuepfung_Ursachen_Loesungen "
			+ "WHERE ...
	// Alle Datensätze speichern
	while (resultSet.next()) {
		Data lst = new Data();
		lst.setinhaltDeutsch(resultSet.getBlob(1));
		lst.setinhaltEnglisch(resultSet.getBlob(2));
		listeL.add(lst);
	}
```
Jetzt habe ich ein Verständnisproblem. Was genau ist jetzt in listeL(x) drin? Der BLOB, oder? Wie schaffe ich es jetzt , dass diese Datei  z.B. mit

```
public void showPDF(String pfad) {
		try {
			if ((System.getProperty("os.name").equals("Windows NT"))
					|| (System.getProperty("os.name").equals("Windows XP"))
					|| (System.getProperty("os.name").equals("Windows 2000"))) {
				Process p = Runtime.getRuntime().exec(
						"cmd.exe /c start " + pfad);
				p.waitFor();
			}
		} catch (Exception err) {
			err.printStackTrace();
		}
	}
```
anzuzeigen? Hierzu bräuchte ich ja einen String, um die Datei zu öffnen. Nun liegt mir die Datei aber als Blob vor. 

Habt Ihr mein Problem / meine Frage verstanden? Kann mir jemand helfen?

Gruß Taste


----------



## foobar (6. Aug 2006)

> Ich habe Pdf-Dateien als BLOB in einer Derby-DB gespeichert. Diese lese ich nun so aus:


Warum speicherst du nicht einfach den Dateinamen der PDF-Datei in der DB? Dann kannst du die Datei später auch viel einfach anzeigen lassen und die DB wird nicht so aufgebläht.


----------



## Taste (6. Aug 2006)

Du hast Recht, das wäre eine Möglichkeit, aber es werden nicht sonderlich viele Dateien werden, und es ist "aufgeräumter", wenn man nicht noch lose Dateien neben der DB hat. 

Hast Du einen Tipp, wie ich die Daten aus den BLOBs anzeigen kann?

Gruß Taste


----------



## foobar (6. Aug 2006)

> und es ist "aufgeräumter", wenn man nicht noch lose Dateien neben der DB hat.


Naja, immer noch besser als BLOBS.

Du mußt den Blob wieder in eine Datei serialisieren und dann den Pfad der Datei an Runtime übergeben. Guck dir mal die genzen Outputstreams und Printwriter an, da ist bestimmt was passendes dabei.


----------



## Guest (17. Jan 2007)

Taste hat gesagt.:
			
		

> Hallo,
> 
> jetzt muss ich leider schon wieder etwas fragen, aber meine Diplomarbeit drängt, und ich kämpfe mit so einem kleinen Zugriffsproblem.
> 
> ...


----------

