RE:problema con carga de imagen
Tal vez esto te ayude, he podio guardar y recuperar imagenes en una tabla sql. Debes tener una tabla con el campo image:
Primero debemos modificar: c:\archivos de programa\sybase\shared\powerbuilder\pbodb105.ini (o en su caso la version que sea. ejm. pb0db12.ini) y localizar lo siguiente
PBMaxBlobSize='32767'
PBMaxTextSize='32767'
y cambiarlo por
PBMaxBlobSize='2147483647'
PBMaxTextSize='32767000'
Para Guardar una imagen:
string ls_pathname, ls_filename, ls_filtro
long ll_i, li_file, ll_usu_num_ctrl
blob lb_usu_foto, lb_temp
ChangeDirectory("C:\Documents and Settings\COR_ACHAIREZ\Mis documentos\Mis imágenes"s)
ll_i = dw_grid.GetSelectedRow(0)
if ll_i > 0 or ll_i <= dw_grid.rowcount() then
ls_filtro = "JPEG Files (*.jpg),*.jpg," + "GIFF Files (*.gif),*.gif, BMP (*.bmp)"
if GetFileOpenName("Archivo de Imagen:", ls_pathname, ls_filename , "jpg", ls_filtro) = 0 then return
li_file = FileOpen(ls_pathname, StreamMode!)
if li_file = -1 then
messagebox('Error','Falló la apertura del archivo imagen',stopsign!)
return
else
ll_usu_num_ctrl = dw_grid.getitemnumber(ll_i,"usu_num_ctrl")
DO WHILE FileRead(li_file,lb_temp) > 0
lb_usu_foto += lb_temp
LOOP
FileClose(li_file)
p_usu_foto.SetPicture(lb_usu_foto)
UPDATEBLOB usuario
SET usu_foto = :lb_usu_foto
WHERE usu_num_ctrl = :ll_usu_num_ctrl;
if sqlca.sqlcode = -1 then
messagebox("Error","No se pudo ejecutar la query actualiza foto~n~r" + sqlca.sqlerrtext, stopsign!)
return
end if
end if
else
messagebox("Error","Seleccione un registro en la datawindow inferior", stopsign!)
return
end if
Para recuperar:
long ll_usu_num_ctrl
Blob lb_usu_foto
long ll_i
ll_i= dw_grid.GetSelectedRow(0)
if ll_i> 0 and ll_i<= dw_grid.rowcount() then
ll_usu_num_ctrl = dw_grid.getitemnumber(ll_i,"usu_num_ctrl")
SELECTBLOB usu_foto INTO :lb_usu_foto
FROM usuario
WHERE usu_num_ctrl = :ll_usu_num_ctrl;
if sqlca.sqlcode = -1 then
messagebox("Error","No se pudo recuperar imagen" + sqlca.sqlerrtext, StopSign!)
return
end if
p_usu_foto.setpicture(lb_usu_foto)
end if