void Servidor::insertarRegistro() { Protocolo protocolo; string resp; /* Insertar en la base de datos */ Registro reg; reg.crearDesdeMensaje(peticionRecibida); int result = this->bd.insertar(reg); if (result == SUCCESS){ resp = "El registro ha sido insertado con éxito con la siguiente información."; resp += "\nNombre: " + reg.getNombre(); resp += "\nDirección: " + reg.getDireccion(); resp += "\nTeléfono: " + reg.getTelefono(); resp += "\n"; } else if (result == ERR_DUPLICADO){ resp = "El registro no se ha insertado con éxito pues está duplicado"; } else if (result == ERR_CAMPO_REQUERIDO){ resp = "El registro no se ha insertado con éxito pues faltan datos requeridos."; } /* Generar respuesta */ mensaje respuesta; respuesta.ttl = 1; respuesta.mtype = RESPUESTA; respuesta.pid = getpid(); strcpy(respuesta.textoRespuesta, resp.c_str()); this->respuestas.push_back(respuesta); }
void Servidor::modificarRegistro() { Protocolo protocolo; string resp; /* Insertar en la base de datos */ Registro existReg(peticionRecibida.nombreCons, (char*) "", (char*) ""); Registro nuevoReg; nuevoReg.crearDesdeMensaje(peticionRecibida); int result = this->bd.modificar(existReg, nuevoReg); /* Generar mensaje de respuesta */ if (result == SUCCESS){ resp = "El registro ha sido modificado con éxito con la siguiente información nueva."; resp += (!nuevoReg.getNombre().empty()) ? "\nNombre: de " + existReg.getNombre() + " a " + nuevoReg.getNombre() : ""; resp += (!nuevoReg.getDireccion().empty()) ? "\nDirección: de " + existReg.getDireccion() + " a " + nuevoReg.getDireccion() : ""; resp += (!nuevoReg.getTelefono().empty()) ? "\nTeléfono: de " + existReg.getTelefono() + " a " + nuevoReg.getTelefono() : ""; resp += "\n"; } else if (result == ERR_NO_EXISTE){ resp = "El registro a modificar no existe. "; } else if (result == ERR_DUPLICADO){ resp = "El registro no se ha modificado con éxito pues está en conflicto con otro existente."; } /* Generar respuesta */ mensaje respuesta; respuesta.ttl = 1; respuesta.mtype = RESPUESTA; respuesta.pid = getpid(); strcpy(respuesta.textoRespuesta, resp.c_str()); this->respuestas.push_back(respuesta); }
int DataHandler::guardarDatos(){ // Persistir datos de la lista en el archivo cout << endl << "*Persisto los datos en archivo.."<<endl; ofstream outputStream("ServerDatabase.txt", ios::out|ios::binary); Registro* registro; for(int i = 0; i< this->getCantidad(); i++){ registro = listaRegistros[i]; char* linea = registro->getNombre(); strcat(linea, ","); strcat(linea, registro->getDireccion()); strcat(linea, ","); strcat(linea, registro->getTelefono()); strcat(linea, "\n"); outputStream.write(linea, strlen(linea)); cout << "Escribo linea: " << linea; } outputStream.close(); cout << "**Fin persistencia**"<< endl; }