Power Builder - Guardar imagenes con PB12.5 SQLAnywhere 12

 
Vista:
sin imagen de perfil
Val: 24
Ha aumentado 1 puesto en Power Builder (en relación al último mes)
Gráfica de Power Builder

Guardar imagenes con PB12.5 SQLAnywhere 12

Publicado por Javier (75 intervenciones) el 07/05/2014 02:48:11
Hola a todos, quiero empezar a trabajar con imagenes, estoy creando una tabla para guardar mis fichas de deposito pero no se que tipo de datos le puedo asignar a mi campo donde guardare la imagen? ya busque y no aparece el tipo de datos Blob. aparece bit, float, nchar, nvarchar, long, y otras mas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Adolfo
Val: 250
Bronce
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

Guardar imagenes con PB12.5 SQLAnywhere 12

Publicado por Adolfo (260 intervenciones) el 08/05/2014 21:34:38
1.- Debemos modificar c:\archivos de programa\sybase\shared\powerbuilder\pbodb125.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'

2.- Para este ejemplo debemos de tener la siguiente tabla:
1
2
3
4
5
6
CREATE TABLE dbo.nada
(
    clave  int         IDENTITY,
    nombre longsysname NULL,
    foto   image       NULL
)
En la ventana debemos crear 3 controles un single line edit llamado sle_clave.text un boton guardar y un boton leer.

Para el botón Guardar:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
string ls_pathname, ls_filename, ls_filtro
integer li_clave, li_file
blob lb_usu_foto, lb_temp
 
ChangeDirectory("C:\Documents and Settings\COR_ACHAIREZ\Mis documentos\Mis imágenes")
 
ls_filtro = "Archivos de Imagenes (*.bmp;*.gif;*.jpg;*.jpeg;*.png),*.bmp;*.gif;*.jpg;*.jpeg;*.png"
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
	li_clave = integer(sle_clave.text)
	DO WHILE FileRead(li_file,lb_temp) > 0
		lb_usu_foto += lb_temp
	LOOP
	FileClose(li_file)
	p_foto.SetPicture(lb_usu_foto)
 
	UPDATEBLOB nada
		SET foto = :lb_usu_foto
		WHERE clave = :li_clave;
	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

Para el boton leer:
1
2
3
4
5
6
7
8
9
10
11
12
13
integer li_clave
Blob lb_usu_foto
long ll_i
 
li_clave = integer(sle_clave.text)
SELECTBLOB foto INTO :lb_usu_foto
	FROM nada
	WHERE clave = :li_clave;
if sqlca.sqlcode = -1 then
	messagebox("Error","No se pudo recuperar imagen" + sqlca.sqlerrtext, StopSign!)
	return
end if
p_foto.setpicture(lb_usu_foto)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar