#include #include #include "SQLBasedeDatos.h" #include #include #include using namespace std; sql_db obj_mysql("localhost", "root", "root", "productos"); void leerMenu(int *); void hacerMenu(int); void agregarProducto(); void insertar(Pro p); void modificarProducto(); void actualizar(Pro p, string codigo); void actualizar2(Pro p, string codigo, string nombre); void buscarProducto(); void buscarProductoNombre(); void buscarProductoDistribuidor(); void buscarProductoCodigo(); void listarProductos(); void eliminarProducto(); void menuPrincipal(); int main() { system("CLS"); menuPrincipal(); return 0; } void menuPrincipal() { int opcion; system("CLS"); cout << "\n ADMINPRO " << endl; cout << "\n*********************** Menu Principal ***********************" << endl; cout << "1- Agregar Nuevo Producto" << endl; cout << "2- Modificar Producto" << endl; cout << "3- Buscar Producto" << endl; cout << "4- Listar Productos" << endl; cout << "5- Eliminar Producto" << endl; cout << "6- Salir" << endl; cout << "\n**************************************************************\n" << endl; leerMenu(&opcion); hacerMenu(opcion); cout << endl; system("PAUSE"); } void leerMenu(int *opcion) { cout << "\nIngrese la opcion deseada: "; cin >> *opcion; } void hacerMenu(int opcion) { do { switch(opcion) { case 1: agregarProducto(); menuPrincipal(); break; case 2: modificarProducto(); menuPrincipal(); break; case 3: buscarProducto(); menuPrincipal(); break; case 4: listarProductos(); menuPrincipal(); break; case 5: eliminarProducto(); menuPrincipal(); break; case 6: exit(1); default: cout << "\nError: Debe seleccionar una opcion entre 1 y 6\n\n"; system("PAUSE"); main(); } } while(opcion>0 && opcion<7); } void agregarProducto() { system("CLS"); Pro p; string a, b, e; cout << "Ingrese el Nombre: "; cin >> a; p.setNombre(a); cout << "Ingrese el Distribuidor: "; cin >> b; p.setDistribuidor(b); cout << "Ingrese el Codigo: "; cin >> e; p.setCodigo(e); cout << "\nNuevo Producto Agregado Exitosamente\n" << endl; cout << endl; system("PAUSE"); } void insertar(Pro p) { char *nom = strdup(p.getNombre().c_str()); char *dis = strdup(p.getDistribuidor().c_str()); char *cod = strdup(p.getCodigo().c_str()); char *consulta; char sentencia[] = "INSERT INTO pro(nombre, distribuidor, codigo)VALUES (\'%s\', \'%s\', \'%s\')"; consulta = new char[strlen(sentencia)+100]; sprintf(consulta, sentencia, nom, dis, cod); obj_mysql.ejecutar_sql(consulta); } void listarProductos() { system("CLS"); MYSQL_RES *res; MYSQL_ROW row; int filas; int columnas; res = obj_mysql.ejecutar_sql("SELECT *FROM pro"); filas = obj_mysql.numero_filas(res); columnas = obj_mysql.numero_columnas(res); cout << "\n PRODUCTOS GUARDADOS " << endl; cout << "\nCantidad de Productos en el Administrador: " << filas << endl; cout << endl; for(int j=0; j> cod; system("CLS"); consulta = new char[strlen(sentencia)+strlen(cod)]; sprintf(consulta, sentencia, cod); res = obj_mysql.ejecutar_sql(consulta); filas = obj_mysql.numero_filas(res); columnas = obj_mysql.numero_columnas(res); if(obj_mysql.filas_afectadas()>0) { for(int j=0; j> codigo; consulta = new char[strlen(sentenciaBuscar)+strlen(codigo)]; sprintf(consulta, sentenciaBuscar, codigo); res = obj_mysql.ejecutar_sql(consulta); if(obj_mysql.filas_afectadas()>0) { if(obj_mysql.filas_afectadas()==1) { row = obj_mysql.obtener_fila(res); consulta = new char[strlen(sentenciaEliminar)+sizeof(codigo)]; sprintf(consulta, sentenciaEliminar, codigo); obj_mysql.ejecutar_sql(consulta); cout << "\nEl Producto Fue Eliminado Exitosamente\n" << endl; } else if(obj_mysql.filas_afectadas()>1) { cout << "\nEl Producto no se pudo Eliminar " << codigo << endl; system("PAUSE"); } void modificarProducto() { system("CLS"); char codigo[20]; char *consulta; char sentencia[] = "SELECT *FROM persona WHERE codigo = \'%s\'"; MYSQL_RES *res; MYSQL_ROW row; Persona p; string a; cout << "Ingrese el Codigo del Producto a Modificar: "; cin >> codigo; consulta = new char[strlen(sentencia)+strlen(codigo)]; sprintf(consulta, sentencia, codigo); res = obj_mysql.ejecutar_sql(consulta); if(obj_mysql.filas_afectadas()>0) { if(obj_mysql.filas_afectadas()==1) { row = obj_mysql.obtener_fila(res); system("CLS"); cout << "Ingrese el Nombre: "; cin >> a; p.setNombre(a); cout << "Ingrese el Distribuidor: "; cin >> a; p.setApellido(a); cout << "Ingrese el Codigo: "; cin >> a; actualizar(p, codigo); cout << "\nLos Datos del Producto Fueron Actualizados\n" << endl; } else if(obj_mysql.filas_afectadas()>1) { cout << "\nLos Datos del Producto NO Fueron Actualizados " << codigo << endl; system("PAUSE"); } } } void actualizar(Pro p, string pCodigo) { char *nombre = strdup(p.getNombre().c_str()); char *codigo = strdup(p.getCodigo().c_str()); char *distribuidor = strdup(p.getDistribuidor().c_str()); char *codigoActual = strdup(pCodigo.c_str()); char *consulta; char sentencia[] = "UPDATE pro SET nombre = \'%s\', codigo = \'%s\', distribuidor = \'%s\'WHERE codigo = \'%s\'"; consulta = new char[strlen(sentencia)+100]; sprintf(consulta, sentencia, nombre, codigo, distribuidor, codigoActual); obj_mysql.ejecutar_sql(consulta); } void actualizar2(Pro p, string pCodigo, string pNombre) { char *nombre = strdup(p.getNombre().c_str()); char *apellido = strdup(p.getCodigo().c_str()); char *telefono = strdup(p.getDistribuidor().c_str()); char *codigoActual = strdup(pCodigo.c_str()); char *nombreActual = strdup(pNombre.c_str()); char *consulta; char sentencia[] = "UPDATE pro SET nombre = \'%s\', codigo = \'%s\', distribuidor = \'%s\' WHERE codigo = \'%s\' AND nombre = \'%s\'"; consulta = new char[strlen(sentencia)+100]; sprintf(consulta, sentencia, nombre, codigo, distribuidor, codigoActual, nombreActual); obj_mysql.ejecutar_sql(consulta); }