Mostrar imagenes desde servidor

1,951 views
Skip to first unread message

elkin dario uribe torres

unread,
Mar 1, 2012, 10:18:59 AM3/1/12
to publice...@googlegroups.com
Buenos dias a tod@s

La inquietud mia es la siguiente:

En un equipo que se accesa por medio de internet esta instalado el sql server 2008 y por ahora para traer la informacion funciona excelente siguiendo los consejos de ustedes, el problema es cuando se trata de mostrar por decir algo un recibo de pago que esta escaneado y lo unico que se tiene guardado en la base de datos es la ruta de la misma, si el equipo funciona en una red lan no tiene problemas pero cuando es Wan ahi si no he podido no logr visualizar nada como que no accesa al directorio y me imagina que le tocaria traer la imagen (algo demorado).

Que se tendria que hacer para que se pudiera visualizar dicha imagen o como lo planteo es imposible,  espero haberme hecho entender y en espera de sugerencias para solucionar este inconveniente, ya que seria lo unico pendiente para poder entregar el sistema tal como funciona en los actuales momentos en las instalaciones de la empresa.


Saludos


Elkin Uribe
Medellin -  Colomboa

Walter R. Ojeda Valiente

unread,
Mar 1, 2012, 10:51:12 AM3/1/12
to publice...@googlegroups.com
Elkin, ya ha habido discusiones al respecto.

Mi consejo es que si usas SQL Server guardes las imágenes DENTRO de tus tablas, no fuera de ellas.

Inclusive, puedes tener una tabla exclusivamente para guardar imágenes en ella, muchísimas veces es la mejor opción.

Saludos.

Walter.




Date: Thu, 1 Mar 2012 10:18:59 -0500
Subject: [vfp] Mostrar imagenes desde servidor
From: eduri...@gmail.com
To: publice...@googlegroups.com

elkin dario uribe torres

unread,
Mar 1, 2012, 11:24:43 AM3/1/12
to publice...@googlegroups.com
Gracias Walter por responder, tal como lo expresas lo he leido en varias oportunidades y hasta ahora solo he guardado la ruta de las imagenes y funciona muy bien y a la vez me permite que la bases de datos no crezca en forma alarmante.

Te comento que en solo imagenes tengo mas de 60 GB, y crece debido a que cada dia se le ingresan recibos de caja, guias de correo, consignaciones, cedulas, pagares, etc.  Se contrato hacer una especie de intranet (la cual esta funcionando) pero con acceso solo para los usuarios por cuestion de seguridad (es muy limitada) para que le puedan hacer seguimiento a los pagos y a los documentos de su expediente y me sorpende la forma rapida en la que se visualizan los documentos, pense que esto mismo se podria lograr desde mi querido VFP, pero veo que es complicado o al menos para mi con los escasos conocimientos que tengo a la fecha en esto de trabajar accesando servidores por medio de una direccion IP en otro lugar.

Nuevamente te reitero mis agradecimiento a lo que me comentas y a los buenos aportes que haces al foro.

Saludos


Elkin Uribe
Medellin - Colombia 

mpulla

unread,
Mar 1, 2012, 6:03:58 PM3/1/12
to Comunidad de Visual Foxpro en Español
Hola Elkin.

No lo he probado, pero FILESTREAM de sql2008 te puede ayudar.

te dejo un link que te puede dar una idea.

http://blogs.msdn.com/b/manisblog/archive/2007/10/21/filestream-data-type-sql-server-2008.aspx

Mauricio

Victor Espina

unread,
Mar 1, 2012, 6:19:35 PM3/1/12
to publice...@googlegroups.com
La mejor solucion que he encontrado a esto es subir a la BD el nombre del archivo con su extension y su contenido completo en formato base64. Luego, cuando quieres mostrar el archivo en una estacion, te traes de la BD el nombre y el contenido en formato base64, creas un archivo temporal con la extension del archivo original, usas la data base64 para recrear el contenido del archivo original y ya puedes mostrar tu archivo en forma local.

