vpmaciel Postado Novembro 3, 2017 Denunciar Share Postado Novembro 3, 2017 (editado) /* BEGIN TRANSACTION; CREATE TABLE IF NOT EXISTS `estudante` ( `nome` VARCHAR ( 50 ) NOT NULL, `roll` VARCHAR ( 40 ), `cgpa` FLOAT ); COMMIT; */ // como fazer o backup e restauração do banco de dados ? #include <iostream> #include <fstream> #include <vector> #include <string> #include <sstream> using namespace std; #include "sqlite3.h" #define DB "sea.s3db" bool isOpenDB = false; sqlite3 *dbfile; bool ConectaDB (); void DesconectaDB (); int back_up_database(); int restore_database(); class estudante { private: int id; string nome; float cgpa; public: estudante() { id=0; cgpa=0.00; } estudante(int i, string snome, float f) { id=i; nome = snome; cgpa=f; } void setid(int i) { id=i; } void setcgpa(float gp) { cgpa=gp; } void setnome(string snome) { nome = snome; } string getnome() { return nome; } int getid() { return id; } float getcgpa() { return cgpa; } }; estudante getEstudante() { estudante estud; int id; string nome; float gpa; cout << " Digite o estudante id :" ; cin >> id; cout << " Digite o nome : " ; cin >> nome; cout << " Digite o GPA : " ; cin >> gpa; estud.setid(id); estud.setnome(nome); estud.setcgpa(gpa); return estud; } int addDataRow() { // pega dados do estudante pelo uruario usuário estudante estud = getEstudante(); std::stringstream strm; strm << "insert into estudante (roll,nome,cgpa) values(" << estud.getid() << ",'" << estud.getnome() << "'," << estud.getcgpa() << ")"; string s = strm.str(); char *str = &s[0]; sqlite3_stmt *statement; int result; char *query = str; { if(sqlite3_prepare(dbfile,query,-1,&statement,0)==SQLITE_OK) { int res=sqlite3_step(statement); result=res; sqlite3_finalize(statement); } return result; } return 0; } int updateRow() { int rollno; float gpa; cout << "Digite o ID No: "; cin >> rollno ; cout << "new CGPA : " ; cin >> gpa; std::stringstream strm; strm << "update estudante set cgpa=" << gpa << " where roll=" << rollno ; string s = strm.str(); char *str = &s[0]; sqlite3_stmt *statement; int result; char *query = str; { if(sqlite3_prepare(dbfile,query,-1,&statement,0)==SQLITE_OK) { int res=sqlite3_step(statement); result=res; sqlite3_finalize(statement); } return result; } return 0; } int deleteRow() { int rollno; cout << "Digite o ID No: "; cin >> rollno ; std::stringstream strm; strm << "delete from estudante " << " where roll=" << rollno ; string s = strm.str(); char *str = &s[0]; sqlite3_stmt *statement; int result; char *query = str; { if(sqlite3_prepare(dbfile,query,-1,&statement,0)==SQLITE_OK) { int res=sqlite3_step(statement); result=res; sqlite3_finalize(statement); } return result; } return 0; } void getTableData() { sqlite3_stmt *statement; char *query = "select * from estudante"; if ( sqlite3_prepare(dbfile, query, -1, &statement, 0 ) == SQLITE_OK ) { int ctotal = sqlite3_column_count(statement); int res = 0; while ( 1 ) { res = sqlite3_step(statement); if ( res == SQLITE_ROW ) { for ( int i = 0; i < ctotal; i++ ) { string s = (char*)sqlite3_column_text(statement, i); cout << s << " "; } cout << endl; } if ( res == SQLITE_DONE ) { cout << "feito ! " << endl; break; } } } } int main() { isOpenDB = ConectaDB(); if ( isOpenDB ) cout << "Successo na conexão !" << endl; else cout << "conexão falhou ! " << endl; estudante st[100]; while ( 1 ) { int escolha; cout<<" Escolha Operation " << endl; cout << "1. Adicionar estudante" << endl; cout << "2. Listar estudante" << endl; cout << "3. Atualizar estudante" << endl; cout << "4. Apagar estudante" << endl; cout << "5. Sair " << endl; cout << "6. Backup do banco de dados " << endl; cout << "7. Restaurar banco de dados " << endl; cout << "Digite a Operação NO : "; cin >> escolha ; if(escolha == 1) { int count = addDataRow(); if ( count == SQLITE_DONE ) { cout << "Inserido com sucesso !" << endl; } } if (escolha==2) { getTableData(); } if (escolha==3) { updateRow(); } if(escolha==4) { deleteRow(); } if ( escolha == 5 ) { break; } if ( escolha == 6 ) { back_up_database(); } if ( escolha == 7 ) { restore_database(); } } return 0; } bool ConectaDB () { if ( sqlite3_open(DB, &dbfile) == SQLITE_OK ) { isOpenDB = true; return true; } return false; } void DesconectaDB () { if ( isOpenDB == true ) { sqlite3_close(dbfile); } } int back_up_database() { } int restore_database() { } Editado Novembro 3, 2017 por vpmaciel Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
vpmaciel
/*
BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS `estudante` (
`nome` VARCHAR ( 50 ) NOT NULL,
`roll` VARCHAR ( 40 ),
`cgpa` FLOAT
);
COMMIT;
*/
// como fazer o backup e restauração do banco de dados ?
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <sstream>
using namespace std;
#include "sqlite3.h"
#define DB "sea.s3db"
bool isOpenDB = false;
sqlite3 *dbfile;
bool ConectaDB ();
void DesconectaDB ();
int back_up_database();
int restore_database();
class estudante {
private:
int id;
string nome;
float cgpa;
public:
estudante() {
id=0;
cgpa=0.00;
}
estudante(int i, string snome, float f) {
id=i;
nome = snome;
cgpa=f;
}
void setid(int i) {
id=i;
}
void setcgpa(float gp) {
cgpa=gp;
}
void setnome(string snome) {
nome = snome;
}
string getnome() {
return nome;
}
int getid() {
return id;
}
float getcgpa() {
return cgpa;
}
};
estudante getEstudante() {
estudante estud;
int id;
string nome;
float gpa;
cout << " Digite o estudante id :" ;
cin >> id;
cout << " Digite o nome : " ;
cin >> nome;
cout << " Digite o GPA : " ;
cin >> gpa;
estud.setid(id);
estud.setnome(nome);
estud.setcgpa(gpa);
return estud;
}
int addDataRow() {
// pega dados do estudante pelo uruario usuário
estudante estud = getEstudante();
std::stringstream strm;
strm << "insert into estudante (roll,nome,cgpa) values(" << estud.getid() << ",'" << estud.getnome() << "'," << estud.getcgpa() << ")";
string s = strm.str();
char *str = &s[0];
sqlite3_stmt *statement;
int result;
char *query = str; {
if(sqlite3_prepare(dbfile,query,-1,&statement,0)==SQLITE_OK) {
int res=sqlite3_step(statement);
result=res;
sqlite3_finalize(statement);
}
return result;
}
return 0;
}
int updateRow() {
int rollno;
float gpa;
cout << "Digite o ID No: ";
cin >> rollno ;
cout << "new CGPA : " ;
cin >> gpa;
std::stringstream strm;
strm << "update estudante set cgpa=" << gpa << " where roll=" << rollno ;
string s = strm.str();
char *str = &s[0];
sqlite3_stmt *statement;
int result;
char *query = str;
{
if(sqlite3_prepare(dbfile,query,-1,&statement,0)==SQLITE_OK) {
int res=sqlite3_step(statement);
result=res;
sqlite3_finalize(statement);
}
return result;
}
return 0;
}
int deleteRow() {
int rollno;
cout << "Digite o ID No: ";
cin >> rollno ;
std::stringstream strm;
strm << "delete from estudante " << " where roll=" << rollno ;
string s = strm.str();
char *str = &s[0];
sqlite3_stmt *statement;
int result;
char *query = str;
{
if(sqlite3_prepare(dbfile,query,-1,&statement,0)==SQLITE_OK) {
int res=sqlite3_step(statement);
result=res;
sqlite3_finalize(statement);
}
return result;
}
return 0;
}
void getTableData() {
sqlite3_stmt *statement;
char *query = "select * from estudante";
if ( sqlite3_prepare(dbfile, query, -1, &statement, 0 ) == SQLITE_OK ) {
int ctotal = sqlite3_column_count(statement);
int res = 0;
while ( 1 )
{
res = sqlite3_step(statement);
if ( res == SQLITE_ROW ) {
for ( int i = 0; i < ctotal; i++ ) {
string s = (char*)sqlite3_column_text(statement, i);
cout << s << " ";
}
cout << endl;
}
if ( res == SQLITE_DONE ) {
cout << "feito ! " << endl;
break;
}
}
}
}
int main() {
isOpenDB = ConectaDB();
if ( isOpenDB )
cout << "Successo na conexão !" << endl;
else cout << "conexão falhou ! " << endl;
estudante st[100];
while ( 1 ) {
int escolha;
cout<<" Escolha Operation " << endl;
cout << "1. Adicionar estudante" << endl;
cout << "2. Listar estudante" << endl;
cout << "3. Atualizar estudante" << endl;
cout << "4. Apagar estudante" << endl;
cout << "5. Sair " << endl;
cout << "6. Backup do banco de dados " << endl;
cout << "7. Restaurar banco de dados " << endl;
cout << "Digite a Operação NO : ";
cin >> escolha ;
if(escolha == 1) {
int count = addDataRow();
if ( count == SQLITE_DONE ) {
cout << "Inserido com sucesso !" << endl;
}
}
if (escolha==2) {
getTableData();
}
if (escolha==3) {
updateRow();
}
if(escolha==4) {
deleteRow();
}
if ( escolha == 5 ) {
break;
}
if ( escolha == 6 ) {
back_up_database();
}
if ( escolha == 7 ) {
restore_database();
}
}
return 0;
}
bool ConectaDB () {
if ( sqlite3_open(DB, &dbfile) == SQLITE_OK ) {
isOpenDB = true;
return true;
}
return false;
}
void DesconectaDB () {
if ( isOpenDB == true ) {
sqlite3_close(dbfile);
}
}
int back_up_database() {
}
int restore_database() {
}
Editado por vpmacielLink para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.