Aoki, campo blob é um campo memo que guarda arquivos binários, de qualquer tipo. Vc cria do mesmo jeito que cria um dbf comum:
Um pequeno exemplo:
aStru := {{"CODIGO", "C", 6, 0},;
{"FOTO_BMP", "M", 10, 0}}
dbcreate("FotoPrd", aStru)
...
// Para salvar teste.bmp no dbf
#include "blob.ch"
...
append blank
replace codigo with "000001"
if ! BLOBImport( FieldPos( "FOTO_BMP" ),"teste.bmp" )
Msginfo("Falha ao gravar a imagem, tente novamente", ATENCAO )
return Nil
endif
...
// Para recuperar a foto como Temp.bmp
ferase("Temp.bmp")
dbseek(........)
if ! BLOBExport(FieldPos("FOTO_BMP"), "Temp.bmp", BLOB_EXPORT_OVERWRITE )
Msginfo( "Falha na criação do arquivo de foto" )
endif
...
Outra coisa que vc pode fazer é guardar além da foto, o nome original dela num campo, assim vc recupera ela com o nome certo. No meu caso, como eu so abria uma foto por vez, eu salvava todas como temp.bmp
Quanto ao Firebird, é free, sim. Mas no seu caso vc resolve facil gravando no DBF, so fique esperto com o tamanho dos BMPs, pois seu dbf vai crescer bastante. Ah, use DBFCDX, com DBFNTX nao funciona.
[]'s
Maurilio