Hallo
seit einiger Zeit verwalte ich meine Daten in Datenbanken. Bisher habe ich in der Datenbank aber nur einen Datenlink zu der entsprechenden Datenquelle gespeichert. Da die ganze Geschichte nun sehr umfangreich wird, habe ich mich dazu entschlossen, die Datenquelle nicht mehr zu verlinken, sondern sie binär in die Datenbank aufzunehmen. Diese Vorgehensweise schafft sicherlich eine bessere Übersicht auf der Festplatte und erleichtert auch die Datensicherung. Es handelt sich um unterschiedliche Dateiformate (excel, word, pdf, jpg, mp3). Nun bin ich auf der Suche nach einheitlichen Funktionen/Prozeduren die dieses bewerkstelligen können. Bilddateien kann ich umwandeln und auch binär speichern. Hänge nun an der Wiederherstellung fest.
Bild umwandeln
Bild in Datenbank aufnehmen
Datensatz lesen / Bilddatei auf der Festplatte wiederherstellen (hier komme ich nicht weiter)
Schön wäre es eine Vorgehensweise für alle Dateiarten zu haben (Excel, Word usw.).
seit einiger Zeit verwalte ich meine Daten in Datenbanken. Bisher habe ich in der Datenbank aber nur einen Datenlink zu der entsprechenden Datenquelle gespeichert. Da die ganze Geschichte nun sehr umfangreich wird, habe ich mich dazu entschlossen, die Datenquelle nicht mehr zu verlinken, sondern sie binär in die Datenbank aufzunehmen. Diese Vorgehensweise schafft sicherlich eine bessere Übersicht auf der Festplatte und erleichtert auch die Datensicherung. Es handelt sich um unterschiedliche Dateiformate (excel, word, pdf, jpg, mp3). Nun bin ich auf der Suche nach einheitlichen Funktionen/Prozeduren die dieses bewerkstelligen können. Bilddateien kann ich umwandeln und auch binär speichern. Hänge nun an der Wiederherstellung fest.
Bild umwandeln
VB.NET-Quellcode
- Public Function bildanzeigen(ByVal strfile As String) As Image
- Dim fs As FileStream = New FileStream(strfile, FileMode.Open)
- Try
- myfilelength = fs.LengthReDim Puffer(myfilelength - 1)
- fs.Read(Puffer, 0, myfilelength)Dim b As Bitmap = New Bitmap(New MemoryStream(Puffer))
- Return bCatch ex As Exception
- Finally
- fs.Close()
- End Try
- End Function
Bild in Datenbank aufnehmen
VB.NET-Quellcode
- Public Function bildspeichern(ByVal ID As Int32) As Image
- cmd.CommandText = "INSERT INTO Test" & _" (FN1, FN2, FN3, FN4, FN5)" & _" VALUES (@ai,@nu,@dn,@length,@bild)"
- Try
- Dim insertcmd As New OleDbCommand(cmd.CommandText, con)
- insertcmd.Parameters.Add( _
- "@ai", OleDbType.Char).Value = "A"
- insertcmd.Parameters.Add( _
- "@nu", OleDbType.Char).Value = "100"
- insertcmd.Parameters.Add( _"@dn", OleDbType.Char).Value = Bilddatei
- insertcmd.Parameters.Add( _"@length", OleDbType.Integer).Value = Puffer.Length
- insertcmd.Parameters.Add( _"@bild", OleDbType.Binary).Value = Puffer
- con.Open()
- insertcmd.ExecuteNonQuery()
- Catch ex As Exception
- MessageBox.Show(ex.Message.ToString)
- Finally
- con.Close()
- End Try
- End Function
Datensatz lesen / Bilddatei auf der Festplatte wiederherstellen (hier komme ich nicht weiter)
VB.NET-Quellcode
- Public Function Bild_Wiederherstellen(ByVal AIndex As String, ByVal BIndex As String, ByVal DTab As String) As Image
- Try
- If BIndex = "" Then cmd.CommandText = "Select * from " & DTab & " where FN1 like '" & AIndex & "'"If BIndex <> "" Then cmd.CommandText = "Select * from " & DTab & " where FN1 like '" & AIndex & "'" _
- & "and FN2 like '" & BIndex & "'"
- con.Close()
- con.Open()
- reader = cmd.ExecuteReaderDo While reader.Read
- DLES(1) = reader("FN1")
- DLES(2) = reader("FN2")
- DLES(3) = reader("FN3")
- Lang = reader("FN4")
- Repuffer = reader("FN5")
- Loop
- con.Close()Dim Ausgabedatei As String = DLES(3)
- Catch ex As Exception
- MsgBox(ex.Message)
- End Try
- End Function
Schön wäre es eine Vorgehensweise für alle Dateiarten zu haben (Excel, Word usw.).
Gruß Markus