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
|
Visual Basic Quellcode
|
1
2
3
4
5
6
7
8
9
10
|
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
|
Visual Basic Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
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)
|
Visual Basic Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
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.).