OK, es correcto, el termino "pesado" en TI es muy relativo, y depende mucho de la magnitud de tu proyecto si es cliente servidor o escritorio y los recursos con los que dispone:
Si en el lado servidor tienes algunos teras de capacidad de disco y un motor de datos como ORACLE o POSTGRES el termino "pesado" carece de sentido
Si por el contrario tus datos residen en una PC con pocos recursos (quizás instalaste un POSTGRES o MSSQLSERVER ) o simplemente trabajas con tablas locales nativas de FOX, ahí si hay que optar por otra alternativa simplemente porque tu Base de datos crecerá en tamaño rápidamente y los backups y replicas pueden afectar el rendimiento del servidor . Y es separar los archivos de imágenes de la Base de datos y trabajarlo por separado de la siguiente manera :
1) Crear un campo tipo memo en tu tabla a mostrar ejemplo :
Tabla : mitabla
Campo: miruta (Del tipo memo)
Campo2: codigoproducto (Del tipo c)
2) En el campo miruta, almacena la ruta de la carpeta de donde guardas las fotos
Ejemplo:
"\\192.168.26.114\misfotos\productos\"
3) En mitabla, ubicate en el registro a mostrar, (Con el comadno SEEK, o con REQUERY(), si trabajas con vistas remotas o locales), o con Filter o lo que uses ..
4) Luego en el evento LOAD de tu formulario :
select mitabla
THISFORM.MICONTROL.PICTURE=alltrim(miruta )+alltrim(codigoproducto)+".jpg"
Recordar que las fotos que guardas, debes de nombrarlas igual que el código del producto que corresponde por ejemplo :
CÓDIGO DESCRIPCIÓN PRECIO RUTA
AE012345 LAPICERO AZUL TIPO BILLA 34.5 \\192.168.26.114\misfotos\productos\
El archivo de imagen en disco seria :
\\192.168.26.114\misfotos\productos\AE012345.JPG
. Listo, veras como la imagen se carga en tu control sin problemas,
5) Cada que actualizas el registro o te mueves de un registro a otro, en tu fomaulario debes de ejecutar este código, si quieres puedes guardarlo como un evento de tu form
Puedes usar las funciones, GETFILE(), GETDIR(), FILE() para validar los valores ingresados y mostrados del campo miruta