Yo tengo una rutina para VFP que convierte archivos a base64 y viceversa. Manana te la paso para que pruebes.

Saludos

Victor Espina

elkin dario uribe torres

unread,
Mar 1, 2012, 6:38:44 PM3/1/12
to publice...@googlegroups.com
Muchas gracias Victor,

Saludos

Elkin Uribe
Medellin - Colombia

elkin dario uribe torres

unread,
Mar 1, 2012, 6:39:42 PM3/1/12
to publice...@googlegroups.com
Gracias Mauricio, mirare el link y te comento


Saludos

Elkin Uribe
Medellin - Colombia

Marco Plaza

unread,
Mar 1, 2012, 7:00:33 PM3/1/12
to Comunidad de Visual Foxpro en Español
En vfp las almacenas usando campos memo binarios, y en sqlserver
varbinary. Usa filetostr() y strtofile(). Víctor creo que sólo es
necesario usar base64 si vas a usar json o xml, en ese caso la función
strconv(string,13) y strconv(string,14) codifican y decodifican de
base64, no sé si sea necesario al usar odbc, por ado estoy casi
seguro que no es necesario.

Daniel Sánchez

unread,
Mar 2, 2012, 1:14:33 AM3/2/12
to publice...@googlegroups.com
Se pasa a base64, ya que dentro del archivo imagen puede haber datos que trunquen el leer el archivo o al enviar al servidor por tener algún código de fin de archivo o algo por el estilo truncando el archivo o generando rayas en la imagen almacenada, así que al pasarlo a base64 evitamos dichos problemas.

Saludos

--
Daniel Sánchez Escobar
Investigación y Desarrollo
Reset Software & Sistemas
Móvil +051-949398047
Trujillo - Perú

Marco Plaza

unread,
Mar 2, 2012, 6:40:05 AM3/2/12
to Comunidad de Visual Foxpro en Español
Cierto Daniel, de hecho si lo pasas a base64 puedes almacenarlas no en
Image o Varbinary sino en un simple campo memo.. por eso pregunto si
al usar campo VarBinary o Image se hace igualmente necesaria la
conversión?

Victor Espina

unread,
Mar 2, 2012, 7:57:59 AM3/2/12
to publice...@googlegroups.com
Si se usan campos varbinary o BLOB no es necesaria la conversion, pero en la practica puede resultar complicado el uso de este tipo de datos. No digo que no sea posible; lo que digo es que manejar las cosas en formato texto generalmente simplifica mucho las cosas.

Saludos

Victor Espina

elkin dario uribe torres

unread,
Mar 2, 2012, 1:06:35 PM3/2/12
to publice...@googlegroups.com
Muchas gracias Victor la probare y te comento.

Por ahora me queda claro que lo que debo hacer, si quiero que mi programa funcione en wan como lan es almacenar las imagenes en la base de datos.


Saludos


Elkin Uribe
Medellin - Colombia

El 2 de marzo de 2012 12:55, Victor Espina <vesp...@gmail.com> escribió:
Aca les dejo el articulo en codeWiki con el codigo para el parser Base64 para VFP.  Fijense que a pesar de que VFP ofrece ya la conversion BAse64 usando STRCONV(), esta version que les comparto funciona con cualquier version de VFP (mientras que STRCONV() no) y, segun el autor original del articulo, deberia tambien ofrecer un mejor tiempo de respuesta que STRCONV, especialmente con archivos grandes.


Saludos

Victor Espina


On Friday, March 2, 2012 10:29:57 AM UTC-3, Daniel Sánchez wrote:
Como comenta Victor siempre es mejor no complicarnos con un formato especifico, es mas fácil trabajar con un formato de archivo plano (por decirlo de una manera), así puedes almacenar cualquier archivo de imagen, word, excel, pdf no se lo que desees sin problemas.

Wladimir Carrillo

