RAD

Seguramente muchos de nosotros hemos oido hablar de este tema,pero que es RAD(Rapid Application Development),Desarrollo Rápido de APlicaciones o Desarrollo Agil de Software (Metodologías Livianas). Bueno es un paradigma que aparece haciendo frente a las metodologías tradicionales(“pesadas”), que se caracterizan por hacer uso de procesos basados en la planeación exhaustiva del problema esperando que el resultado en cada proceso sea determinante y predecible. La experiencia nos demuestra que vivimos en continuos cambios, y que como consecuencia de las caracaterísticas del software los resultados de los procesos no son siempre predecibles y otra cosa muy importantes es que se hace muy dificil predecir los resultados desde el comienzo del proyecto. Las metodologías ágiles por lo contrario basan sus fundamentos en la adaptabilidad de los procesos mediante el uso de ciertas prácticas como las entregas funcionales,documentar lo necesario, se considera que lo más importante es el código antes que documentar. Las metodologías ágiles no estan en contra, como se endiende muchas veces,de las metodologías tradicionales más bien por el contrario promueven por medio de sus prácticas la formalización de procesos adaptables. De ahi que se puede afirmar que las metodologías ágiles son adaptables en lugar de predictivos,estan orientadas a la gente antes que los procesos. dentro de estas medotodologías podemos mencionar:

  1. XP Programación Extrema
  2. Scrum
  3. Crystal Evolutionary Project Magnagament (EVO)
  4. Fature Driven Development (FDD)

Entre otros siendo la más popular y usada la primera propuesta y fundamentada por Kent Beck.

Dejar un comentario »

Llamar Store Procedure en MYSQL desde PHP

Bueno de hace tiempo atras tuve esta inquietud es algo básico para empezar, antes debo dar gracias a Razo Duke12
que anteriormete ya se habia encaminado con esto de como acceder a store procedures en mysql desde php, cito el post,Mysqli – Mysql – PHP – Sto
red Procedures. en lo particular la idea era acceder sin usar Mysqli y aprovechar las bondades de ADODB(como capa de abstracción de datos).Gracias a Duke12 que me brindo su ayuda. Luego de esta corta introducción describimos lo hasta ahora logrado.

1. descargar ADODB copiar la carpeta dentro el direcctorio que contiene nuestro proyeto

para los ubunteros : ~$ sudo mv adodb.xxx /opt/lampp/htdocs/poo_php (este path es por que configure php,apache,mysql con XAMMP en este enlace se detalla su configuración en ubuntu ).

2. Creamos la base de datos ejemplo en mysql y dentro de ella la tabla EMPLEADOS y luego el store procedure

– Estructura de tabla para la tabla `empleados`

