georginos1989 Δημοσ. 22 Απριλίου 2011 Share Δημοσ. 22 Απριλίου 2011 Έχω ενα προγραμμα στη c++ με φορμες/units... και σύνδεση με βάση, εκτελεση ερωτημάτων... Μέσα στις συναρτησεις που κανουν συνδεση και εκτελουν τα ερωτηματα σκεφτομαι να βαλω try catch αλλά στο catch τι θα βάλω; κάτι σαν μνμ δεν πρέπει να μπει πχ αποτυχής σύνδεση; Αν δεν θέλεις να κάνει τπτ το catch αλλά μόνο να πιάνει τα exceptions και να μην χτυπάει το πρόγραμμα τι κάνεις; Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
djcat Δημοσ. 22 Απριλίου 2011 Share Δημοσ. 22 Απριλίου 2011 Δε βάζεις τίποτα μέσα στο catch. Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
georginos1989 Δημοσ. 22 Απριλίου 2011 Μέλος Share Δημοσ. 22 Απριλίου 2011 Α ηταν τοσο απλο.... Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
παπι Δημοσ. 22 Απριλίου 2011 Share Δημοσ. 22 Απριλίου 2011 Βαζεις ellipses (catch(...)) αν δε ξερεις τι θα σου πεταξει, αν ξερεις τοτε βαζεις ενα instance του object που μπορει να σου πεταξει πχ catch(const char* e) ΥΓ: Αν πεταξει κανα exception τοτε οτι ειναι μεσα στη try καταστρεφεται Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
georginos1989 Δημοσ. 22 Απριλίου 2011 Μέλος Share Δημοσ. 22 Απριλίου 2011 Οταν λες καταστρέφετε? Δλδ τρέχει ο κωδικας μεσα στο try και πεταει exception ωραία.. και το πιάνει το catch.. μετα τι γίνετε; Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
παπι Δημοσ. 22 Απριλίου 2011 Share Δημοσ. 22 Απριλίου 2011 >class exception_foo { private: std::string errorMsg; public: exception_foo(const char* what) : errorMsg(what) { } const char* what() { return this->errorMsg.c_str(); } }; class foo { public: foo() { printf("created\n"); } ~foo() { printf("deleted\n"); } void boom() { throw exception_foo("error"); } }; int main(int,char**) { try { foo f; f.boom(); } catch(exception_foo e) { printf("some error catched! Message:%s\n",e.what()); } return 0;} Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
georginos1989 Δημοσ. 22 Απριλίου 2011 Μέλος Share Δημοσ. 22 Απριλίου 2011 Το παραπανω πεταει ενα exception στην boom και σταματαει Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
georginos1989 Δημοσ. 24 Απριλίου 2011 Μέλος Share Δημοσ. 24 Απριλίου 2011 Για να μην ανοιγω καινουργιο θεμα Εχω κανει την παρακατω συναρτηση η οποια φτιάχνει ένα string το οποιο περιέχει ένα ερώτημα sql bool ControlAdmin::createSecretary(Secretary sec) { string query; bool isOk; string name=sec.getName(),surname=sec.getSurname(),username=sec.getUsername(),passwd=sec.getPassword(); string city=sec.getCity(), address=sec.getAddress(), phone=sec.getPhone(), mobile=sec.getMobileNumber(); string email=sec.getEmail(), section=sec.getSection(); query="insert into secretary (name, surname, username, password, city, address,"; query+="phone_number, mobile_number, email, section, KA) values('"+name+"',"; query+="'"+surname+"','"+username+"','"+passwd+"',"; query+="'"+city+"','"+address+"','"+phone+"'," ; query+="'"+mobile+"','"+section+"','11')"; /* query="insert into secretary (name, surname, username, password, city, address,"; query+="phone_number, mobile_number, email, section, KA) values('"+sec.getName()+"',"; query+="'"+sec.getSurname()+"','"+sec.getUsername()+"','"+sec.getPassword()+"',"; query+="'"+sec.getCity()+"','"+sec.getAddress()+"','"+sec.getPhone()+"'," ; query+="'"+sec.getMobileNumber()+"','"+sec.getSection()+"','11')"; */ /* query="insert into secretary (name, surname, username, password, city, address,"; query+="phone_number, mobile_number, email, section, KA) values('aaa','bbbb','cccc',"; query+="'dddd','eeee','fffff','ggggg','hhhhh','iiiii','1','22')"; */ isOk=db.testinsertUpdateDeleteQuery(query); if(isOk) { return true; } else { return false; } } Η συνάρτηση αυτή βρίσκετε μεσα σε μια κλαση. Μετά αφου φτιαχτει το ερώτημα καλείτε η παρακατω συνάρτηση η οποία παίρνει ως όρισμα αυτο το string και εκτελει το ερώτημα bool DBControl::testinsertUpdateDeleteQuery(std::string qry) { const char *qr; int queryState; qr=qry.c_str(); queryState=mysql_query(pconn,qr); if (!queryState) { return true; } else { return false; } } και αυτη η συνάρτηση βρίσκετε σε άλλη κλάση.. το θέμα είναι ότι το ερώτημα εκτελείτε σωστά μόνο αν το string query το δώσω έτσι query="insert into secretary (name, surname, username, password, city, address,"; query+="phone_number, mobile_number, email, section, KA) values('aaa','bbbb','cccc',"; query+="'dddd','eeee','fffff','ggggg','hhhhh','iiiii','1','22')"; Αν δοκιμάσω καποια από τις 2 πρώτες επιλογές που έχω κάνει δεν εκτελέιτε σωστά και δεν μπορώ να βρώ γιατι συμβαίνει Ενώ το δοκιμασα και με step run για να δω μηπως δεν παιρνει καλα τις τιμες αλλα μια χαρα τις παιρνει τις τιμες Καμια ιδέα? Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
παπι Δημοσ. 25 Απριλίου 2011 Share Δημοσ. 25 Απριλίου 2011 Οπου ' βαλε \' και πες μας Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
georginos1989 Δημοσ. 25 Απριλίου 2011 Μέλος Share Δημοσ. 25 Απριλίου 2011 Δωσε ενα παραδειγμα δε καταλαβα Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
παπι Δημοσ. 25 Απριλίου 2011 Share Δημοσ. 25 Απριλίου 2011 μεσα στο string εχεις κατι τετιο "'' καντο "\'" ("\'") Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
georginos1989 Δημοσ. 25 Απριλίου 2011 Μέλος Share Δημοσ. 25 Απριλίου 2011 Δε ξέρω αν εννοουσες κάτι τετοιο αλλα ουτε ετσι δουλευει query="insert into secretary (name, surname, username, password, city, address,"; query+="phone_number, mobile_number, email, section, KA) values('"+name+"',"; query+="\'"+surname+"','"+username+"','"+passwd+"',"; query+="\'"+city+"','"+address+"','"+phone+"'," ; query+="\'"+mobile+"','"+section+"','11')"; Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
παπι Δημοσ. 25 Απριλίου 2011 Share Δημοσ. 25 Απριλίου 2011 Καντο ετσι > std::string name("name1"), surname("surname1"), username("username"), passwd("pass1"), city("athens"), address("address1"), mobile("2312231231"), phone("2131231"), section("section1"); std::string query( "INSERT INTO secretary" "(name,surname,username,password,city,address,phone_number,mobile_number,email,section,KA)" "VALUES("); query+= '\''; query+= name; query+= "\',"; query+= '\''; query+= surname; query+= '\''; query+= '\''; query+= username; query+= "\',"; query+= '\''; query+= passwd; query+= "\',"; query+= '\''; query+= city; query+= "\',"; query+= '\''; query+= address; query+= "\',"; printf("%s",query.c_str()); //etc... ΥΓ: Φυσικα ειναι καλυτερο να χρησιμοποιησεις το απι της εσκιουελ ΥΓ1 ενα tutorial Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
georginos1989 Δημοσ. 25 Απριλίου 2011 Μέλος Share Δημοσ. 25 Απριλίου 2011 Εντάξυ το βρήκα το λάθος τελικά... thanks παντως!!!! Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
georginos1989 Δημοσ. 27 Απριλίου 2011 Μέλος Share Δημοσ. 27 Απριλίου 2011 Πως μπορούμε να μετατρέψουμε καποιες τιμες απο ενα vector<string> σε INT? Οχι ολο το vector αλλά κάποιες τιμές από το vector intReturn = atoi(strConvert.c_str()); βρηκα αυτο... ειναι σωστο? Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.