Juan Carlos y Fernando, muchas gracias por su tiempo, y aplicare la solucion.
Veo que la sentencia que estaba realizando, unicamente estaba utilizando un 
prepare y no en la forma como la envia Juan Carlos.

Gracias nuevamente.
  ----- Original Message ----- 
  From: Juan Carlos Paredes 
  To: forum.help400 
  Sent: Friday, October 02, 2009 2:14 AM
  Subject: RE: Sql embebido


  ¿Has probado a utilizar cursores? Sería algo así:

   

                  Sentencia = 'select sum(' + %trim(fromfld) + ') from ' + 
%trim(fromlib) + '/' + %trim(fromfile);

  c/exec sql

  c+ declare C1 cursor for :Sentencia

  c/end-exec

  c/exec sql

  c+ open C1

  c/end-exec

  c/exec sql

  c+ fetch next from C1 into :Total

  c/end-exec

  c/exec sql

  c+ close C1

  c/end-exec

   

  Saludos.

   

  Juan Carlos.

   

   

  De: Jaime Villa Torres [mailto:[email protected]] 
  Enviado el: viernes, 02 de octubre de 2009 4:05
  Para: forum.help400
  Asunto: Re: Sql embebido

   

  Gracias por el tiempo

   

  El problema se origina en lo siguiente, el programa recibe CUATRO parametros

   

  FROMFILE

  FROMLIB

  FROMFLD

  TOTAL

   

  El programa debe calcular la sumatoria de la columna FROMFLD del archivo 
FROMFILE y biblioteca FROMLIB

   

  La siguiente instruccion sql se ha probado en la anterior version, como en 
free, con sentencia sql o generando la sentencia sql en una variable, y el 
codigo es el siguiente

   

  c/exec sql                         
  c+ select SUM(FROMFLD) into :TOTAL 
  c+ from FROMLIB/FROMFILE                      
  c/end-exec

   

  Lo que requiere es que la anterior sentencia, acepte las variables antes 
