Sono al primo approccio a questa problematica, sono 2 giorni che navigo e
consulto codici ma non ne vengo a capo.Tutti gli esempi sono in c# ma non
riesco a capire.Ho trovato 1 paio di esempi ma mi vanno in errore
(outofmemory).
E tra l'altro non ho capito bene nemmeno FileStream e...un po tutto!
Avete qualche info o link con codice in vb.net?
Mi è tutto molto oscuro purtoppo!!!
grazie!
ciao Fabio
"fabio....@parcol.com" ha scritto:
Sub Main()
Process.Start("pippo.txt")
Process.Start("pippo.pdf")
End Sub
Questo codice apre il file pippo.txt usando notepad e pippo.pdf usando
acrobat reader.
Ciao
Alex
"fabio....@parcol.com" <fabiocolom...@discussions.microsoft.com>
ha scritto nel messaggio
news:3BAA9BE0-1C8E-4198...@microsoft.com...
Dim cn As New SqlConnection(strCn)
Dim cmd As New SqlCommand("SELECT immagine FROM table1", cn)
Dim da As New SqlDataAdapter(cmd)
Dim ds As New DataSet()
da.Fill(ds, "table1")
Dim c As Integer = ds.Tables("table1").Rows.Count
If c > 0 Then
Dim bytBLOBData() As Byte = _
ds.Tables("table1").Rows(c - 1)("immagine")
Dim stmBLOBData As New MemoryStream(bytBLOBData)
A questo punto cosa dovrei scrivere?
ho provato proccess.start(stmBLOBData) ma non funziona!
Mi sembra d'aver capito che per leggere il campo image del campo della
tabella devo usare quanto scritto sopra (sinceramente non ho capito molto ma
diciamo che funziona;process.start con 1 file e la sua path funziona; ma nel
mio caso che leggo il file pdf oxls o doc dal campo di 1 db come dovrei
fare???)
PS: son tutte cse nuove x me....abbi un po di pazienza!
GRAZIE!
Fabio
"Alessandro Andreose'" ha scritto:
Senza creare il MemoryStream potresti provare a salvare l'array di byte in
un file su disco nella forma "nome.estensione" e poi usare Process.Start sul
file.
Una cosa del genere (non l'ho provata, spero funzioni :))
File.Delete("pippo.jpg")
Dim fs As New FileStream("pippo.jpg", FileMode.CreateNew, FileAccess.Write,
FileShare.None)
fs.Write(bytBLOBData, 0, bytBLOBData.Length)
Process.Start("pippo.jpg")
>
> PS: son tutte cse nuove x me....abbi un po di pazienza!
> GRAZIE!
Prego
Ciao Alex
You wrote :
> Grazie!
> Però non riesco ancora a visualizzare il file e cioè il mio codice d'esempio
> è il seguente :
>
> Dim cn As New SqlConnection(strCn)
> Dim cmd As New SqlCommand("SELECT immagine FROM table1", cn)
> Dim da As New SqlDataAdapter(cmd)
> Dim ds As New DataSet()
> da.Fill(ds, "table1")
> Dim c As Integer = ds.Tables("table1").Rows.Count
> If c > 0 Then
> Dim bytBLOBData() As Byte = _
> ds.Tables("table1").Rows(c - 1)("immagine")
> Dim stmBLOBData As New MemoryStream(bytBLOBData)
>
> A questo punto cosa dovrei scrivere?
> ho provato proccess.start(stmBLOBData) ma non funziona!
>
è uno dei grossi limiti dell'avere i file su db, ci sono pro e contro
in questa soluzione.
Devi necessariamente appoggiarti ad un file temporaneo. Il problema è
che non è detto che tu possa poi cancellarlo.
Un caso è quello di Acrobat, una volta laciato acrobat quando l'utente
chiude il dcoumento Acrobat non si chiude, per velocizzare la prossima
esecuzione... (pietoso) quindi tu non saprai mai che l'esecuzione è
terminata e il tuo file temporaneo non potrà essere cancellato
Quindi al posto di un memory stream usa un file stream, scrivi su disco
e poi con process.start lanci quel file
HTH
--
Mauro Servienti
Microsoft MVP - Visual C# / MCP
--------------------------------------------------
21 Febbraio - Microsoft, Segrate (MI)
Evento: Visual Studio for DB Pro
http://www.microsoft.com/italy/msdn/risorsemsdn/eventi/team_ws.mspx
"Alessandro Andreose'" ha scritto:
> "fabio....@parcol.com" <fabiocolom...@discussions.microsoft.com>
> ha scritto nel messaggio
> news:32EF2A8E-6DA0-4D01...@microsoft.com...
> > Grazie!
> > Però non riesco ancora a visualizzare il file e cioè il mio codice
> > d'esempio
> > è il seguente :
prego
> ciao
> Fabio
ciao