unread,
Mar 2, 2012, 1:21:46 PM3/2/12
to publice...@googlegroups.com

Buenazo, sirve mucho…. Gracias por compartir

 

Wladimir

 

De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de Victor Espina
Enviado el: viernes, 02 de marzo de 2012 12:55
Para: publice...@googlegroups.com
Asunto: Re: [vfp] Re: Mostrar imagenes desde servidor

 

Aca les dejo el articulo en codeWiki con el codigo para el parser Base64 para VFP.  Fijense que a pesar de que VFP ofrece ya la conversion BAse64 usando STRCONV(), esta version que les comparto funciona con cualquier version de VFP (mientras que STRCONV() no) y, segun el autor original del articulo, deberia tambien ofrecer un mejor tiempo de respuesta que STRCONV, especialmente con archivos grandes.

 

 

Saludos

 

Victor Espina



On Friday, March 2, 2012 10:29:57 AM UTC-3, Daniel Sánchez wrote:

Como comenta Victor siempre es mejor no complicarnos con un formato especifico, es mas fácil trabajar con un formato de archivo plano (por decirlo de una manera), así puedes almacenar cualquier archivo de imagen, word, excel, pdf no se lo que desees sin problemas.

elkin dario uribe torres

unread,
Mar 2, 2012, 2:22:52 PM3/2/12
to publice...@googlegroups.com
Buenas tardes Victor

Ya hice las pruebas y para covertir es muy rapido pero al momento de grabar en la base de datos de sql me marca el siguiente error "Subscript is outside defined range".

Veo que al final de cada archivo convertido este genera la siguiente cadena al final que adjunto en la imagen y esta resaltada, pero que cuando lo llevo al sql para pegarla y ver manualmente la insercion esta la bota.

Disculpa mi ignorancia pero apenas empiezo con el tema de almacenar imagenes en la base de datos.

Los pasos que realiza es:

1. convierto imagen OK
2. meconecto a la base de datos OK
3. instruccion de insertar imagen  (aqui se presenta el error)

Los valores que almaceno son: nombre archivo, contenido base64, extension (JPG, TIF, PDF, etc)

TRY DO conectarmeco SQLEXEC(controlador,'BEGIN TRANSACTION') cBase64 = loFile.encodeFile(lcFile) STORE "JPG" TO lcExtension set textmerge on TO memvar lcStringSQL noshow \insert into Imagenes (codigo, contenido, extension) values ( \\'<<ALLTRIM(itemsvariospagoscursor.nro_recibo)>>', '<<cBase64>>', '<<lcExtension>>') set textmerge to lnresultado1 = sqlexec(controlador,lcStringSQL,' ') IF lnresultado1 = 1 SQLEXEC(controlador,'IF @@TranCount > 0 COMMIT') SQLDISCONNECT(0) ELSE SQLEXEC(controlador,'IF @@TranCount > 0 ROLLBACK') SQLDISCONNECT(0)
...
... ENDIF CATCH SQLEXEC(controlador,'IF @@TranCount > 0 ROLLBACK') SQLDISCONNECT(0)
...
... ENDTRY

Saludos


Elkin Uribe
Medellin - Colombia





El 2 de marzo de 2012 12:55, Victor Espina <vesp...@gmail.com> escribió:
Aca les dejo el articulo en codeWiki con el codigo para el parser Base64 para VFP.  Fijense que a pesar de que VFP ofrece ya la conversion BAse64 usando STRCONV(), esta version que les comparto funciona con cualquier version de VFP (mientras que STRCONV() no) y, segun el autor original del articulo, deberia tambien ofrecer un mejor tiempo de respuesta que STRCONV, especialmente con archivos grandes.


Saludos

Victor Espina


On Friday, March 2, 2012 10:29:57 AM UTC-3, Daniel Sánchez wrote:
Como comenta Victor siempre es mejor no complicarnos con un formato especifico, es mas fácil trabajar con un formato de archivo plano (por decirlo de una manera), así puedes almacenar cualquier archivo de imagen, word, excel, pdf no se lo que desees sin problemas.
error sql.JPG