mencionadas

   

  Gracias.

    ----- Original Message ----- 

    From: Cristhian Nuñez 

    To: forum.help400 

    Sent: Thursday, October 01, 2009 5:55 PM

    Subject: RE: Sql embebido

     

    Hola Jaime:

     

    Te pego un ejemplo de algo que tengo y funciona sin problema:

     

    Ejemplo 1:

     

    /FREE                                                             
        xxSqlSel = 'SELECT a.nEjer_peri,LEFT(a.cArticulo,'+           
        %CHAR(pnLargoCod1) + '),CASE WHEN ' + %CHAR(piMonedaNac) + '= 
        ' THEN SUM(a.dValor_tot) ELSE SUM(a.mValor_tot) END,' +       
        ' CASE WHEN ' +  %CHAR(piMonedaNac) + '=0 THEN' +             
        ' IFNULL(SUM(d.dValor_vta),0) ELSE' +                         
        ' IFNULL(SUM(d.mValor_vta),0) END' +                          
        ' FROM (((costo_articulo a INNER JOIN articulo b' +           
        ' ON a.cArticulo = b.cArticulo) INNER JOIN cat_articulo c' +  
        ' ON b.cCat_art = c.cCat_art) LEFT OUTER JOIN vta_articulo d' 
        ' ON a.nEjer_peri = d.nEjer_peri AND a.cArticulo = d.cArticul 
        ' WHERE a.nEjer_peri BETWEEN ' + %CHAR(nnEjerPeriIni) +       
        ' AND ' + %CHAR((pnEjercicio * 100) + pnPeriodo) +            
        ' AND c.cClase_art = ''' + pcClaseArt + '''' ;                
    /END-FREE                                                         

     

    Ejemplo 2:

     

     EVAL      xxCampo = 'LEFT(a.cCtaCo,' +        
               pnDigito + ')'                      
                                                   
     EVAL      xSqlSel1 ='SELECT ' + xxCampo + ' AS
               'cCtaCo,a.cUbica_balance,b.xDesc,' +
               'c.xDesc,c.nSecuencia,c.cTipo_ctaco,
               'd.xDesc,SUM(a.mSaldo)' +           
               ' FROM balance a, plan_contable b,' 
               'ubica_balance c, tipo_cta_contable 
               ' WHERE ' + xxCampo + '=b.cCtaCo' + 
               ' AND a.cUbica_balance=c.cUbica_bala
               ' AND c.cTipo_ctaco=d.cTipo_ctaco' +
               ' AND a.nEjercicio=' + pnEjercicio +
               ' AND a.nPeriodo=' + pnPeriodo +    
               ' GROUP BY ' + xxCampo + ',' +      
               'a.cUbica_balance,b.xDesc,c.xDesc,'

                'c.nSecuencia,c.cTipo_ctaco,d.xDesc'
                ' ORDER BY c.nSecuencia,cCtaCo'      

     

    Seria importante que envies el codigo donde armas la sentencia

     

    Saludos.

      -----Mensaje original-----
      De: [email protected] 
[mailto:[email protected]]en nombre de Jaime Villa Torres
      Enviado el: Jueves, 01 de Octubre de 2009 04:13 p.m.
      Para: forum.help400
      Asunto: Re: Sql embebido

      Ya se realizo, en cadena o sentencia por sentencia, teniendo en cuenta el 
PREPARE, pero nada....

        ----- Original Message ----- 

        From: Cristhian Nuñez 

        To: forum.help400 

        Sent: Thursday, October 01, 2009 3:34 PM

        Subject: RE: Sql embebido

         

        Hola Jaime:

         

        Haz probado armar la sentencia como cadena, armandola con las variables 
que mencionas y luego ejecutarla con la sentencia PREPARE. Puedes colocar el 
codigo de lo que intentas hacer.

         

        Saludos.

          -----Mensaje original-----
          De: [email protected] 
[mailto:[email protected]]en nombre de Jaime Villa Torres
          Enviado el: Jueves, 01 de Octubre de 2009 11:55 a.m.
          Para: forum.help400
          Asunto: Sql embebido

          Tengo la siguiente necesidad y le doy por todos los dados pero no 
logro solucionarlo.

          El problema es el siguiente.

           

          Al programa debe ingresar el nombre de una archivo, el nombre del 
campo del mismo, una variable numerica.

          El programa, con el nombre y el nombre del campo debe realizar un 
sql, y calcular el sum(nombre del campo) y ese valor enviarlo en la variable 
numérica.

           

          He realizado la sentencia y tengo dos problemas, uno con la variable 
numerica que dice que no esta definida, y el segundo no me acepta la variable 
nombre del archivo en el FROM. 

           

          Cualquier idea, como siempre bien venida.

           

          Gracias por su tiempo


          -- 
          Este mensaje ha sido analizado por MailScanner 
          en busca de virus y otros contenidos peligrosos, 
          y se considera que está limpio. 
          MailScanner agradece a transtec Computers por su apoyo. 



        __________ Información de ESET NOD32 Antivirus, versión de la base de 
firmas de virus 4474 (20091001) __________

        ESET NOD32 Antivirus ha comprobado este mensaje.

        http://www.eset.com

        -- 
        Este mensaje ha sido analizado por MailScanner 
        en busca de virus y otros contenidos peligrosos, 
        y se considera que está limpio. 
        MailScanner agradece a transtec Computers por su apoyo. 

        __________ Información de ESET Smart Security, versión de la base de 
firmas de virus %s __________

        ESET Smart Security ha comprobado este mensaje.
        http://www.eset.com


------------------------------------------------------------------------

        ____________________________________________________
        © Publicaciones Help400, S.L. - Todos los
        derechos reservados http://www.help400.es
        ----------------------------------------------------
        Para darte de baja visita la siguente URL:
        http://listas.combios.es/mailman/listinfo/forum.help400


        __________ Información de ESET Smart Security, versión de la base de 
firmas de virus %s __________

        ESET Smart Security ha comprobado este mensaje.
        http://www.eset.com


      -- 
      Este mensaje ha sido analizado por MailScanner 
      en busca de virus y otros contenidos peligrosos, 
      y se considera que está limpio. 
      MailScanner agradece a transtec Computers por su apoyo. 


    -- 
    Este mensaje ha sido analizado por MailScanner 
    en busca de virus y otros contenidos peligrosos, 
    y se considera que está limpio. 
    MailScanner agradece a transtec Computers por su apoyo. 

    __________ Información de ESET Smart Security, versión de la base de firmas 
de virus %s __________

    ESET Smart Security ha comprobado este mensaje.
    http://www.eset.com


----------------------------------------------------------------------------

    ____________________________________________________
    © Publicaciones Help400, S.L. - Todos los
    derechos reservados http://www.help400.es
    ----------------------------------------------------
    Para darte de baja visita la siguente URL:
    http://listas.combios.es/mailman/listinfo/forum.help400


    __________ Información de ESET Smart Security, versión de la base de firmas 
de virus %s __________

    ESET Smart Security ha comprobado este mensaje.
    http://www.eset.com

  Se certificó que el correo entrante no contiene virus.
  Comprobada por AVG - www.avg.es
  Versión: 8.5.409 / Base de datos de virus: 270.14.2/2408 - Fecha de la 
versión: 10/01/09 18:23:00



  __________ Información de ESET Smart Security, versión de la base de firmas 
de virus %s __________

  ESET Smart Security ha comprobado este mensaje.
  http://www.eset.com



------------------------------------------------------------------------------


  ____________________________________________________
  © Publicaciones Help400, S.L. - Todos los
  derechos reservados http://www.help400.es
  ----------------------------------------------------
  Para darte de baja visita la siguente URL:
  http://listas.combios.es/mailman/listinfo/forum.help400


  __________ Información de ESET Smart Security, versión de la base de firmas 
de virus %s __________

  ESET Smart Security ha comprobado este mensaje.
  http://www.eset.com
____________________________________________________
© Publicaciones Help400, S.L. - Todos los
derechos reservados http://www.help400.es
----------------------------------------------------
Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400

Responder a