Power Builder - Consulta de Conexión a SQL 2005 con PB

 
Vista:
sin imagen de perfil

Consulta de Conexión a SQL 2005 con PB

Publicado por Frank (50 intervenciones) el 20/03/2013 15:22:46
Buen Día con todos, aquí les presento mi consulta:

Resulta que estoy intentando mostrar una imagen (ya guardada en DB) dentro de un DW, mediante un control "large binary/text database OLE object"(puesto que en publicaciones anteriores dan como respuesta al mostrar imagen en un DW), pero para mi caso, al momento de ejecutar la aplicacion, me sale este mensaje:



el tipo de conexión que estamos utilizando es ADO.NET y el codigo es el siguiente:

// Profile prueba
SQLCA.DBMS = "ADO.Net"
SQLCA.LogPass = "sa"
SQLCA.LogId = "sa"
SQLCA.AutoCommit = False
SQLCA.DBParm = "Namespace='System.Data.OleDb',Provider='SQLOLEDB',DataSource='localhost',Database='Prueba'"

connect using sqlca;
if sqlca.sqlcode = 0 then
//messagebox('Conectarse a una base de datos','Conexión satisfactoria')
open(w_personal)
//open(w_pruebaper)
//open(w_pruebaconbd)
//open(w_per)
else
messagebox('conectarse a una base de datos','error de conexión')
end if

por cierto me estoy conectado en red al servidor de base de datos, quizás sea un problema de conexión el mensaje arriba adjunto, espero me puedan ayudar con este caso, ante todo 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
sin imagen de perfil

Consulta de Conexión a SQL 2005 con PB

Publicado por Beto (71 intervenciones) el 25/03/2013 17:05:33
Haber si te sirve este tipo de conexion

http://desarrolladorpowerbuilder.blogspot.com/search/label/Conexi%C3%B3n
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
sin imagen de perfil

Consulta de Conexión a SQL 2005 con PB

Publicado por Frank (50 intervenciones) el 30/03/2013 14:03:37
También he intentado por ese tipo de conexión, pero al momento de desplegar las tablas en PB, no me muestra nada, es por eso que me quede con el tipo de conexión ADO .NET
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
sin imagen de perfil

Solucionado

Publicado por Frank (50 intervenciones) el 02/04/2013 19:01:57
Muchas gracias amigos, ya encontré una solución.

Saludos,


Frank.
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
Imágen de perfil de xve

Solucionado

Publicado por xve (18 intervenciones) el 02/04/2013 20:03:29
Hola Frank, nos puedes comentar como lo has resuelto?
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
sin imagen de perfil

Solución

Publicado por Frank (50 intervenciones) el 03/04/2013 22:51:24
Bueno, la solución al error de Datawindows aun sigue ahi, pero he logrado mostrar lo que son las imágenes, sin el objeto "OLE database" y bueno el código sería este:
(lo que realmente hago es la descarga de las imágenes desde la BD a archivos temporales)

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
30
31
32
33
34
35
36
37
38
39
/*hago retrieve al DW
donde solo hago el select de los datos incluyendo el campo FOTO varchar(255) donde en realidad no guardo nada,
esta ahí por defecto del sistema que tenemos, y bueno a este campo le colocamos la propiedad Display as Picture*/
dw_1.retrieve( )
//Declaramos variables a utilizar
int li_cantidad, i
string ls_dni, ls_nombre, ls_path
blob lb_foto
int li_file
 
//obtenemos cantidad de registros para hacer un recorrido
li_cantidad = dw_1.rowcount( )
 
//empezamos el recorrido
for i=1 to li_cantidad
	//obtenemos el PK ficha para hacer la consulta
	ls_dni = dw_1.getitemstring( i, <nombre campo>)
        //le damos el nombre a nuestro temporal en este caso cada temporal tendra el nombre de su ficha
	ls_nombre = ls_dni+".jpg"
        //realizamos la consulta de la foto cabe indicar que cree otra tabla (donde tengo el blob foto) y la relacione con la tabla de mis trabajadores
	selectblob foto into :lb_foto
                from tabla_foto
              where dni = :ls_dni;
	if sqlca.sqlcode = -1 then
		messagebox('AVISO',"Error al Obtener Imagen")
		return
	end if
        //asignamos ruta de carpeta temporal y lo creamos
	ls_path = "C:\temp_fotos\"
	createdirectory(ls_path)
        //abrimos el temporal
	li_file = fileopen(ls_path + ls_nombre, StreamMode!, Write!, Shared!, Replace!)
        //lo creamos
	FileWriteEx(li_file, lb_foto)
        //cerramos temporal
	FileClose(li_file)
        //asignamos el temporal en el campo de la foto
	dw_1.object.foto[i] = ls_path + ls_nombre
next


Bueno, esa es una de las soluciones que encontré, en sí el código no esta completo, porque no me dejan llevar la fuente a casa xD pero aún asi funciona, solo falta darle una mejor presentación en caso no exista la foto y darle una foto standart.

La otra solución que encontré fue creando un objeto Picture t de la misma manera asignar temporales, pero me hice un mundo al momento de asignarle los blob, aun me falta solucionar eso pero con lo anterior me solucionó el problema hasta el momento. Espero les sea de ayuda.

Saludos,


Frank P.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de xve

Solución

Publicado por xve (18 intervenciones) el 04/04/2013 07:57:19
Muchas gracias Frank!!!
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

Solución

Publicado por Willy (3 intervenciones) el 30/07/2016 06:34:01
Chochera, No uses el : create large / binay Usa el : inkPictureObject suerte!

Saludos desde Perú,

Willy OC.
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