elkin dario uribe torres

unread,
Mar 2, 2012, 2:58:35 PM3/2/12
to publice...@googlegroups.com
Buenas tardes

Ya lo solucione, quedo perfecto gracias Victor.

Saludos

Elkin Uribe
Medellin - Colombia

mpulla

unread,
Mar 2, 2012, 3:30:59 PM3/2/12
to Comunidad de Visual Foxpro en Español
Hola Elkin

Cual fue el problema?

Permíteme hacerte 2 recomendaciones:

1.- La conversión de datos y preparación del string hazla antes de
hacer la conexion, tienes menos tiempo ocupado al servidor.
2.- Crea un SP que se encargue de insertar, si algún momento te toca
migrar tienes menos trabajo

Saludos.
Mauricio.



On 2 mar, 14:58, elkin dario uribe torres <eduribe2...@gmail.com>
wrote:
> Buenas tardes
>
> Ya lo solucione, quedo perfecto gracias Victor.
>
> Saludos
>
> Elkin Uribe
> Medellin - Colombia
>
> El 2 de marzo de 2012 14:22, elkin dario uribe torres <eduribe2...@gmail.com
> > El 2 de marzo de 2012 12:55, Victor Espina <vespi...@gmail.com> escribió:
>
> >> Aca les dejo el articulo en codeWiki con el codigo para el parser Base64
> >> para VFP.  Fijense que a pesar de que VFP ofrece ya la conversion BAse64
> >> usando STRCONV(), esta version que les comparto funciona con cualquier
> >> version de VFP (mientras que STRCONV() no) y, segun el autor original del
> >> articulo, deberia tambien ofrecer un mejor tiempo de respuesta que STRCONV,
> >> especialmente con archivos grandes.
>
> >>http://www.victorespina.com.ve/wiki/index.php?title=Parser_Base64_par...

elkin dario uribe torres

unread,
Mar 2, 2012, 3:45:12 PM3/2/12
to publice...@googlegroups.com
Gracias Maurico por las recomendaciones, si ya la preparacion de los datos la tengo antes del grabado en cuanto a los SP me pondre a estudiarlos.

El problema radicaba en que al final de la conversion tira un caracter que no permite guardarlo y lo que hice fue quitarlo y listo.


Saludos


Elkin Uribe
Medellin - Colombia

Victor Espina

unread,
Mar 2, 2012, 4:07:26 PM3/2/12
to publice...@googlegroups.com
Elkin tu problema es mas grave que ese. Lo que tu estas haciendo es creando una sentencia SQL de este tipo:

INSERT INTO tabla (campo1, campo2) VALUES ('valor1','valor2')

Ese tipo de estrategia, ESPECIALMENTE en WAN, es altamente riesgosa y muy poco recomendable, amen de causar problemas con los limites que ODBC le impone a las instrucciones que puede manejar.

La forma correcta de hacer esto es usar PARAMETROS:

PRIVATE cValor1, cValor2
cValor1 = "valor1"
cValor2 = "valor2"

INSERT INTO tabla (campo1, campo2) VALUES (?cValor1, ?cValor2)

Saludos

Victor Espina

elkin dario uribe torres

unread,
Mar 2, 2012, 4:18:44 PM3/2/12
to publice...@googlegroups.com
Gracias Victor ya lo corregi te agradezco las sugerencias hechas por Ti y Mauricio, ahora se presento otro pequeño inconveniente que te lo detallo.

Al momento de almacenar como escribi anteriormente le debo quietar el ultimo caracter o de lo contrario no graba, para verificar que ese caracter no haga falta cuando lo intente decodificar lo probe antes de comenzar a grabarlos en la base de datos y funciona perfecto. (disculpa lo desconfiado)

Ya grabado el registro en la base de datos, cual seria la forma adecuada de traerlo y aplicar la instruccion para que me pueda presentar la imagen. 

