LeerStd: La lectura de registros
Cuando se está usando el programa versup.php o verextendido.php, se tiene acceso a la función LeerStd, que permite leer una tabla en particular. Debe utilizarse siempre este mecanismo ya que es el que asegura que la persona esté autorizada a leer la tabla, puesto que toma en cuenta las restricciones de su perfil correspondiente. La forma de invocar esta rutina es la siguiente:
$CantReg=LeerStd($Resultado,$Tabla,$Que,$Condicion,$Orden,$Lim1,$Lim2,$Opciones);
Esta rutina devuelve (En $CantReg) la cantidad de registros conseguidos y Los otros parámetros a usar son los siguientes:
| VARIABLE | USO |
|---|---|
| Resultado | Parámetro de SALIDA. Contiene el resultado de la lectura. Es a esta variable que se le hace posteriormente un “mysql_fetch_assoc”, para leer cada una de las filas. |
| Tabla | El nombre completo de la tabla a ser leída (Ej. 223PER), sin embargo, cuando se tiene cookie, se puede poner el código de 3 letras solamente. |
| Que | Nombre interno de los campos a leer (Ej: PERNombre). Si se desean todos los campos escribir: “*” |
| Condicion | Condiciones que van en el “WHERE” de la cláusula SELECT. Si se desean todos los registros pasar: “”. |
| Orden | Ordenamiento requerido. Ej: PERLinea1 ASC, PERCant2 DESC |
| Lim1 | Desde que registro se debe leer |
| Lim2 | Número máximo de registros a leer |
| Opciones | Normalmente el programa aborta si falla la instrucción de lectura y escribe un mensaje de error. Sin embargo se pueden escribir, separados por coma, uno o varios de los parámetros siguientes: + ECHO: Para hacer echo + NOABORTAR: Para que no termine en casa de error + NOLEER: Para que no lea (se usa en pruebas) + NOMENSAJE: Para que no escriba el mensaje de error Por ejemplo si uno no desea que el programa se aborte, ni que de un mensaje de error se puede escribir: “NOABORTAR,NOMENSAJE” Si falla la instrucción de lectura, sencillamente se recibir el valor 0, como resultado de la función. Si, en cambio se desea depurar el programa y que escriba la instrucción de lectura, se puede escribir: ”ECHO”. |
Todos los parámetros son obligatorios. El primero debe ser una variable, ya que recibe los resultados de la lectrua, los demás pueden ser un literal o una variable.
Ejemplo
Vamos a leer todos los registros en la tabla 000AR1 que pertenezcan al agente número 5
$Cant1=LeerStd($Lectura1,"000AR1","*","AR1CodAgente='5'","","","","");
if ($Cant1==0) die("<p class=mensaje>No se consiguió el sitio</p>");
echo "<h1>SITIOS CONSEGUIDOS</h1>";
for ($i=0; $i<$Cant1; $i++){
$row1= mysql_fetch_assoc($Lectura1);
echo "$row1[AR1Codigo]-$row1[AR1Nombre]</br>";
};
ObtenerUno: Obtención de un campo de una tabla
Esta función permite obtener un solo campo de una tabla. Es muy útil cuando se quiere utilizar un campo de una tabla enlazada.
Ubicación
Disponible automáticamente desde programas invocados a través de versup.php, verextendido.php. También está disponible en:
rutinas/utilitiesasesor.php
Parámetros
| PARÁMETRO | USO |
|---|---|
| Tabla | Nombre completo de la tabla a ser leida (Ej. 701PER) |
| Clave | El número del registro a obtener |
| Campo | La variable a obtener (Ej. PERLinea1), si se omite se supone que es XXXNombre (donde XXX es la tabla) |
| Opciones | Las opciones de Lectura Estándar a utilizar. Ver rutina LeerStd. (ECHO,NOABORTAR,NOLEER,NOMENSAJE) |
La función obtiene la variable "Campo", cuyo código es "Clave" en la tabla "Tabla". Como utiliza la rutina LeerStd internamente se pueden utilizar las opciones indicadas en "Opciones" (ECHO, NO ABORTAR...). Si el parámetro "Campo" no se usa (Es decir que se pasa el valor ""), entonces el campo a utilizar es: Nombre.
El valor que devuelve el conseguido. Si no existe el registro, devuelve "---".
Ejemplo de invocación
$NbeEmpresa=ObtenerUno("700AR1",$row4[AR4Enlace1],"","");
o, equivalente:
$NbeEmpresa=ObtenerUno("700AR1",$row4[AR4Enlace1],"AR1Nombre","");
En este ejemplo, se ha leido previamente la tabla AR4 que contiene un enlace hacia la tabla AR1. Se desea obtener el campo Nombre de Empresa que es el campo AR1Nombre. Como el campo que se está buscando es precisamente Nombre, puede ser omitido.
