|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
Guardar ficheros fisicos en base de datos HFSQL |
Débuté par Juan, 16 avr. 2017 09:08 - 11 réponses |
| |
| | | |
|
| |
Posté le 16 avril 2017 - 09:08 |
Hola y gracias, Quiero guardar ficheros fisicos Word o excel o rtf directamente en la base de datos HFSQL, como puedo hacerlo si incluyo un selector de ficheros en disco duro y luego lo intento guardar en un campo de la tabla de mi base de datos. Gracias |
| |
| |
| | | |
|
| | |
| |
Posté le 18 avril 2017 - 13:55 |
Hola Juan
Aqui tienes un link explica entre otras cosas como guardar una imagen .
PD:Esta en portugués pero se entiende.
espero que te sirva.
Saludos victor |
| |
| |
| | | |
|
| | |
| |
Posté le 20 avril 2017 - 23:30 |
Que tal Juan.
Hay dos formas de guardar ficheros físicos en la BD la primera de ellas haciendo uso de FloadBuffer
Se utiliza de la siguiente forma
bufFile is Buffer = fLoadBuffer("c:\escritorio\archivoejemplo.docx") TablaBD.CampoTabla = bufFile
Y luego solo haría falta guarda con hadd,el ejemplo completo sería algo como:
Hreset(TablaBD) bufFile is Buffer = fLoadBuffer("C:\escritorio\archivo.docx") TablaBD.CampoTabla = bufFile Hadd(TABLABD)
La otra forma es haciendo uso de Hlinkmemo
Hreset(TablaBD) HLinkMemo(TABLABD, CampoTabla , ""C:\escritorio\archivo.docx") HAdd(TABLABD)
Si luego quieres extraer la información sería algo como
HReadSeekFirst(TablaBD, ID, 1) IF HFound THEN fSaveBuffer("C:\escritorio\archivo.docx", TablaBD.CampoTabla) ELSE Error("HFSQL error: " + HErrorInfo()) END
Espero el comentario sea claro y le sirva de ayuda.
Saludos! |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 8 messages |
|
Posté le 20 avril 2017 - 23:44 |
Que tal Juan.
Hay dos formas de guardar ficheros físicos en la BD la primera de ellas haciendo uso de FloadBuffer
Se utiliza de la siguiente forma
bufFile is Buffer = fLoadBuffer("c:\escritorio\archivoejemplo.docx") TablaBD.CampoTabla = bufFile
Y luego solo haría falta guarda con hadd,el ejemplo completo sería algo como:
Hreset(TablaBD) bufFile is Buffer = fLoadBuffer("C:\escritorio\archivo.docx") TablaBD.CampoTabla = bufFile Hadd(TABLABD)
La otra forma es haciendo uso de Hlinkmemo
Hreset(TablaBD) HLinkMemo(TABLABD, CampoTabla , ""C:\escritorio\archivo.docx") HAdd(TABLABD)
Si luego quieres extraer la información sería algo como
HReadSeekFirst(TablaBD, ID, 1) IF HFound THEN fSaveBuffer("C:\escritorio\archivo.docx", TablaBD.CampoTabla) ELSE Error("HFSQL error: " + HErrorInfo()) END
Espero el comentario sea claro y le sirva de ayuda.
Saludos!
-- Christian D. |
| |
| |
| | | |
|
| | |
| |
Posté le 21 avril 2017 - 09:08 |
Muchas gracias a los dos por vuestras respuestas y disculpad el retardo. Lo probaré ya que quiero usar el poder guardar formato word o rtf con el nuevo control de tratamiento de texto de pcsoft. Muchas gracias a los dos, Victor y Christian y saludos, Juan |
| |
| |
| | | |
|
| | |
| |
Posté le 21 avril 2017 - 09:18 |
Hola Christian, disculpa pero tengo otra pregunta referente a mi primera. Para poder guardar el fichero fisico directamente en HFSQL, que tipo de dato tengo que crear para guardar el fichero fisico, es : sonido, imagen, binario o que tipo de dato(campo) a declarar en la tabla ??? Christian disculpa si no traduzco bien ya que uso la version francesa de WD.
Gracias Christian por tu ayuda y saludos |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 8 messages |
|
Posté le 21 avril 2017 - 18:39 |
Hola juan.
El tipo de campo que debes crear en la BD es tipo memo.
-- Christian D. |
| |
| |
| | | |
|
| | |
| |
Posté le 21 avril 2017 - 19:22 |
Gracias Christian, disculpa es, un Imagen(memo binario) o otro memo binario ? Muchas gracias por tu ayuda y buen fin de semana. Juan |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 8 messages |
|
Posté le 25 avril 2017 - 00:33 |
Hola Juan.
El campo tipo memo en HF sirve para almacenar objetos binarios (imagenes, documentos, videos etc). es similar al campo tipo blob de mysql
Saludos!
-- Christian D. |
| |
| |
| | | |
|
| | |
| |
Posté le 25 avril 2017 - 10:42 |
Primero de todo gracias Christian por tu ayuda. He intentado guardar con un selector de ficheros en disco el fichero .docx, pero no veo si miro en la base de datos el fichero... Disculpa pero no tengo experiencia en este asunto ya que nunca lo he hecho. Podrías explicarme lo que hago mal?, he usado tu segunda opción que me indicastes. Saludos y gracias |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 8 messages |
|
Posté le 26 avril 2017 - 18:28 |
Que tal Juan, aquí un pequeño ejemplo
SelectedFile is string SelectedFile = fSelect("\Directories", "","Seleccione un archivo","Tmagen (*.JPG)" + TAB + "*.jpg" + CR + "Todo" + TAB + "*.*", "txt") // Se indica la tabla y el campo donde se almacenara el archivo, en este caso se guardara un archivo tipo imagen, consulte //https://help.windev.com/en-US/… para que vea los valores que puede tomar el cuarto parámetro dependiendo del //archivo a subir HLinkMemo(TABLA,CAMPOTABLA,SelectedFile ,hMemoImg) IF Hadd(NOMBRETABLA) THEN Toastdisplay("Archivo almacenado") ELSE Error("HFSQL error: " + HErrorInfo()) END
Tenga en cuenta que la funcion fselect aplica para Windev o Windev Mobile, si intenta hacer la misma funcionalidad en WebDev utilice un control tipo upload en el evento (receiving the file upload) del botón quedaría algo como:
fMakeDir(fWebDir()+"\Fotos") // crea el directorio fotos en la carpeta del proyecto RutaFoto is string = fWebDir()+"\Fotos\" + UploadCopyFile(MySelf, fWebDir()+"\Fotos\","NOMBREFOTO"+"_"+ SysDateTime)
// Se indica la tabla y el campo donde se almacenara el archivo, en este caso se guardara un archivo tipo imagen, consulte //https://help.windev.com/en-US/… para que vea los valores que puede tomar el cuarto parámetro dependiendo del //archivo a subir
HLinkMemo(TABLA,CAMPOTABLA,RutaFoto ,hMemoImg) IF Hadd(NOMBRETABLA) THEN Toastdisplay("Archivo almacenado") ELSE Error("HFSQL error: " + HErrorInfo()) END
Espero sea útil la respuesta.
Saludos!
-- Christian D. |
| |
| |
| | | |
|
| | |
| |
Posté le 26 avril 2017 - 22:52 |
Muchas gracias por su ayuda Christian. Voy aplicar sus consejos y quiero agradecerle el tiempo dedicado y sus ejemplos. Saludos y hasta la próxima, Juan:merci: |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|