[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