base64Helper.decodeFile(cBase64, "c:\temp\propuesta.doc")


Saludos


Elkin Uribe
Medellin - Colombia

Victor Espina

unread,
Mar 2, 2012, 4:22:11 PM3/2/12
to publice...@googlegroups.com
Elkin, no debes quitarle nada a lo que te devuelve encodeFile().  Si trabajas con parametros, no deberias tener problemas.

Con respecto a como recuperar el archivo, lo que yo hago es que ademas del contenido del archivo, grabo el nombre original del archivo (sin la ruta). Asi, cuando voy a recrearlo, me traigo de la BD no solo el contenido del archivo sino su nombre, y lo creo en una ruta temporal dentro de la estacion del cliente.

Saludos

Victor Espina

Wladimir Carrillo

unread,
Mar 2, 2012, 4:19:25 PM3/2/12
to publice...@googlegroups.com

Hola Victor

 

Estoy probando guardar una imagen usando esta clase…. Pero se me presenta un problema a la hora de grabar en SQL 2008 a través de SP

 

Básicamente tengo este código:

 

LOCAL base64Helper AS "base64Class"

 

base64Helper = CREATEOBJECT("base64Class")

strDato = base64Helper.encodestring(“Algún dato”)

 

strSql = “nombreSP ” + param1 + “,” + param2 + “,” + strDato + “,” + param3 + “,” + param4 + …

 

 

No sé porque razón  la variable strSql solo concatena las variables hasta strDato y no agrega el resto de variables (param3, param 4, etc)

 

He hecho una sencilla prueba como esto y pasa lo mismo:

 

strDato = base64Helper.encodestring(“Cadena primera”) + “Cadena segunda”

MESSAGEBOX(strDato)

 

Y solo despliega Cadena primera

 

Tal vez sabes que puede estar sucediendo?

 

Gracias por tu ayuda

 

 

De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de Victor Espina
Enviado el: viernes, 02 de marzo de 2012 12:55
Para: publice...@googlegroups.com
Asunto: Re: [vfp] Re: Mostrar imagenes desde servidor

 

Aca les dejo el articulo en codeWiki con el codigo para el parser Base64 para VFP.  Fijense que a pesar de que VFP ofrece ya la conversion BAse64 usando STRCONV(), esta version que les comparto funciona con cualquier version de VFP (mientras que STRCONV() no) y, segun el autor original del articulo, deberia tambien ofrecer un mejor tiempo de respuesta que STRCONV, especialmente con archivos grandes.

 

 

Saludos

 

Victor Espina



On Friday, March 2, 2012 10:29:57 AM UTC-3, Daniel Sánchez wrote:

Como comenta Victor siempre es mejor no complicarnos con un formato especifico, es mas fácil trabajar con un formato de archivo plano (por decirlo de una manera), así puedes almacenar cualquier archivo de imagen, word, excel, pdf no se lo que desees sin problemas.

Victor Espina

unread,
Mar 2, 2012, 4:30:01 PM3/2/12
to publice...@googlegroups.com
Mismo caso de elkin. Nunca se deben concatenar valores de cadena al enviar data a SQL; SIEMPRE se deben usar parametros. La forma correcta de hacerlo con un Stored Procedure es:

cSQL = "EXEC nombreSP ?param1,?param2,?strDato,?param3,...,?paramN"

PRIVATE Param1,Param2,strDato,Param3
Param1 = "valor1"
Param2 = "Valor2"
strDato = base64helper.encodeFile(...)
Param3 = "valor3"

SQLEXEC(nconn, cSQL)

Saludos

Victor Espina

elkin dario uribe torres

unread,
Mar 2, 2012, 4:38:40 PM3/2/12
to publice...@googlegroups.com
Victor te comento que como modifique el codigo como lo sugeriste ya no hay necesidad de quitarle ningun caracter funciona de 10 para guardar la imagen (hasta mas rapido MUCHAS GRACIAS).

