Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/03/2011, 17:19
Avatar de xdrtas
xdrtas
 
Fecha de Ingreso: junio-2008
Ubicación: Venezuela
Mensajes: 97
Antigüedad: 15 años, 10 meses
Puntos: 13
De acuerdo Respuesta: recibir variables externas a pltcl

Cita:
Iniciado por cacr Ver Mensaje
Saludos

¿es posible que una función en pltcl reciba una variable de php?
Hola cacr, por supuesto que es factible, te paso un ejemplo:
  1. Función pl/Tcl
    Código tcl:
    Ver original
    1. CREATE OR REPLACE FUNCTION tcl_max(integer, integer)
    2.   RETURNS integer AS
    3. $BODY$
    4.     if {[argisnull 1]} {
    5.         if {[argisnull 2]} { return_null }
    6.         return $2
    7.     }
    8.     if {[argisnull 2]} { return $1 }
    9.     if {$1 > $2} {return $1}
    10.     return $2
    11. $BODY$
    12.   LANGUAGE pltcl VOLATILE
    13.   COST 100;
    14. ALTER FUNCTION tcl_max(integer, integer) OWNER TO postgres;
    Esta función lo que hace es comprobar que número es mayor, como puedes ver recibe dos enteros.
  2. Código PHP:
    Código PHP:
    Ver original
    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    2. <html>
    3.     <head>
    4.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    5.         <title></title>
    6.     </head>
    7.     <body>
    8.         <?php
    9.         // put your code here
    10.         $conn = pg_connect("host=localhost port=5432 dbname=prueba user=tuUsuario password=tuContraseña");
    11.         $var1 = 40; //Parámetro uno.
    12.         $var2 = 30; //Parámetro dos.
    13.         if($conn)
    14.         {
    15.             $qry = pg_query($conn, "select tcl_max(".$var1.",".$var2.");");
    16.             if($qry)
    17.             {
    18.                 while($elementos = pg_fetch_array($qry))
    19.                     echo "<h1>".$elementos[0]."</h1>";
    20.             }
    21.         }
    22.         ?>
    23.     </body>
    24. </html>

En la base de datos "prueba" he creado la función tcl_max que lo saqué de la siguiente página: http://www.pgadmin.org/docs/1.6/pg/pltcl-functions.html.
En PHP establezco la conexión a la base de datos , ejecuto la consulta pasando los valores $val1 y $val2 a la función pl/tcl, que me traiga el resultado y lo muestre en la página.

Me faltó cerrar la conexión y liberar la query, pero eso estoy seguro que lo sabes hacer, sino, me avisas y lo publico, no lo hice por vago

Un cordial saludo.
__________________
¿Cuál es el mejor lenguaje para programar?
Aquel lenguaje por el cual te paguen más.
[--::xdrtas.coolpage.biz::--]
[---:::xdrtas:::---]