elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16 17 18 19
81  Programación / Programación General / Re: Patron MVC duda de implementación... en: 20 Mayo 2019, 18:43 pm
Ok, entonces la función rellenarTabla() en realidad no estaría bien verdad?, tendría que desglosarla.... ya que estaría mezclando dos capas en una sola función..

podría desglosarla así?:

Vista:
Código
  1.  
  2. //Incluyo la cabecera que manipula el controlador
  3. #include "Manager.h"
  4.  
  5. //suponiendo que tengo una variable que represente a la tabla y se llame
  6. //tbl_data
  7. void UMasterWindow::mostrarTabla(){
  8.     Controller::Manager manager;
  9.  
  10.     ui->tbl_data = manager.controlarTabla(tbl_data, "Usuarios");
  11.     ui->tbl_data->show();
  12. }
  13.  
  14.  
  15.  

Controlador:
Código
  1. //Incluyo la cabecera que manipula la visual de la tabla...
  2. #include "QTableView.h"
  3. #include "SQLManagement.h"
  4. #include "UMasterWindow.h"
  5.  
  6. QTableView Manager::controlarTabla(QTableView tbl_data, QString tbl_name){
  7.     Model::SQLManagement sqlM;
  8.  
  9.     QString queryCmd;
  10.     queryCmd = "SELECT * from " + tbl_name;
  11.     return sqlM.rellenarTabla(tbl_data, queryCmd);
  12.  
  13. }
  14.  

//Modelo:
Código
  1. #include "Manager.h"
  2. #include "QTableView.h"
  3.  
  4. QSqlQueryModel * model = nullptr;
  5.  
  6. QTableView SQLManagement::rellenarTabla(QTableView tbl_data, QString queryCmd){
  7.     model = new QSqlQueryModel;
  8.     QSqlQuery query;
  9.     query.exec(queryCmd);
  10.  
  11.     model->setQuery(queryCmd);
  12.     tbl_data->setModel(model);
  13.     cerrarBD();
  14.  
  15.     return tbl_data;
  16.  
  17. }
  18.  
  19. void SQLManagement::cerrarBD(){
  20.     delete db;
  21.     db = nullptr;
  22. }
  23.  
  24.  

Es asi como lo imagino, no se si estará bien... 
Me recomiendan un buen curso de MVC?.. necesito ver en la practica con el código como funciona, porque el ejemplo que acabo de poner me parece una espagueti...

Saludos y gracias!
82  Programación / Programación C/C++ / Re: Sobrecarga de operador en: 18 Mayo 2019, 02:21 am
Gracias por las respuestas..

me queda claro todo, lo único si que no comprendí bien el por qué de dos cosas

por qué dices que no debo usar system("cls"); de que otra forma puedo limpiar pantalla?..  (conozco otro método que es insertar 100 lineas vacías pero esto haría que el contenido se muestre abajo)

y lo otro, es el std::endl;  la otra forma que conozco es con la secuencia de escape \n

Saludos!
83  Programación / Programación General / Re: Patron MVC duda de implementación... en: 18 Mayo 2019, 01:17 am
Entiendo, gracias por las explicaciones...

Por ejemplo, hoy mismo me he encontrado con un caso particular, el rellenado de una tabla con datos de la base de datos..

la tabla es pertenece a una interfaz gráfica (V)
los datos se extraen de una ejecución de SQL.. (M)

Tengo la siguiente función:

Código
  1. int UnaClase::rellenarTabla() {
  2.  
  3.     //Conectar con base de datos
  4.     //ejecutar consulta SQL
  5.     //obtener datos y meterlos a la tabla (V)
  6.  
  7. }
  8.  

Como verán, aqui se mezcla los datos con la visual...
En que namespace o capa debe quedar esta función?

O quizá esté mal empleada la función...
Que tipo de datos se comparten entre capas?.. solo primitivos?, mi duda es esta ya que no me parece muy lógico dividir en capas y compartir tipos específicos de cada capa una con otra..

Disculpen tantas preguntas..

Gracias, saludos!11
84  Programación / Programación C/C++ / Re: Sobrecarga de operador en: 17 Mayo 2019, 04:20 am
Rayos cósmicos... he intentado sobrecargar al menos el operador < .. pero algo no anda bien..  esta vez compila, pero no se comporta como esperaba

