Power Builder - Almacenar Imagenes En ASA

 
Vista:
sin imagen de perfil
Val: 9
Ha disminuido su posición en 2 puestos en Power Builder (en relación al último mes)
Gráfica de Power Builder

Almacenar Imagenes En ASA

Publicado por Juan Carlos (22 intervenciones) el 26/04/2007 18:32:04
hola no puedo almacenar imagenes en la base de datos asa me dijiron que te tipo de dato es longbinary pero no se como subirlas o otra manera de almacenar la imagenes en la base de datos y mostralar para un windows de mantenimineto.
gracias.
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

RE:Almacenar Imagenes En ASA

Publicado por Leopoldo Taylhardat (710 intervenciones) el 28/04/2007 14:31:17
Saludos...

Del Manual de ASA.

Binary data types

Function

For storing binary data, including images and other information that is not interpreted by the database.

Syntax

Binary data types:
BINARY [ ( max-length ) ]
| LONG BINARY
| IMAGE
| VARBINARY

Description

BINARY [(max-length)] Binary data of maximum length size (in bytes). If size is omitted, the default is 1. The maximum size allowed is 32,767. The BINARY data type is identical to the CHAR data type except when used in comparisons. BINARY values will be compared exactly while CHAR values are compared without respect to upper/lower case unless the database is defined as case-sensitive or accented characters.
LONG BINARY Arbitrary length binary data. The maximum size is limited by the maximum size of the database file (currently 2 gigabytes).

IMAGE LONG BINARY data allowing NULL.
VARBINARY Identical to BINARY.

Compatibility

· IMAGE is implemented in Adaptive Server Anywhere as a user-defined data type, as LONG BINARY allowing NULL. It is provided primarily for compatibility with Adaptive Server Enterprise.
· The VARBINARY keyword is provided for compatibility with Adaptive Server Enterprise.
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

RE:Almacenar Imagenes En ASA

Publicado por Leopoldo Taylhardat (710 intervenciones) el 28/04/2007 14:34:08
De los Foros... Aplicaciones PB...

Foto en Bd desde PB
Este articulo muestra la manera de incluir un BMP o un archivo gráfico en un campo Bynary de una base de datos.

string ls_defext="BMP"
string ls_filtro="Archivos JPG(*.jpg),*.jpg, Archivos GIFs(*.gif),*.gif, Mapa de Bits(*.bmp),*.bmp"

li_ret=getFileOpenName("Abrir Mapa de bits",ls_txtname,ls_named,ls_defext,ls_filtro)

if li_ret = 1 then
ii_fh=fileopen(ls_txtname, streammode!)
if ii_fh -1 then
fileread(ii_fh, gb_blob)
If IsNull(gb_blob) Then MessageBox("A","Blob nulo")
fileclose(ii_fh)
p_foto.setpicture(gb_blob)
UPDATEBLOB Alumno SET foto = :gb_blob WHERE Cod_univers = :le_cod_univ.text;
commit;
end if
end if
Las variables li_ret, ii_fh, gb_blob pueden ser declaradas en forma global.

Foto en Bd desde PB (otra)

"Vamos a desarrollar un pequeño aplicativo, en donde almacenaremos en una DB, una imagen, para despues poder visualizarla o cambiarla por otra.

1. Creamos una tabla llamada 'alumnos_fotos' con 2 campos: 'cod_alumno' de tipo char(2) y foto_alumno de tipo image(16), al campo cod_alumno lo ponemos como Clave Principal.
a esta tabla le agregamos 3 registros con los codigos: '01', '02', y '03'

2. Creamos una Window con los siguientes objetos:
un Picture Control, llamado 'p_foto'
dos Command Button, llamados 'cb_cargar_foto' y 'cb_ver_foto' y
un Single Line Edit, llamado 'sle_cod_alumno'

3. En el evento clicked de 'cb_cargar_foto' poner el siguiente codigo:


STRING ls_pathname, ls_filename, ls_filtro, ls_cod_alumno
LONG ll_File
BLOB lbl_data, lbl_temp

ls_filtro = "JPEG Files (*.jpg),*.jpg," + "GIFF Files (*.gif),*.gif,"
IF GetFileOpenName ( "Archivo de Imagen: ", ls_pathname, ls_filename , "jpg", ls_filtro) = 0 THEN RETURN

p_foto.picturename = ls_pathname
ls_cod_alumno = trim(sle_cod_alumno.text)

ll_File = FileOpen(ls_pathname, StreamMode!)
DO WHILE FileRead(ll_file,lbl_temp) > 0
lbl_data += lbl_temp
LOOP
FileClose(ll_file)

IF ll_File -1 THEN
FileRead(ll_file, lbl_data)
FileClose(ll_file)
SQLCA.AutoCommit = True
UPDATEBLOB alumnos_fotos SET foto_alumno = :lbl_data WHERE cod_alumno = :ls_cod_alumno;
SQLCA.AutoCommit = False
ELSE
messagebox('Error','Falló el FileOpen')
END IF

IF SQLCA.SQLNRows > 0 THEN
COMMIT;
messagebox('OK: ' + ls_cod_alumno,'Se guardó la foto del alumno')
ELSE
messagebox('Error','Falló el UPDATEBLOB')
END IF
FileClose(ll_file)

4. En el evento clicked de cb_ver_foto, copiar el codigo:

Blob lb_imagen
STRING ls_cod_alumno
ls_cod_alumno = trim(sle_cod_alumno.text)

SELECTBLOB foto_alumno INTO :lb_imagen FROM alumnos_fotos WHERE cod_alumno = :ls_cod_alumno ;

p_foto.SetPicture(lb_imagen)

5. Ejecutar y probar:
escribimos el codigo '01' en sle_cod_alumno, le damos click en cb_cargar_foto y seleccionamos el archivo que se va a guardar en la DB. Repetimos este paso para los demas codigos '02' y '03'. Luego, probamos el boton cb_ver_foto, para cada codigo.


long ll_numinforme
blob lblb_fitxer,lbl_temp
Long ll_file

Guardar BLOB (PDF)

//Guardar el PDF al registre de l'informe
ll_file = FileOpen(is_directori+ls_nomfitxer, StreamMode!)
Do while FileRead(ll_file,lbl_temp)>0
lblb_fitxer +=lbl_temp
Loop
FileClose(ll_file)

UPDATEBLOB Informes SET DocumentPdf=:lblb_fitxer WHERE NumInforme=:ll_NUMINFORME USING trans_1 ;
IF trans_1.sqlcode=0 THEN
COMMIT USING trans_1 ;
END IF

Espero que te sirva...
Saludos desde Maracay, Venezuela.
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

RE:Almacenar Imagenes En ASA

Publicado por jag (20 intervenciones) el 30/11/2010 18:27:26
he estado probando con base de datos sql, no se guarda hat que hacer algun cambio, pero la ver la foto si se funciona.

saludos
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