Pero aplico el mismo principio que me describes guardo el nombre, la extension para poder nombrarlo igual y lo llevo a una carpeta temporal, pero no muestra la imagen(me genera un archivo de cero bytes), te molestaria si me indicas como seria la forma adecuda de recuperar la imagen de la base de datos, porque hasta ahora no me da.

Disculpa mi ignorancia 

Saludos

Elkin Uribe
Medellin - Colombia

Victor Espina

unread,
Mar 2, 2012, 4:52:41 PM3/2/12
to publice...@googlegroups.com
cSQL = "SELECT nombre, contenido FROM archivos WHERE id = ?nIDArchivo"
SQLEXEC(nConn, cSQL, "QARCHIVO")

LOCAL cTarget,cBase64
cTarget = "C:\TEMP\" + RTRIM(QARCHIVO.nombre)
cBase64 = RTRIM(QARCHIVO.contenido)

base64Helper.decodeFile(cBase64, cTarget)

THISFORM.Image1.Picture = cTarget

Saludos

Victor Espina

elkin dario uribe torres

unread,
Mar 2, 2012, 5:02:37 PM3/2/12
to publice...@googlegroups.com
Muchas gracias Victor funciona perfecto ahora hare ensayos y mirare como crece esa base de datos.

Te agradezco mucho


Elkin Uribe
Medellin - Colombia

Armando Rodríguez Bermúdez

unread,
Mar 2, 2012, 5:08:53 PM3/2/12
to publice...@googlegroups.com

Una de las cosas que más me gustan de este foro es ver cómo se resuelve un problema con la ayuda de los miembros. Y cómo gente que a pesar de no conocerse personalmente apoyan a los colegas de forma tan desinteresada.  Y como decía mi abuelita, todo eso se regresa multiplicado por 10.

 

Saludos

Armando

 

De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de elkin dario uribe torres
Enviado el: viernes, 02 de marzo de 2012 04:03 p.m.
Para: publice...@googlegroups.com
Asunto: Re: [vfp] Re: Mostrar imagenes desde servidor

 

Muchas gracias Victor funciona perfecto ahora hare ensayos y mirare como crece esa base de datos.

Wladimir Carrillo

unread,
Mar 2, 2012, 5:49:31 PM3/2/12
to publice...@googlegroups.com

Mil gracias Victor, voy a probar de la forma que me indicas en producción…. En pruebas funciona todo OK

 

Te lo agradezco inmensamente

 

De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de Victor Espina
Enviado el: viernes, 02 de marzo de 2012 16:30
Para: publice...@googlegroups.com
Asunto: Re: [vfp] Re: Mostrar imagenes desde servidor

 

Mismo caso de elkin. Nunca se deben concatenar valores de cadena al enviar data a SQL; SIEMPRE se deben usar parametros. La forma correcta de hacerlo con un Stored Procedure es:

Victor Espina

unread,
Mar 2, 2012, 5:57:19 PM3/2/12
to publice...@googlegroups.com
Me alegro que les haya sido de utilidad.

Saludos

Victor Espina

Víctor Hugo Espínola Domínguez

unread,
Mar 26, 2012, 9:18:58 PM3/26/12
to publice...@googlegroups.com
Hola Tocayo

Tengo una duda:
Porqué usas  cBase64 = RTRIM(QARCHIVO.contenido) en lugar de cBase64 = QARCHIVO.contenido?

Agradecería una explicación al respecto, si no es mucha molestia.

Saludos, Víctor

Victor Espina

unread,
Mar 28, 2012, 9:41:51 AM3/28/12
to publice...@googlegroups.com
Es simplemente programacion defensiva. El campo que contiene la data en base64 no deberia contener espacios al final, pero si los tuviera por cualquier razon podria causar un problema al recuperar el contenido original del archivo. 

Por esa razon, como medida de seguridad, es mejor quitarselos... solo por si acaso. :)


Victor Espina

Víctor Hugo Espínola Domínguez

