[C con Clase] Ayuda Urgente porfavor

emilio martinez emimartinez15 en hotmail.com
Lun Mar 8 21:57:18 CET 2010


#include <iostream>
#include <C:\Documents and Settings\Emilio\Escritorio\AdministradorProductos\Pro.h>
#include "SQLBasedeDatos.h"
#include <string>
#include <conio.h>
#include <stdio.h>

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<columnas; j++)
             cout << obj_mysql.nombre_columna(res, j) << " - ";
     cout << endl;
     
     while(row = obj_mysql.obtener_fila(res)){
               for(int j=0; j<columnas; j++){
                       cout << row[j] << " - ";
               }
               cout << endl;
     }
     cout << endl;
     system("PAUSE");
}

void buscarProducto(){
     system("CLS");
     char cod[10];
     char *consulta;
     char sentencia[] = "SELECT *FROM pro WHERE codigo = \'%s\'";
     MYSQL_RES *res;
     MYSQL_ROW row;
     int filas;
     int columnas;
     
     cout << "Ingrese el Codigo del Producto a Buscar: ";
     cin >> 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<columnas; j++)
                     cout << obj_mysql.nombre_columna(res, j) << " - ";
             cout << endl;
     
             while(row = obj_mysql.obtener_fila(res)){
                       for(int j=0; j<columnas; j++){
                               cout << row[j] << " - ";
                       }
                       cout << endl;
             }
     }else
          cout << "El Contacto No Existe" << endl;
     cout << endl;
     system("PAUSE");
}


void eliminarProducto(){
     system("CLS");
     char codigo[6];
     char *consulta;
     char sentenciaBuscar[] = "SELECT *FROM pro WHERE codigo = \'%s\'";
     char sentenciaEliminar[] = "DELETE FROM pro WHERE codigo = \'%s\'";
     MYSQL_RES *res;
     MYSQL_ROW  row;
     int columnas;
     
     cout << "Ingrese el Codigo del Producto a Eliminar: ";
     cin >> 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);
}


En el codigo de arriba me tira el error : expected primary-expression before "void"  en el metodo "modificarProducto" no se porq!!! antes no me lo hacia alguien me puede decir que sera?? lo estoy compilando con devc++ 

Desde ya muchisimas gracias y disculpen la molestia.


Más información sobre la lista de distribución Cconclase