Código
  1.  
  2. #include "pch.h"
  3. #include <iostream>
  4. #include <set>
  5.  
  6. class Usuario {
  7.  
  8. char * nombre = nullptr;
  9.  
  10.  
  11. public:
  12. Usuario() : nombre(new char[16]) {}
  13. ~Usuario();
  14.  
  15. void SetNombre(const char * _nombre);
  16.  
  17.  
  18. char * GetNombre() const {
  19. return this->nombre;
  20. }
  21.  
  22. friend bool operator<(const Usuario & _thisUser, const Usuario & _otherUser);
  23.  
  24.  
  25. };
  26.  
  27. Usuario::~Usuario() {
  28. delete[] nombre;
  29. }
  30.  
  31. void Usuario::SetNombre(const char * _nombre) {
  32. strcpy(this->nombre, _nombre);
  33. }
  34.  
  35. bool operator<(const Usuario & _thisUser, const Usuario & _otherUser) {
  36.  
  37. for (int l = 0; l < 16; l++) {
  38. if (_thisUser.nombre[l] < _otherUser.nombre[l]) {
  39. return true;
  40. }
  41. else {
  42.  
  43. if (_thisUser.nombre[l] == _otherUser.nombre[l])
  44. continue;
  45.  
  46. else
  47. return false;
  48.  
  49. }
  50. }
  51.  
  52.  
  53. }
  54.  
  55.  
  56.  
  57. std::set<Usuario> usuarios;
  58.  
  59. int main(){
  60.  
  61. char * _nombre = new char[16];
  62.  
  63. for (int x = 0; x <= 3; x++) {
  64.  
  65. system("cls");
  66.  
  67. std::cout << "Ingrese nombre: ";
  68. std::cin >> _nombre;
  69.  
  70. std::cout << std::endl;
  71.  
  72. Usuario usuario;
  73. usuario.SetNombre(_nombre);
  74.  
  75. usuarios.insert(usuario);   //ciclo 0 lo realiza bien
  76.                                                      //al intentar guardar en el ciclo 1 se congela
  77.  
  78. }
  79.  
  80. delete[] _nombre;
  81. _nombre = nullptr;
  82.  
  83. return 0;
  84.  
  85. }
  86.  

He optado por set<> porque deseo ingresar usuarios y no deben repetirse...
Estoy casi seguro que no he sobrecargado correctamente el operador..
85  Programación / Programación C/C++ / Re: Sobrecarga de operador en: 16 Mayo 2019, 18:15 pm
Gracias por las respuestas...

Muy bien, creo que tomare todas las opciones, tanto para comparar como para imprimir la clase y determinar el orden...

< , << y ==

Y gracias también por los enlaces..
86  Programación / Programación C/C++ / Sobrecarga de operador en: 15 Mayo 2019, 15:54 pm
Hola amigos..

Estoy experimentando con el contenedor set y tengo duda con el operador de sobrecarga que se necesita para meter al contenedor un tipo creado por mi mismo...

Según estuve leyendo y alguien me dijo también que necesito sobrecargar el operador <

Pero este operador menor que, en que forma hace la comparación de elementos?, el contenedor set no permite objetos duplicados, no seria mas lógico sobrecargar == en vez de < para comparar si el elemento ya existe?


87  Programación / Programación General / Patron MVC duda de implementación... en: 14 Mayo 2019, 01:41 am
Hola..

Tengo una duda con el patron de diseño MVC:

Entiendo que todo lo que se refiere a la visual esta en V (View)
Y todo lo que corresponda a la lógica está en C (Controller)
Lo que pertenece a base de datos en M (Model)

Pero no me imagino como pueda organizarse todo esto, aun no entiendo como se separa.. por ejemplo, un botón es una mezcla de V y C, porque no solo es algo visual sino que ejecuta una función, es decir es programación y visual... a menos que la programación de los botones no entre en la capa de Controller...  si es así, qué entra en esta capa?..

Saludos y gracias.
88  Programación / Programación C/C++ / Re: Operador de seleccion -> en variable no puntero.. en: 13 Mayo 2019, 21:09 pm
Si, lo tenia claro, mi duda estaba con el tipo auto..

Gracias.. saludos!
89  Programación / Programación C/C++ / Re: Operador de seleccion -> en variable no puntero.. en: 13 Mayo 2019, 15:37 pm
Si, justamente así lo entendí luego.. Y lo acabas de confirmar.

Y gracias por el dato del patrón singleton, debo echarle una mirada..
Saludos
90  Programación / Programación C/C++ / Re: Operador de seleccion -> en variable no puntero.. en: 13 Mayo 2019, 05:27 am
Decía que no era puntero porque no lleva el asterisco

Tiene algo que ver la palabra auto?
Páginas: 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16 17 18 19
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines