Programación General > Power Builder

 Creacion De Tablas Temporales

(1/2) > >>

juan_0986:
buenas noches que tal sr F_tanori, necesito jalar datos de una tabla plan_ctas hecha en acces, para esto dependiendo el año puedo obtener datos de plan_ctas2007, plan_ctas2008,etc; para esto en el sql creo el sgt procedimiento almacenado

CREATE PROCEDURE plan_ctas @numcta varchar(15),@nomcta varchar(35)
AS
create table #planctas(
   num_cta varchar(15),
   nom_cta varchar(35))
insert into #planctas values(@numcta,@nomcta)
select * from #planctas

lo que estoy haciendo es crearme una tabla temporal #planctas donde cargare lo datos de la tabla que se encuentra en acces; despues de crear la tabla hago la inserccion de registros, y ademas debe devolverme el select de la tabla temporal para almacenarlo en un datawindows en el power builder, claro que ese datawindows hace referencia a mi store procedure; hasta aqui esta todo bien el proceso corre perfectamente

ahora en el power builder lo primero que hice fue crearme un cursor para seleccionar el num_cta y el nom_cta de la tabla en acces, la tabla del acces que almacena el plan de cuentas del 2007 es "enct0107"

declare cur cursor for select num_cta,nom_cta from enct0107 where len(num_cta)=7 order by num_cta
using trans2;
open cur;
fetch cur into :nucta,:nocta;
do until trans2.sqlcode=100
   /*aqui estoy declarando el procedimiento que cree en el sql*/
   DECLARE cargar_ctas PROCEDURE FOR plan_ctas     @numcta=:nucta,@nomcta=:nocta;
   EXECUTE cargar_ctas;
   
   fetch cur into :nucta,:nocta;
loop
close cur;

bueno pero cuando hjago el retrieve en mi datawindows solo me devulve un registro; cuando la tabla en acces tiene muchos mas, bueno no se que estare haciendo mal o cual cree que pueda ser mi error; espero pueda ayudarme

juan_0986:
Ho hay ningun forista que tenga una idea de como puedo resolver el problema?? o acaso no me explico bien?? espero puedan ayudarme!!!

F_Tanori:
Hola,


Al menos yo no he entendido lo que deseas hacer

deseas pasar una tabla de access a Sql server?



Saludos

juan_0986:
bueno gracias por responder; lo que yo deseo ex extarer datos de una tabla de access desde el`power builder, pero recien cuando ejecuto mi aplicacion sabre de que tabla los quiero extraer; por eso no puedo hacer un select de esta manera:

select * from plan_ctas_2007 ;

por que recien cuado el usuario ingresa sabre si quiero de la tabla plan_ctas_2007 o  plan_ctas_2008 o plan_ctas_2009

ahora si me dejo entender??, esto lo puedo hacer con un choose case de esra forma
choose case año_act
 case 2007
  select * from plan_ctas_2007
 case 2008
  select * from plan_ctas_2008
end choose
y asi lo podria hacer pero tendria que aumentar un case x cada año ya que esas tablan recien se cream al iniciar el año

bueno espero me haya entendido y pueda ayudarme

F_Tanori:
Bueno puedes hacer varias cosas

1 - Crear un Datawindow o un DataStore y utilizar el metodo Create y crearlo apartir de una cadena don almacenes tu Sentencia SQL
aqui hay un ejemplo (http://www.mtbase.com/foros/respuestas. ... werBuilder ), pero en la ayuda de PB viene muy claro

2- Puedes utilizar SQL Dinamico con el objeto SQLSA, para ejecutar SQL como una cadena
http://foros.solocodigo.com/index.php?showtopic=29988

3- Incluso puedes Ejecutar procedimientos Almacenados de ser necesario
http://foros.solocodigo.com/index.php?showtopic=32306
http://foros.solocodigo.com/index.php?showtopic=29987
http://foros.solocodigo.com/index.php?showtopic=9965

4-  Puedes tambien ejecutar SQL en cadenas con Execute Immeditate
http://foros.solocodigo.com/index.php?showtopic=5012
http://www.mtbase.com/foros/respuestas.jsp...ro=PowerBuilder

5- Crear tablas vinculadas de SQL server en Access y manipularlas como si estuvieran en access, para hacer los traspasos de Base a base

Espero que algo de esto te sirva

Saludos

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa