1 00:00:00,000 --> 00:00:03,680 Vale, pues voy a explicar cómo he llevado a cabo la práctica 5. 2 00:00:04,580 --> 00:00:13,800 En primer lugar, tal y como aconsejabas en Aula Virtual, he realizado la consulta para obtener los datos del cliente. 3 00:00:14,580 --> 00:00:19,260 Aquí, bueno, pues he puesto select todo en datos cliente, ¿vale? 4 00:00:19,280 --> 00:00:25,679 Que es una variable que he tenido que declarar para guardar los datos de la consulta. 5 00:00:25,679 --> 00:00:49,659 En este caso, la variable es del tipo de un registro, o sea, una fila de la tabla cliente, ¿vale? Para que guarde todas las columnas. Pero en la consulta solo he guardado aquellos registros en los que el código cliente sea igual que el parámetro que se le pasa al procedimiento, ¿vale? Que está aquí, que eso lo explico ahora. 6 00:00:49,659 --> 00:00:56,960 después imprimo los datos de la consulta que se piden en el ejercicio 7 00:00:56,960 --> 00:01:02,000 que son el código del cliente, el nombre del cliente, la ciudad y el país 8 00:01:06,000 --> 00:01:10,379 después escribo como tal la cabecera del procedimiento 9 00:01:10,379 --> 00:01:13,939 que en este caso lo he llamado mostrar datos cliente 10 00:01:13,939 --> 00:01:17,159 y le paso por parámetro aquí en el parámetro actual 11 00:01:17,159 --> 00:01:24,060 un valor que va a ser, bueno, la variable la he llamado cCliente 12 00:01:24,060 --> 00:01:29,299 y va a ser del tipo de la columna código cliente de la tabla clientes 13 00:01:29,299 --> 00:01:31,400 para comparar el código. 14 00:01:33,120 --> 00:01:37,000 Después declaro el cursor en sí, ¿vale? 15 00:01:37,000 --> 00:01:40,519 El cursor que voy a necesitar para recorrer lo que son los datos 16 00:01:40,519 --> 00:01:46,780 de los pagos del cliente pasado por parámetro. 17 00:01:47,159 --> 00:02:08,080 Entonces aquí declaro el cursor, el cursor se llama pago C y la cláusula select todo from la tabla pagos con una cláusula where en la que se compara el código cliente de la tabla pagos con C cliente que es el código que se le pasa por parámetro al procedimiento. 18 00:02:08,080 --> 00:02:24,219 Y además he puesto order by fecha pago porque el ejercicio pide que estén ordenados por fecha. Realmente esto podría haberme lo ahorrado porque me he dado cuenta de que en la tabla aparece ya directamente ordenados por fecha. 19 00:02:24,219 --> 00:02:28,500 Pero bueno, lo he puesto para que quede más claro y porque lo pedía el ejercicio expresamente. 20 00:02:30,340 --> 00:02:35,280 Posteriormente, aquí, bueno, primero esto. 21 00:02:35,860 --> 00:02:40,960 Esto es lo que es la cabecera de lo que se va a imprimir después en el resultado, ¿vale? 22 00:02:41,759 --> 00:02:51,719 Cuando se genere un programa que invoque al procedimiento, pues esta va a ser la parte estética de formato. 23 00:02:51,719 --> 00:03:06,819 He imprimido dos filas de guiones antes de lo que son los títulos de las columnas, que son id, transacción, fecha, forma y cantidad, y otras dos filas de guiones después. 24 00:03:08,319 --> 00:03:17,460 Aquí empieza el recorrido del cursor y lo he recorrido con un for de cursores, ¿vale? Porque me ha parecido más sencillo. 25 00:03:17,460 --> 00:03:25,439 se imprime lo que son los datos que queremos recoger, 26 00:03:25,879 --> 00:03:29,539 que es el ID de la transacción, la fecha del pago, 27 00:03:29,780 --> 00:03:31,500 la forma del pago y la cantidad. 28 00:03:32,139 --> 00:03:36,360 Todo separado por espacio para que estén tabuladas las columnas. 29 00:03:38,590 --> 00:03:41,650 Después de, bueno, aquí también me he dado cuenta después 30 00:03:41,650 --> 00:03:44,509 de que necesitaba el total de los pagos. 31 00:03:44,930 --> 00:03:47,090 Y para el total de los pagos necesito una variable, 32 00:03:47,270 --> 00:03:48,949 que es total, que la he declarado aquí arriba. 33 00:03:49,090 --> 00:03:55,590 Es de tipo entero y la he igualado a cero porque había que inicializarla antes. 34 00:03:56,150 --> 00:04:08,110 Porque aquí lo que voy a hacer es ir guardando en la variable el total más la cantidad del pago correspondiente de cada iteración del bucle. 35 00:04:08,110 --> 00:04:16,790 entonces en total se va a ir guardando el total y luego cuando termina el bucle se imprimen otras dos filas de guiones 36 00:04:16,790 --> 00:04:24,689 y el total de los pagos de ese cliente en concreto y aquí está la variable total para imprimirla 37 00:04:24,689 --> 00:04:33,870 y luego para finalizar como el ejercicio pedía que se manejaran las excepciones 38 00:04:33,870 --> 00:04:46,250 Pues aquí está el bloque de la excepción y he decidido hacerlo exactamente igual que la práctica 2 porque así se tienen en cuenta todas las posibles excepciones y todos los posibles errores que se pueden dar. 39 00:04:46,649 --> 00:04:47,930 Entonces lo he hecho con WebModels. 40 00:04:48,670 --> 00:04:58,649 WebModels pues se imprime el código del error y se imprime el mensaje de error que está relacionado con ese código. 41 00:04:59,490 --> 00:05:00,750 Y ya está, y aquí termina el programa. 42 00:05:00,750 --> 00:05:12,680 para ver su funcionamiento vamos a ahora mismo a esto ya lo he hecho yo antes pero bueno lo hago 43 00:05:12,680 --> 00:05:16,740 ahora para que se vea vale creamos un pequeño programa que llame al procedimiento 44 00:05:16,740 --> 00:05:36,000 mostrar datos cliente, le pasamos el código 3 y lo ejecutamos. 45 00:05:37,339 --> 00:05:46,000 Ya está ejecutado y aquí en Output vemos el resultado. 46 00:05:46,660 --> 00:05:51,160 Vemos el código cliente es el 3, el nombre del cliente es Gardening Associates, 47 00:05:51,319 --> 00:06:00,759 la ciudad es Miami, país Estados Unidos, aquí vemos las dos filas de guiones, aquí vemos la cabecera, 48 00:06:01,839 --> 00:06:07,139 aquí vemos las otras dos filas de guiones, aquí en esta columna, como vemos, está el ID de la transacción, 49 00:06:07,879 --> 00:06:12,639 aquí está la fecha, está ordenado, aquí está la forma de pago, que en este caso es Paypal, 50 00:06:12,639 --> 00:06:19,759 y la cantidad, que son 5.000, 5.000 y 926, que da un total de 10.926. 51 00:06:19,759 --> 00:06:52,600 Vale, vamos a cambiar de código para que se vea que funciona todo bien, vamos a poner por ejemplo el 6 y vemos que el 6 no tiene pagos directamente, pues vamos a poner otro, el 5, el 5 tiene un pago, en este caso el nombre del cliente es TendoGarden, la ciudad es Miami, el país es Estados Unidos, el ID de la transacción, la fecha, 52 00:06:52,600 --> 00:06:55,220 la forma de pago, que es una transferencia, y la cantidad. 53 00:06:55,839 --> 00:07:00,620 Aquí, por ejemplo, aparece un poco movido porque la forma de pago es más larga. 54 00:07:01,000 --> 00:07:02,439 Eso la verdad es que no lo había tenido en cuenta. 55 00:07:02,860 --> 00:07:04,519 Pero bueno, se puede cambiar aquí en editar. 56 00:07:07,699 --> 00:07:15,370 Podemos editar el procedimiento y darle más espacio aquí. 57 00:07:16,370 --> 00:07:17,990 Tendríamos que poner más guiones. 58 00:07:28,680 --> 00:07:29,839 Esto lo separamos. 59 00:07:30,019 --> 00:07:33,040 y aquí 60 00:07:33,040 --> 00:07:40,110 y a ver si así se ve mejor 61 00:07:40,110 --> 00:07:42,670 lo que pasa es que así cuando la forma de pago 62 00:07:42,670 --> 00:07:44,170 sea 63 00:07:44,170 --> 00:07:46,589 sea más corta 64 00:07:46,589 --> 00:07:48,269 pues realmente 65 00:07:48,269 --> 00:07:50,610 también se va a ver movido 66 00:07:50,610 --> 00:07:51,290 o sea que 67 00:07:51,290 --> 00:07:53,649 cambiarlo tampoco 68 00:07:53,649 --> 00:07:57,430 tampoco va a variar mucho 69 00:07:57,430 --> 00:08:06,420 vemos que bueno 70 00:08:06,420 --> 00:08:08,180 esto hay que moverlo también 71 00:08:08,180 --> 00:08:14,779 esto habría que moverlo también 72 00:08:14,779 --> 00:08:21,170 pero bueno para que 73 00:08:21,170 --> 00:08:23,589 para que quede más o menos 74 00:08:23,589 --> 00:08:25,670 ordenado realmente el programa como se ve 75 00:08:25,670 --> 00:08:26,790 funciona perfectamente 76 00:08:26,790 --> 00:08:31,180 y aquí bueno 77 00:08:31,180 --> 00:08:33,240 todavía me he movido un poco más 78 00:08:33,240 --> 00:08:35,440 pero bueno se ve que el programa funciona perfectamente 79 00:08:35,440 --> 00:08:36,860 y que veáis 80 00:08:36,860 --> 00:08:38,600 tiene algunos fallos de formato pero 81 00:08:38,600 --> 00:08:40,980 está bien porque esto 82 00:08:40,980 --> 00:08:43,179 controlar esto exactamente es un poco complicado 83 00:08:43,179 --> 00:08:44,980 aquí 84 00:08:44,980 --> 00:09:00,169 ya lo vemos perfecto y si ponemos otro código que sea 85 00:09:00,169 --> 00:09:09,929 vamos a ver que ahora ahora sobra espacio realmente esto yo creo que no tiene solución 86 00:09:09,929 --> 00:09:17,110 porque el tipo de el tipo de la forma de pago puede ser más corto más largo entonces esto se 87 00:09:17,110 --> 00:09:24,509 mueve pero bueno se ve que el programa funciona y eso es todo así es como lo he hecho