| |

ADO.NET / DatenbankenMit ODBCDataReader ein Blob Feld auslesen | |  | Autor: Sj | Datum: 04.08.08 08:47 |
| Hallo alle zusammen,
beim folgeden Problem versuche ich mit dem ODBCDataReader ein Blob-Feld aus einer Sybase SQL Anywhere (5) Datenbank auszulesen und als Datei zu speichern. Das folgedende Beispiel liefert mir immer 0-Byte Dateien.
Ich habe schon versuche die Dateien als Strings auszulesen (was auch funktioniert), diese zurückzuwandeln zu Bytes und abzuspeichern. Das ist zwar sehr aufwändig und langsam, funktioniert aber leider nur bis ca 29kB Dateien. Danach werden die Dateien einfach abgeschnitten.
Dim pubsConn As OdbcConnection = New OdbcConnection( _
"DSN=datenbank;Uid=user;Pwd=pass")
Dim cmd As New OdbcCommand
Dim fs As FileStream
Dim bw As BinaryWriter
Dim bufferSize As Integer = 50
Dim outbyte(bufferSize - 1) As Byte
Dim retval As Long
Dim startIndex As Long = 0
Dim ResultCount As Integer = 0
pubsConn.Open()
cmd.CommandText = arg
cmd.Connection = pubsConn
cmd.CommandType = CommandType.Text
Dim myReader As OdbcDataReader = cmd.ExecuteReader( _
CommandBehavior.SequentialAccess)
Do While myReader.Read()
fs = New FileStream(DocumentsFolder & DocumentID & "." & LTrim(Str( _
ResultCount)) & "." & Filename & ".pdf", FileMode.OpenOrCreate, _
FileAccess.Write)
bw = New BinaryWriter(fs)
startIndex = 0
retval = myReader.GetBytes(0, startIndex, outbyte, 0, bufferSize)
Do While retval = bufferSize
bw.Write(outbyte)
bw.Flush()
startIndex += bufferSize
retval = myReader.GetBytes(0, startIndex, outbyte, 0, _
bufferSize)
Loop
If retval > 1 Then
bw.Write(outbyte, 0, retval - 1)
bw.Flush()
End If
bw.Close()
fs.Close()
ResultCount += 1
Loop
myReader.Close()
pubsConn.Dispose() Beim Debuggen fällt auf dass die Schleife korrekt durchläuft und auch eine Datei erzeugt wird, die ich auslesen kann - die Zeile retval = myReader.GetBytes(0, startIndex, outbyte, 0, bufferSize) muss im Einzelschritt durchlaufen werden, danach kann man laufen lassen, bis die Schleife durch ist. Lasse ich ohne Haltepunkt laufen, bekomm ich wieder 0-Byte Dateien... Hat einer eine Idee dazu? |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevZIP40 Pro DLL 
Zippen und Unzippen wie die Profis!
Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|