Avance 3

 Avances: 

  • Se hizo la consulta # 3 del administrador, la cual consiste en mostrar una serie de información en caso de que mueran todos los ahorrantes. Para ello se creó un SP que determinaba la cantidad de dinero que le correspondía a cada beneficiario, se obtuvo la cuenta que aportaba más dinero a cada beneficiario y la cantidad de cuentas de las cuales obtuvo dinero. Para realizar este SP se decidió iterar por la cantidad de cuentas de las cuales la persona era beneficiaria y se fue agregando a una variable monto. La cantidad de cuentas se obtuvo facilmente con un COUNT y para obtener la cuenta que aportó más dinero se hizo una tabla temporal en la cual se metían todos los montos de todas las cuentas de las cuales el beneficiario era parte y luego se seleccinó la que tuviera mayor monto, de ahí se obtuvo el id y con ello se obtuvo el numero de cuenta.
  • Se mostró en la capa lógica la consulta número 3 del administrador en una tabla de manera descendente según el dinero obtenido por beneficiario.

Horas Trabajadas: 7 h

Problemas encontrados y como fueron resueltos: 

  • El principal problema de este día fue encontrar la manera de hacer la consulta de manera que se lograra imprimir los beneficiarios de manera descendente por la cantidad de dinero que reciben. Primeramente, se pensó en iterar por todos los beneficiarios, sacar los datos correspondientes e ir agregandolos a una tabla temporal a la cual después se pudiera acceder, sin embargo esta idea no iba a funcionar porque no se pueden crear tablas en sp debido a que es una mala practica. Por otro lado, se penso en intentar hacer una tabla temporal pero entonces después no se iba a tener acceso a ella. Después de un análisis largo se obtuvo la idea de trabajar con una sola fla y que en la capa logica se iterara por la cantidad de filas. De esta manera se logró solucionar el problema de como hacer la consulta. 
  • En la capica lógica hubo que pensar en una manera de almacenar todos los datos que se iban obteniendo al llamar al SP, para esto la mejor solución fue usar arrays multidimensionales que en cada fila contuvieran la informacion obtenida del SP. Para poder realizar esto se tuvo que investigar bastante sobre como usar arrays en VBScript, primero se investigó como accesar arrays dentro de arrays (referencia 12). Luego se buscó como agregar elementos a un array y como ordenarlo (referencia 13 - 16). Se investigaron muchos otros temas que se mencionan en la parte de temas adicionales. 
  • Error Subscript out of range: 'UBound'. Esto surgió a la hora de intentar obtener el largo de un array. Se estaba utilizando una variable que esta sobrepasando el limite de UBound, se investigó un poco (referencia 22) pero no solucionó mucho. Se decidió borrar la linea del código debido a que no se obtenía solución y no era un código útil.
  • Otro de los problemas fue intentar eliminar un elemento del array de montos, debido a que en vbscript el manejo de arrays no es tan sencillo como en otros programas. Se intentó hacer un reacomodo del array de manera que el indice que se quería eliminar se quitará pero esto no sirvió. Después de pensar se obtuvo la idea de colocar un 0 en el monto del monto maximo ya que de esta forma en la proxima iteracion del ciclo no iba a ser considerado sino que el maximo iba a ser el segundo mayor. Esto servía porque el array de montos no era el original por lo que no alteraba los datos que se tenían, esta fue la solución al problema.

