Actualizar Campos long_raw de Oracle desde VFP

Hola, tengo una aplicación en VFP. 6 que actualiza una base de datos de Oracle y funciona bien, pero ahora, necesito almacenar imágenes JPG en campos long_raw. ¿Alguien sabe como hacerlo?
Gracias.

1 respuesta

Respuesta
1
Sigue estos pasos. Funciona...
1. Tienes que crear un cursor temporal vfp con un campo general que almacene la imagen: CREATE CURSOR IMG (IMAGEN G)
2. Agrega un registro en blanco al cursor e inserta una imagen en él: APPEND BLANK
APPEND GENERAL IMAGEN FROM C:\MI_IMAGEN.JPG
3. Con el SqlExec() actualiza el campo long raw a partir del campo del cursor: SQLEXEC(nCONEXION,"UPDATE TABLA SET CAMPO_LONG_RAW=?IMG.IMAGEN WHERE CONDICION")
4. Confirma los cambios con:
Sqlcommit(nconexion)
Espero que te funcione... (:->)
Hola, gracias por contestar.
Dos preguntas antes de probar tu solución...
- Escribiste un signo ? despues de CAMPO_LONG_RAW= ... Es esto correcto ?
- La verdad es que no he probado ejecutar un SQLEXEC utilizando el nombre de los campos de un cursor o de una variable como parte de la instrucción. Lo que he hecho, es crear una cadena de caracteres, y voy sustituyendo el nombre de cada variable por su valor real, si este es numérico, lo convierto en carácter y así etc, etc. Mi pregunta, antes de probarlo, ¿es si realmente se pueden usar nombres de variables y campos de FOX dentro de la instrucción SQL?
Gracias,
Rocco Di Chiara
Guatemala
Tu puedes utilizar variables en lugar de valores fijos. ¿Para qué el motor interprete el valor de la variable debes colocar delante de ella (la variable) un signo de interrogación (?). Esto se conoce como variables de sustitución. Ahora en vez de variables también puedes utilizar nombres de campos de cursores abiertos como el ejemplo que te envié.
vCedEmpleado=alltrim(thisform.text1.value)
vNomEmpleado=alltrim(thisform.text2.value)
SqlExec(nConexion,"Update Empleados Set Nombre=?vNomEmpleado where Cedula=?vCedEmpleado")
¿Cuándo el motor recibe esta cadena, el signo (?) Lo obliga interpretar el valor de las variables y sustituir su valor en la cadena.
Espero te funcione... (;->)
Eddie Yanes
Barranquilla - Colombia
Muchas Gracias. Lo de la? No lo sabia, por lo que aprendí algo nuevo.
Aun no pruebo lo que me diste pero esta muy claro y estoy seguro que funcionara.
Gracias y Suerte !

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas