Programación General > Power Builder

 Power Builder 9.0 y Mysql 5.0

(1/2) > >>

juan_0986:
Buenas tardes tengo una consulta.

Estoy usando base de datos Mysql para realizar una aplicación con Power Builder. La conexion la estoy realizando via odbc por que no tiene conexion nativa con mysql.

Ahora tengo un store procedure creado el cual termina en un select de una tabla temporal y necesito recuperar este store en un datawindow, como cuando recuperamos un store hecho en sql. Bueno el problema radica alli ya que el power no me permite recuperar stores en datawindows si la conexion no es nativa, ( para despejar esta duda hize una conexion via obdc con el sql y no me recuperar los stores que tengo almacenados en datawindows algo que realiza sin ningun problema si hago una conewxion nativa)

Bueno la consulta es:
1) Hay alguna forma de recuperar store procedures en datawindows si la conexion es via odbc? quizas algun parche para el driver obdc que es el obdc mysql 3.5.1? o quizas otra version del power builder
2) Hay alguna version del power builder que tenga conexion nativa con el mysql?

Si alguien tiene alguna idea por mas simple que fuera espero la comparta, ya que aunque casi nunca me han dado una respuesta que solucione todo el problema, pues de las aportaciones que pusieron pude llegar a resolverlos.

Slds.

juan_0986:
Nadie tiene una idea, acaso nadie ha tenido la necesidad de trabajar en una data libre!!!

F_Tanori:
Hola que tal Juan, no logro comprender tu duda, puedes mostrar algo de codigo de lo que haz intentado, para poder intentar ayudarte yo tengo power builder 8 y 10 y mysql 5.0 y con el mismo driver odbc (3.51), solo que no capto bien lo que intentas, tambien puedes colocar un ejemplo del SP de mysql, he utilizado mysql sin problemas con pb 10 (salvo que funciona como ambiente desconectado los dw)

Pero me gustaria poder ayudar si es posible.


Saludos

juan_0986:
Gracias F_Tanori por el interes, este es un store de mysql muy simple:

DELIMITER //
CREATE procedure SP_SELECT_TABLA (tabla varchar(50),c_cod varchar(50),c_des varchar(50),condicion text)
BEGIN
create temporary table temp_tablas(
  cod varchar(5),
  des varchar(100));

SET @query = CONCAT('INSERT INTO temp_tablas(cod,des) SELECT ',c_cod,',',c_des,' FROM ',
                    tabla,' WHERE ',condicion);
PREPARE running FROM @query;
EXECUTE running;
DEALLOCATE PREPARE running;

select cod,des from temp_tablas;
END //

Lo que hace este store es crearme una tabla temporal en la cual voy a mostrar datos de varias tablas unicamente con 2 campos, el nombre de los campos, el nombre de la tabla y la condicion para el query los envio mediante parametros:

call SP_SELECT_TABLA ('tb_documentos','cod_doc','des_doc','cod_doc<>''''');

Este store termina en un select de los campos de la tabla temporal creada, algo parecido como se trabaja en sql., si lo ejecutas en el mysql, podras darte cuenta de que te devolvera los datos de la tabla tb_documentos (claro si esa tabla existe)
bueno ahora lo que deseo es recuperar este store en un datawindow en power builder.

1) En el power builder llamo un datawindow de tipo store procedure, pero alli esta el porblema es que me rebota cuando quiero crear ese datawindow, el mensaje de error: "mysql odbc 3.5.1 driver, incorrect number of arguments for procedure bd_tramite.sp_select_tabla; exected 4,got 0"

Para despejar mis dudas lo que hize fue lo mismo en sql server 2000, intente recueprar datos mediante un datawindow que almacena un store, y la conexion a la data lo hize via odbc, y tb alli reboto, no me deja recuperar datawindows que almacenan store procedure, solo cuando la conexion es nativa

Mis dudas son si hay alguna forma de recuperar datawindows que almacenan stores, mediante conexion odbc, quizas algun parche para el power, o para el odbc de mysql, o quizas otra version, bueno espero puedas ayudarme.

Gracias de antemano.

F_Tanori:
Bueno dejame decirte que he probado tu procedimiento

EN:

MySQL 5.0.45-community-nt
PowerBuilder 8.0.1
PowerBuilder 10.0 Build 4510
Driver ODBC MySQL 3.51

y al parecer el problema son los parametros, prueba modificando el Source del Dw agregandolde manualmente los pametros


--- Código: SQL ---PROCEDURE="1 execute root.SP_SELECT_TABLA;0 @tabla=:param1,@c_cod=:param2,@c_des,@condicion" arguments=(("param1", string),("param2", string),("param3", string),("param4", string) ) ) 
despues se los pasas al retrieve


--- Código: Visual Basic --- dw_sp.retrieve('tb_documentos','cod_doc','des_doc','cod_doc<>'''''); 
Saludos

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa