PERLSCRIPT UNIDAD 5: INTRODUCION A LAS BASES DE DATOS

TEMA 11: OPERACIONES CON CAMPOS

Este es tambien un caso comun con elementos de una tabla sin embargo es tambien facil de resolver.

Es necesario recordar primero algunas cosas elementales:

1.- Recordar que el numero de columna en una tabla empieza en 0 esto es que para realizar alguna operacion con ejemplo la columna edad del ejemplo que estamos siguiendo, su numero de columna es la 2.

2.- La operacion que se plantee se tendra que hacer sobre el renglon activo de la tabla, recordar que existe un apuntador interno que nos permite movernos o circular dentro de la tabla.

3.- Tambien recordar que el renglon 0, solo tiene informacion no datos, asi que no intenten realizar operaciones con alguna columna, cuando el apuntador se encuentra en este renglon, generalmente en cuanto se abre la tabla.

4.- Para realizar aritmetica con alguna columna, se tendra que usar una variable temporal como lo muestra el ejemplo y la propiedad value de fields

5.- En el ejemplo anterior solo se realizara la operacion en el renglon activo de la tabla, no olvidar realizar un un update para que la nueva informacion se actualize en disco.

6.- Si se quiere realizar una misma operacion con todos los renglones de la tabla en disco, solo usar un while para circular por toda la tabla.

El siguiente programa, pide la clave, la localizamos en el recordset y le aumentamos 10 anos a la edad que este en esa clave o renglon.

Prog19.html

<HTML> <P> FORMA HTML PROG 19</P>
<FORM ACTION=HTTP://PROGRAMACIONFACIL.COM:4080/tusitio/PROG19.ASP METHOD=POST>
CLAVE<INPUT TYPE=TEXT NAME=clave><BR>
<INPUT TYPE=SUBMIT VALUE=buscar>
</FORM> </HTML>

prog19.asp

<% @LANGUAGE = PerlScript %>
<%
# creando objetos conecciones y recordset de ado
$coneccion = $Server->CreateObject('ADODB.Connection');
$driver='Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:\progfacil\lauro\mibase.mdb';
$coneccion->Open($driver);
$Rs=$Server->CreateObject('ADODB.RecordSet');
$Rs->Open('mitabla', $coneccion, 2, 2);
# cargar clave a buscar
$clave=$Request->Form('clave')->item;
# usando propiedad filter, para buscar
$Rs->{'Filter'} = "clave = $clave ";
if($Rs->EOF) { $Response->Write(" clave inexistente"); return; };
# ya estamos en renglon apropiado, usar value de fields para hacer aritmetica
# en este ejemplo se suma diez a columna edad la 2
# primero cargar una variable temporal
$alfa=$Rs->Fields(2)->{value};
# realizar aritmetica con dicha variable
$alfa=$alfa+10;
# cargar nuevo valor en columna apropiada
$Rs->Fields(2)->{value}=$alfa;
# actualizar el registro o renglon
$Rs->Update();
$Response->Write('OPERACION REALIZADA BEEEP');
# cerrar y liberar recordset y coneccion
$Rs->Close;
$coneccion->Close;
undef $Rs;
undef $conneccion;
%>

nota: analizar los renglones donde se realiza la operacion aritmetica, y mucha suerte.

Tabla original prog15.asp

image175.jpg

Usando prog19.asp para aumentarle 10 anos al perico:

image176.jpg

Tabla actualizada prog15.asp

image177.jpg

Pobre periquito ya se hizo viejo.

problema sugerido:

1.- construir una tabla en microsoft access que traiga matricula, nombre, calif1, calif2, calif3 y promedio cargar en access unos 5 renglones de alumnos no cargar promedio, el promedio lo deberan calcular y cargar con un asp.

Politica de Privacidad