CREATE TABLE `empleados` (

`id_empleado` int(5) NOT NULL auto_increment,

`nombre` varchar(200) collate latin1_general_ci NOT NULL,

`direccion` varchar(200) collate latin1_general_ci NOT NULL,

`edad` int(5) NOT NULL,

`email` varchar(200) collate latin1_general_ci NOT NULL,

PRIMARY KEY (`id_empleado`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=4 ;

– Volcar la base de datos para la tabla `empleados`

INSERT INTO `empleados` VALUES (1, ‘Isabel’, ‘tucuman 565′, 2, ‘isabel_vr@hotmail.com’);

INSERT INTO `empleados` VALUES (2, ‘Olga’, ‘tucuman 565′, 28, ‘olgars_2@hotmail.com’);

INSERT INTO `empleados` VALUES (3, ‘Kathy’, ‘tucuman 565′, 7, ‘kathya@hotmail.com’);

INSERT INTO `empleados` VALUES (4, ‘Gilmer’, ‘tucuman 565′, 30, ‘gilmerv@gmail.com’);

– ——————————————————–

creamos el store procedure PRO_LEE_EMPLEADOS()

DELIMITER $$

DROP PROCEDURE IF EXISTS `ejemplo`.`PRO_LEE_EMPLEADOS`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `PRO_LEE_EMPLEADOS`()
BEGIN
    select * from empleados;
    END$$

DELIMITER ;

3. creamos la clase para la conexión (class BaseDatos):cls_conexionDB.php

<?php

include(‘adodb/adodb.inc.php’);
class BaseDatos
{
var $row;

var $conn;
var $dbdriver;
var $servidor;
var $usuario;
var $contraseña;
var $database;
var $DB;

function baseDatos(){
$this->dbdriver=’mysql’;

$this->servidor = “localhost”;
$this->usuario = “root”;
$this->pass = “”;
$this->database= “ejemplo”;
$this->conn = $this->conectar()

;

}

function conectar(){

$dsn = “$this->dbdriver://$this->usuario:$this->pass@$this->servidor/$this->database?clientflags=65536″;
$this->DB = NewADOConnection($dsn);
if ( !$this->DB ) die(“No se establecio la conexion – $dsn”);

$this->DB->SetFetchMode(ADODB_FETCH_ASSOC);
return $this->DB;

}
function consulta($sql1)
{

$rs = $this->conn->Execute($sql1);/*ejecutamos el query*/

return $rs;

}

function Execute($query=’select now()’){
$this->row = $this->DB->Execute($query) or die ($this->DB->ErrorMsg());
}
function FetchAll($query){

$this->Execute($query);
while(!$this->row->EOF){
$temp[] = $this->row->fields;
$this->row->MoveNext();

$this->bbdd_desc();

}
return $temp;
}

function resultado($rs)
{
if ($rs)
while ($row = $rs->GetRows()) /*armamos el arreglo con los datos obtenidos de la consulta*/
{
return $row;
}
}

function numeroFilas($rs)
{
$cant = $rs->RecordCount();
return $cant;
}

function numeroColumnas

($rs)
{

$nuncolum=$rs->FieldCount();
return $nuncolum;
}

function nombreCampo($table)
{

return $this->conn->MetaColumnNames($table);
}

public function bbdd_desc()
{
return $this->DB->Close();

}

}

?>

4. por último creamos el script para probar nuestra clase test_conexionDB.php

<?
include ‘cls_conexionDB.php’; //importo la clase
$b = new BaseDato

s();

$sql1 = ‘SELECT * FR

OM empleados’;
echo $sql1;

$r = $b->consulta($sql1);

$canti= $b->nu

meroFilas($r);
$result= $b->resultado($r);
$tabla=’empleados’;
$nombrecampos= $b->nombreCampo($tabla);

$cantcol=$b->numeroColumnas($r);
echo “<p><b>RESUL

TADO ANTES DE USAR STORE PROCEDURE<b></P>”;
echo “<table border=0 cellspacing=2 cellpadding=2 style=’border:1px solid red; background-color:transparent’>”;
echo “<tr style=’color:#B5360B’ >”;
foreach ($nombreca

mpos as $valor){
print “<td><b>”. strtoupper($valor) . “</b></td>”;
}

echo “</tr>”;
foreach ($result as $valor){
echo “<tr>”;
print “<td>”. $valo

r['id_empleado'] . “</td>”;
print “<td>”. $valor['nombre'] . “</td>”;
print “<td>”. $valor['direccion'] . “</td>”;
print “<td>”. $valor['edad'] . “</td>”;
print “<td>”. $

valor['email'] . “</td>”;
echo “</tr>”;

}
echo “</table><br>”;

$SQL=”CALL PRO_LEE_EMPLEADOS()”;

echo $SQL;

$rs=$b->FetchAll($SQL);

echo “<p><b>RESULTADO USANDO STORE PROCEDURE</b></P>”;

echo “<table border=

0 cellspacing=2 cellpadding=2 style=’border:1px solid blue; background-color:transparent’><br>”;
?>
<tr align=”center” style=’color:blue’>
<td><b>ID EMPLEADO</b></td>
<td><b>NOMBRE <

/b></td>
<td><b>DIRECCION </b></td>
<td ><b>EDAD </b></td>
<td><b>EMAIL </b

></td>
</tr>
<?
foreach ($rs as $valor_sp){
echo “<tr >”;

print “<td>”.$valor_sp['id_empleado'] . “</td>”;
print “<td>”. $valor_sp['nombre'] . “</td>”;
print “<td>”. $valor

_sp['direccion'] . “</td>”;
print “<td>”. $valor_sp['edad'] . “</td>”;
print “<td>”. $valor_sp['email'] . “</td>”;

echo “</tr>”;

}

echo “</table>”;

echo “MAS CONSULTAS”

$consultaAdd1 = new BaseDatos();

$SQL=”CALL PRO_LEE_EMPLEADOS()”;
$rs1=$consultaAdd1->FetchAll($SQL);

echo “<pre>”;
print_r($rs1);
echo “<pre><br/>”;

$consultaAdd2 = new BaseDatos();

$SQL=”CALL PRO_LEE_EMPLEADOS()”;
$rs2=$consultaAdd2->FetchAll($SQL);

echo “<pre>”;
print_r($rs2);
echo “<pre><br/>”;

?>

capturas de pantalla ;

tabla_empleados2.pngllamada-a-sp.pngresultado.png

Comentarios (7) »

¡Hola, mundo!

Mi primer post en wordpress

Comentarios (1) »