Temas Adicionales Investigados:
  • Se buscó el operador de división en sql para poder obtener el porcentaje que le correspondía a cada beneficiario del saldo de una cuenta. (Referencia 1)
  • Se investigó si existía un tipo de dato más grande que un float en sql para determinar si se debía cambiar el tipo de dato para almacenar los saldos de las cuentas en los SP. (Referencia 2)
  • Se buscó si se podía crear una tabla que fuera permanente en la BD desde un SP, esto se investigó porque no se sabía como mostrar en orden descendente los montos que recibiría cada beneficiario. (Referencia 3)
  • Se investigó como se podía imprimir todo una tabla en asp classic (referencia 4) ya que se tenía la idea de que se podia meter todos los datos en una tabla fija en la BD y luego se hacía un parametro de salida que fuera esta tabla (referencia 5-7)
  • También se investigó como guardar valor de sql en asp classic. (Referencia 8 y 9)
  • Se investigó como utilizar las tablas temporales en sql para la misma idea de la tabla de beneficiarios (referencia 10).
  • Se buscó la implementación de arrays en sql debido a que en un inicio en vez de implementar el array en la capa lógica se pense hacer en la BD. (Referencia 11)
  • Como crear un array en vbscript (Referencia 17).
  • Informacion general de arrays en vbscript (Referencia 18).
  • Arrays multidimensionales en vbscript (Referencia 19-21).
  • Como eliminar un elemento de un array (Referencia 23)
  • Commo obtener el maximo elemento de un array (Referencia 24-27)
Referencias Bibliograficas:
  1. https://learnsql.com/blog/sql-division-operator/
  2. https://stackoverflow.com/questions/35847309/is-there-a-data-type-in-mssql-bigger-than-float
  3. https://stackoverflow.com/questions/10877407/t-sql-how-to-create-tables-dynamically-in-stored-procedures
  4. https://stackoverflow.com/questions/33366703/print-data-in-table-like-single-row-with-multiple-column-in-classic-asp
  5. https://social.msdn.microsoft.com/Forums/en-US/468e6676-25c3-49d7-b343-9a3e2bee8026/how-to-output-the-whole-table-from-sql-server?forum=iis56classicasp
  6. https://www.w3schools.com/asp/showasp.asp?filename=demo_display3
  7. https://www.w3schools.com/asp/ado_display.asp
  8. https://social.msdn.microsoft.com/Forums/en-US/34649250-dc6a-4366-aad9-309a9ea8ef99/how-i-can-store-value-from-sql-database-into-a-variable-in-aspnet?forum=aspdatasourcecontrols
  9. https://social.msdn.microsoft.com/Forums/en-US/6e047e8a-de47-43cb-821a-d9ab356b8fa4/how-to-store-the-result-of-sql-query-in-session-variable-using-aspnet-c-to-use-it-later?forum=aspstatemanagement
  10. https://stackoverflow.com/questions/10877407/t-sql-how-to-create-tables-dynamically-in-stored-procedures
  11. https://www.sqlshack.com/implement-array-like-functionality-sql-server/
  12. https://www.tek-tips.com/viewthread.cfm?qid=824974
  13. https://stackoverflow.com/questions/10745045/how-to-add-an-array-to-an-array-using-vbscript
  14. https://stackoverflow.com/questions/268648/how-do-i-sort-arrays-using-vbscript
  15. https://www.tachytelic.net/2019/09/add-item-vbscript-array/
  16. https://stackoverflow.com/questions/4605270/add-item-to-array-in-vbscript
  17. https://stackoverflow.com/questions/29320616/how-does-one-declare-an-array-in-vbscript
  18. https://www.softwaretestinghelp.com/vbscript-arrays-tutorial-7/
  19. https://developer.rhino3d.com/guides/rhinoscript/multidimensional-arrays/
  20. https://stackoverflow.com/questions/19888987/vbscript-create-a-multi-dimensional-array-and-add-to-it
  21. https://www.c-amie.co.uk/technical/vbscript-multidimensional-arrays-limits-annoyances-and-ways-around-them/
  22. https://www.vbforums.com/showthread.php?308355-ubound-subscript-out-of-range
  23. https://stackoverflow.com/questions/17753462/delete-an-element-from-an-array-in-classic-asp
  24. https://www.w3schools.com/sql/sql_min_max.asp
  25. https://www.vbforums.com/showthread.php?582625-how-to-find-minimum-value-in-array
  26. https://stackoverflow.com/questions/37789475/fetch-the-maximum-value-from-an-array/37789842
  27. https://groups.google.com/g/mercuryqtp/c/xfz_MWeLu4M?pli=1

Código:

+ SP para consulta de administrador:















+ Codigo en capa logica








Comments

Popular posts from this blog

Avance 2

Avance 5

Resumen Proyecto 2