RESPUESTA A LA PREGUNTA 8406 - POWER BUILDER Hola Jaime: Si quieres utilizar datawindows con Store Procedure (SP), tiene primero que crear la SP, esto lo haces a través del editor del power que es un icono con una base de datos con un lápiz. Te adjunto un archivo con un programa de SP, este mismo programa lo puede llamar desde el editor del power las SP quedan con extensión SQL, bien para comenzar debes poner la línea de comando: create PROCEDURE NOMBRE_DEL_PROCEDIMIENTO AS A esta línea se pueden incorporar variable de entrada y salida, como por ejemplo pasar un parámetro para ejecutar el Select, esta variables se crean entre el create y el AS entre paréntesis ejemplo: create PROCEDURE NOMBRE_DEL_PROCEDIMIENTO ( @num_rut NUMERIC(10,0) , @dv_rut CHAR(1)) AS Cuando se ejecuta este SP estas variables son como los argumentos en el datawindows, Bueno como te has dado cuenta antes de la variable esta el @ (arroba) esto permite distinguir las variables de las campos de un select obligatoriamente las variables se define de esta manera, ahora si quiere utilizar variables dentro de la SP se definen con el comando DECLARE y se colocan posterior al AS de la creación; create PROCEDURE NOMBRE_DEL_PROCEDIMIENTO AS DECLARE @rut_cliente NUMERIC(10), @dv_rut CHAR(1), @nombres CHAR(30), @apaterno CHAR(15), Si requiere utilizar un tabla temporal también se define posterior al AS: create PROCEDURE NOMBRE_DEL_PROCEDIMIENTO AS create table #lista_clientes ( rut_cliente numeric(10) NULL, nombres char(30) NULL, apaterno char(15) NULL, amaterno char(15) NULL, razon_social char(40) NULL) Esta se utiliza cuando no vas a sacar los datos en forma directa a través de un select, sino están sujetos a procesos previos y necesitas realizar cálculos o combinarlos con otros datos, en esta tabla puede hacer insert, delete, update, select, igual como si trabajaras con un tabla física, (esta tabla es lógica no se define un tu base de datos), para poder utilizar esta tablas temporales en el programa antes de realizar un retrieve al datawindows y posterior al SetTransobject() debe poner : Conexion.Autocommit = true Conexión = SQLCA o la que definas para la conexión Bien siguiendo con la SP, en el puedes realizar select simples o combinados, no es necesario crear tablas temporales para realizar un select, puedes hacerlo directamente, puedes hacer update, cálculos, etc, para terminar la SP debe tener un ; (punto y como), ojo es el único que debe ir en la SP, para ejecutar y validar la SP presiona el icono con una flecha verde de la barra del editor. Si hay algún problema en la SP te lo va a indicar, muchas veces te da el error en la última línea de comando, pero ten cuidado por lo general es más arriba. Bien supongamos que terminaste la SP y se cargo en tu base de datos , ahora al crear un datawindows elige la opción Store Procedure (en data Source no en estilo) y te mostrara una lista con todos las SP creadas, basta con seleccionar una de ellas, una vez hecho esto te pedirá que definas los campos de salida, o los datos que te entregara la SP, es igual que cuando uno crear un datawindows External. El manejo de esta datawindows es igual que los creados con select. Espero poder haber aclarado tu duda, te adjunto un ejemplo simple de una Store Procedure Edgardo Chamorro echamorro@databusiness.cl