unread,
Mar 28, 2012, 1:14:57 PM3/28/12
to publice...@googlegroups.com
Ok. Gracias por responder.

Lo probé con Firebird, y funciona estupendo!!

Saludos, Víctor

Daniel Sánchez

unread,
Mar 2, 2012, 8:29:57 AM3/2/12
to publice...@googlegroups.com
Como comenta Victor siempre es mejor no complicarnos con un formato especifico, es mas fácil trabajar con un formato de archivo plano (por decirlo de una manera), así puedes almacenar cualquier archivo de imagen, word, excel, pdf no se lo que desees sin problemas.

Victor Espina

unread,
Mar 2, 2012, 12:55:00 PM3/2/12
to publice...@googlegroups.com
Aca les dejo el articulo en codeWiki con el codigo para el parser Base64 para VFP.  Fijense que a pesar de que VFP ofrece ya la conversion BAse64 usando STRCONV(), esta version que les comparto funciona con cualquier version de VFP (mientras que STRCONV() no) y, segun el autor original del articulo, deberia tambien ofrecer un mejor tiempo de respuesta que STRCONV, especialmente con archivos grandes.


Saludos

Victor Espina


On Friday, March 2, 2012 10:29:57 AM UTC-3, Daniel Sánchez wrote:

Luis Dutari

unread,
Aug 19, 2015, 2:35:16 PM8/19/15
to Comunidad de Visual Foxpro en Español, vesp...@gmail.com
Victor, 
tengo implementado esta solución de convertir archivos en texto y guardarlo en una tabla de SQL
pero ahora me surge un error cuando quiero codificar
en el procedimiento:  PROCEDURE encodeString(pcString)
en la linea:   cDst = REPLICATE(CHR(0), m.nBufsize)
el mensaje de error es : "string is too long to fit"   o "cadena demasiada larga"
el archivo pesa poco menos de 12mb

la variable  m.nBufsize toma el valor 16999555

hay algún límite en el tamaño del archivo a subir?
tienes idea qué puede estar pasando?

ese mismo archivo lo zipie a 11,3mb y no tuve problemas en subirlo a la base de datos

en muchos otros archivos lo hemos usado sin problemas

muchas gracias por tu ayuda

saludos
Luis Dutari
Córdoba, Argentina

Victor Espina

unread,
Aug 19, 2015, 2:57:47 PM8/19/15
to Luis Dutari, Comunidad de Visual Foxpro en Español
Puede q sea una limitante de replicate. No recuerdo cual es el límite de un string en vfp pero eatoy casi seguro q depende solo de la memoria disponible.  


Sent from Mailbox

Victor Espina

unread,
Aug 19, 2015, 4:23:50 PM8/19/15
to Comunidad de Visual Foxpro en Español
Lamentablemente, el tamaño maximo de un string en VFP es 16777184, justo por debajo del tamaño que tu estas intentando crear.  Mira aqui: http://fox.wikis.com/wc.dll?Wiki~StringLength


Victor

Luis Dutari

unread,
Aug 20, 2015, 7:35:52 AM8/20/15
to publice...@googlegroups.com
Victor, 
buen día
muchas gracias por tu atención y respuesta.
sigo investigando....

se te ocurre alguna forma de solución?

nuevamente agradezco tu atención

saludos
Luis

Ing. Luis G. Dutari
ldu...@gmail.com
0351 153 136260

Victor Espina

unread,
Aug 20, 2015, 10:01:13 AM8/20/15
to Comunidad de Visual Foxpro en Español
Te toca abrir el archivo con funiones de bajo nivel y leer el contenido por bloques.

Victor

Luis Dutari

unread,
Aug 20, 2015, 10:03:11 AM8/20/15
to publice...@googlegroups.com
OK, muchas gracias Victor
ya veo cómo lo hago

saludos

Ing. Luis G. Dutari
ldu...@gmail.com
0351 153 136260

Reply all
Reply to author
Forward
0 new messages