Pregunta de examen. (Mover fichero FSO a BD)

09/07/2008 - 12:08 por fpmweb | Informe spam
Hola,

El objetivo es recorrer los ficheros de un directorio i insertarlos en SQL
Server.
Lo tengo todo listo, lo que pasa es que no se como tengo que recuperar el
fichero para almacenarlo como tipo image en SQL Server.

Os muestro como lo hago:

<%
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(Server.Mappath("\"))
Set files = folder.Files

For Each file in Files

fiNom = file.Name
fiTamany = file.Size
fiTipus = file.Type

on error resume next
Set RS = Server.CreateObject("ADODB.RecordSet")
RS.Open "[924_Immobles].dbo.documentacio", Conex, 2, 2
rs.AddNew
rs("taula_id") = 5
rs("taula_indenti") = cstr(cint(taula_indenti))
rs("doc_data") = now
rs("doc_descrip") = "proves automàtiques"
rs("doc_nom") = fiNom
rs("doc_tamany") = fiTamany
rs("doc_dades").AppendChunk 'Como expreso el documento para que se inserte
??????????
rs("doc_tipus") = fiTipus
rs.Update

Next
%>

Lo que no hago es hacer el upload y guardarlo, sino que lo recupero de
directorio directamente y inserto.

¿Alguna idea?, ¿Alguna url?...

Muchas gracias.

Preguntas similare

Leer las respuestas

#1 Jhonny Vargas P.
09/07/2008 - 15:23 | Informe spam
Debes usar el AppendChunk
y para leer GetChunk

acá hay varios ejemplos:

http://support.microsoft.com/kb/194975

Saludos,
Jhonny Vargas P.




"fpmweb" escribió en el mensaje de
noticias:
Hola,

El objetivo es recorrer los ficheros de un directorio i insertarlos en SQL
Server.
Lo tengo todo listo, lo que pasa es que no se como tengo que recuperar el
fichero para almacenarlo como tipo image en SQL Server.

Os muestro como lo hago:

<%
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(Server.Mappath("\"))
Set files = folder.Files

For Each file in Files

fiNom = file.Name
fiTamany = file.Size
fiTipus = file.Type

on error resume next
Set RS = Server.CreateObject("ADODB.RecordSet")
RS.Open "[924_Immobles].dbo.documentacio", Conex, 2, 2
rs.AddNew
rs("taula_id") = 5
rs("taula_indenti") = cstr(cint(taula_indenti))
rs("doc_data") = now
rs("doc_descrip") = "proves automàtiques"
rs("doc_nom") = fiNom
rs("doc_tamany") = fiTamany
rs("doc_dades").AppendChunk 'Como expreso el documento para que se inserte
??????????
rs("doc_tipus") = fiTipus
rs.Update

Next
%>

Lo que no hago es hacer el upload y guardarlo, sino que lo recupero de
directorio directamente y inserto.

¿Alguna idea?, ¿Alguna url?...

Muchas gracias.

Respuesta Responder a este mensaje
#2 fpmweb
09/07/2008 - 17:48 | Informe spam
Hola,

utilizo precisamente el .AppendChunk pero no me retorna nada.
Creo que es porque al pasarle el valor del fichero en el AddNew no se lo
paso bien.

Por eso comentaba que como le indico el fichero binario para que guarde:

rs("doc_dades").AppendChunk 'Como expreso el documento para que se inserte
??????????

Saludos y muchas gracias.


"Jhonny Vargas P." wrote:

Debes usar el AppendChunk
y para leer GetChunk

acá hay varios ejemplos:

http://support.microsoft.com/kb/194975

Saludos,
Jhonny Vargas P.




"fpmweb" escribió en el mensaje de
noticias:
> Hola,
>
> El objetivo es recorrer los ficheros de un directorio i insertarlos en SQL
> Server.
> Lo tengo todo listo, lo que pasa es que no se como tengo que recuperar el
> fichero para almacenarlo como tipo image en SQL Server.
>
> Os muestro como lo hago:
>
> <%
> Set fso = CreateObject("Scripting.FileSystemObject")
> Set folder = fso.GetFolder(Server.Mappath("\"))
> Set files = folder.Files
>
> For Each file in Files
>
> fiNom = file.Name
> fiTamany = file.Size
> fiTipus = file.Type
>
> on error resume next
> Set RS = Server.CreateObject("ADODB.RecordSet")
> RS.Open "[924_Immobles].dbo.documentacio", Conex, 2, 2
> rs.AddNew
> rs("taula_id") = 5
> rs("taula_indenti") = cstr(cint(taula_indenti))
> rs("doc_data") = now
> rs("doc_descrip") = "proves automàtiques"
> rs("doc_nom") = fiNom
> rs("doc_tamany") = fiTamany
> rs("doc_dades").AppendChunk 'Como expreso el documento para que se inserte
> ??????????
> rs("doc_tipus") = fiTipus
> rs.Update
>
> Next
> %>
>
> Lo que no hago es hacer el upload y guardarlo, sino que lo recupero de
> directorio directamente y inserto.
>
> ¿Alguna idea?, ¿Alguna url?...
>
> Muchas gracias.
>

Respuesta Responder a este mensaje
#3 Jhonny Vargas P.
09/07/2008 - 18:07 | Informe spam
Debes pasar los BYTES de File

Mira esta función.

Function ReadBinaryFile(ByVal FileName As String)

Dim BinaryStream AS ADODB.Stream
Set BinaryStream = New ADODB.Stream

BinaryStream.Type = adTypeBinary

BinaryStream.Open

BinaryStream.LoadFromFile FileName

ReadBinaryFile = BinaryStream.Read
End Function


Luego lo que retorna lo asignas al AppendChunk


"fpmweb" escribió en el mensaje de
noticias:
Hola,

utilizo precisamente el .AppendChunk pero no me retorna nada.
Creo que es porque al pasarle el valor del fichero en el AddNew no se lo
paso bien.

Por eso comentaba que como le indico el fichero binario para que guarde:

rs("doc_dades").AppendChunk 'Como expreso el documento para que se inserte
??????????

Saludos y muchas gracias.


"Jhonny Vargas P." wrote:

Debes usar el AppendChunk
y para leer GetChunk

acá hay varios ejemplos:

http://support.microsoft.com/kb/194975

Saludos,
Jhonny Vargas P.




"fpmweb" escribió en el mensaje de
noticias:
> Hola,
>
> El objetivo es recorrer los ficheros de un directorio i insertarlos en
> SQL
> Server.
> Lo tengo todo listo, lo que pasa es que no se como tengo que recuperar
> el
> fichero para almacenarlo como tipo image en SQL Server.
>
> Os muestro como lo hago:
>
> <%
> Set fso = CreateObject("Scripting.FileSystemObject")
> Set folder = fso.GetFolder(Server.Mappath("\"))
> Set files = folder.Files
>
> For Each file in Files
>
> fiNom = file.Name
> fiTamany = file.Size
> fiTipus = file.Type
>
> on error resume next
> Set RS = Server.CreateObject("ADODB.RecordSet")
> RS.Open "[924_Immobles].dbo.documentacio", Conex, 2, 2
> rs.AddNew
> rs("taula_id") = 5
> rs("taula_indenti") = cstr(cint(taula_indenti))
> rs("doc_data") = now
> rs("doc_descrip") = "proves automàtiques"
> rs("doc_nom") = fiNom
> rs("doc_tamany") = fiTamany
> rs("doc_dades").AppendChunk 'Como expreso el documento para que se
> inserte
> ??????????
> rs("doc_tipus") = fiTipus
> rs.Update
>
> Next
> %>
>
> Lo que no hago es hacer el upload y guardarlo, sino que lo recupero de
> directorio directamente y inserto.
>
> ¿Alguna idea?, ¿Alguna url?...
>
> Muchas gracias.
>

Respuesta Responder a este mensaje
#4 fpmweb
10/07/2008 - 08:42 | Informe spam
Hola,

por fin a funcionado.
He transformado la funcion VB que has publicado a ASP (VBscript),
la muestro por si a alguien le interesa:

Function ReadBinaryFile(fitxer)
Dim BinaryStream
Set BinaryStream = Server.CreateObject("ADODB.Stream")
BinaryStream.Open
BinaryStream.Type = 1
BinaryStream.LoadFromFile(fitxer)
ReadBinaryFile = BinaryStream.Read
Set BinaryStream = nothing
End Function

Por otro lado, tambien tenia problema al descargar el fichero lo he
solucionado, me faltaba:

Response.AddHeader "Content-Disposition", "attachment; filename=" &
rs("doc_nom")
Response.AddHeader "Content-Length", rs("doc_tamany")
Response.CharSet = "UTF-8"
Response.ContentType = "application/force-download"
Response.BinaryWrite rs("doc_dades")

Y con esto todo Ok !!!

Gracias.

fpmWEb
MCP, MCAD

"Jhonny Vargas P." wrote:

Debes pasar los BYTES de File

Mira esta función.

Function ReadBinaryFile(ByVal FileName As String)

Dim BinaryStream AS ADODB.Stream
Set BinaryStream = New ADODB.Stream

BinaryStream.Type = adTypeBinary

BinaryStream.Open

BinaryStream.LoadFromFile FileName

ReadBinaryFile = BinaryStream.Read
End Function


Luego lo que retorna lo asignas al AppendChunk


"fpmweb" escribió en el mensaje de
noticias:
> Hola,
>
> utilizo precisamente el .AppendChunk pero no me retorna nada.
> Creo que es porque al pasarle el valor del fichero en el AddNew no se lo
> paso bien.
>
> Por eso comentaba que como le indico el fichero binario para que guarde:
>
> rs("doc_dades").AppendChunk 'Como expreso el documento para que se inserte
> ??????????
>
> Saludos y muchas gracias.
>
>
> "Jhonny Vargas P." wrote:
>
>> Debes usar el AppendChunk
>> y para leer GetChunk
>>
>> acá hay varios ejemplos:
>>
>> http://support.microsoft.com/kb/194975
>>
>> Saludos,
>> Jhonny Vargas P.
>>
>>
>>
>>
>> "fpmweb" escribió en el mensaje de
>> noticias:
>> > Hola,
>> >
>> > El objetivo es recorrer los ficheros de un directorio i insertarlos en
>> > SQL
>> > Server.
>> > Lo tengo todo listo, lo que pasa es que no se como tengo que recuperar
>> > el
>> > fichero para almacenarlo como tipo image en SQL Server.
>> >
>> > Os muestro como lo hago:
>> >
>> > <%
>> > Set fso = CreateObject("Scripting.FileSystemObject")
>> > Set folder = fso.GetFolder(Server.Mappath("\"))
>> > Set files = folder.Files
>> >
>> > For Each file in Files
>> >
>> > fiNom = file.Name
>> > fiTamany = file.Size
>> > fiTipus = file.Type
>> >
>> > on error resume next
>> > Set RS = Server.CreateObject("ADODB.RecordSet")
>> > RS.Open "[924_Immobles].dbo.documentacio", Conex, 2, 2
>> > rs.AddNew
>> > rs("taula_id") = 5
>> > rs("taula_indenti") = cstr(cint(taula_indenti))
>> > rs("doc_data") = now
>> > rs("doc_descrip") = "proves automàtiques"
>> > rs("doc_nom") = fiNom
>> > rs("doc_tamany") = fiTamany
>> > rs("doc_dades").AppendChunk 'Como expreso el documento para que se
>> > inserte
>> > ??????????
>> > rs("doc_tipus") = fiTipus
>> > rs.Update
>> >
>> > Next
>> > %>
>> >
>> > Lo que no hago es hacer el upload y guardarlo, sino que lo recupero de
>> > directorio directamente y inserto.
>> >
>> > ¿Alguna idea?, ¿Alguna url?...
>> >
>> > Muchas gracias.
>> >
>>

Respuesta Responder a este mensaje
#5 Jhonny Vargas P.
10/07/2008 - 14:29 | Informe spam
Excelente!


Saludos,
Jhonny Vargas P.

"fpmweb" escribió en el mensaje de
noticias:
Hola,

por fin a funcionado.
He transformado la funcion VB que has publicado a ASP (VBscript),
la muestro por si a alguien le interesa:

Function ReadBinaryFile(fitxer)
Dim BinaryStream
Set BinaryStream = Server.CreateObject("ADODB.Stream")
BinaryStream.Open
BinaryStream.Type = 1
BinaryStream.LoadFromFile(fitxer)
ReadBinaryFile = BinaryStream.Read
Set BinaryStream = nothing
End Function

Por otro lado, tambien tenia problema al descargar el fichero lo he
solucionado, me faltaba:

Response.AddHeader "Content-Disposition", "attachment; filename=" &
rs("doc_nom")
Response.AddHeader "Content-Length", rs("doc_tamany")
Response.CharSet = "UTF-8"
Response.ContentType = "application/force-download"
Response.BinaryWrite rs("doc_dades")

Y con esto todo Ok !!!

Gracias.

fpmWEb
MCP, MCAD

"Jhonny Vargas P." wrote:

Debes pasar los BYTES de File

Mira esta función.

Function ReadBinaryFile(ByVal FileName As String)

Dim BinaryStream AS ADODB.Stream
Set BinaryStream = New ADODB.Stream

BinaryStream.Type = adTypeBinary

BinaryStream.Open

BinaryStream.LoadFromFile FileName

ReadBinaryFile = BinaryStream.Read
End Function


Luego lo que retorna lo asignas al AppendChunk


"fpmweb" escribió en el mensaje de
noticias:
> Hola,
>
> utilizo precisamente el .AppendChunk pero no me retorna nada.
> Creo que es porque al pasarle el valor del fichero en el AddNew no se
> lo
> paso bien.
>
> Por eso comentaba que como le indico el fichero binario para que
> guarde:
>
> rs("doc_dades").AppendChunk 'Como expreso el documento para que se
> inserte
> ??????????
>
> Saludos y muchas gracias.
>
>
> "Jhonny Vargas P." wrote:
>
>> Debes usar el AppendChunk
>> y para leer GetChunk
>>
>> acá hay varios ejemplos:
>>
>> http://support.microsoft.com/kb/194975
>>
>> Saludos,
>> Jhonny Vargas P.
>>
>>
>>
>>
>> "fpmweb" escribió en el mensaje de
>> noticias:
>> > Hola,
>> >
>> > El objetivo es recorrer los ficheros de un directorio i insertarlos
>> > en
>> > SQL
>> > Server.
>> > Lo tengo todo listo, lo que pasa es que no se como tengo que
>> > recuperar
>> > el
>> > fichero para almacenarlo como tipo image en SQL Server.
>> >
>> > Os muestro como lo hago:
>> >
>> > <%
>> > Set fso = CreateObject("Scripting.FileSystemObject")
>> > Set folder = fso.GetFolder(Server.Mappath("\"))
>> > Set files = folder.Files
>> >
>> > For Each file in Files
>> >
>> > fiNom = file.Name
>> > fiTamany = file.Size
>> > fiTipus = file.Type
>> >
>> > on error resume next
>> > Set RS = Server.CreateObject("ADODB.RecordSet")
>> > RS.Open "[924_Immobles].dbo.documentacio", Conex, 2, 2
>> > rs.AddNew
>> > rs("taula_id") = 5
>> > rs("taula_indenti") = cstr(cint(taula_indenti))
>> > rs("doc_data") = now
>> > rs("doc_descrip") = "proves automàtiques"
>> > rs("doc_nom") = fiNom
>> > rs("doc_tamany") = fiTamany
>> > rs("doc_dades").AppendChunk 'Como expreso el documento para que se
>> > inserte
>> > ??????????
>> > rs("doc_tipus") = fiTipus
>> > rs.Update
>> >
>> > Next
>> > %>
>> >
>> > Lo que no hago es hacer el upload y guardarlo, sino que lo recupero
>> > de
>> > directorio directamente y inserto.
>> >
>> > ¿Alguna idea?, ¿Alguna url?...
>> >
>> > Muchas gracias.
>> >
>>

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida