Databases & Qt Μανούσης Πέτρος ΑΜ: 862

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Πώς να χρησιμοποιήσετε τον λογαριασμό σας στο Gmail
Advertisements

Οδηγίες χρήσης του Exams Planner
ADAM Projects and Products Portal for Leonardo da Vinciwww.adam-europe.eu ADAM Διαδικτυακή πύλη για σχέδια και προϊόντα του Leonardo da Vinci 16/10/2009.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 2ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 26 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 11.
Joomla.
Ελένη Σιδηροπούλου ΠΕ 15. Μπαίνουμε στην ιστοσελίδα Και πατάμε το sign in.
ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ του tool ενημέρωσης στατιστικών
POINTERS, AGGREGATION, COMPOSITION. POINTERS TO OBJECTS.
Copyright ©: SAMSUNG & Samsung Hope for Youth. Με επιφύλαξη κάθε νόμιμου δικαιώματος Εκπαιδευτικό υλικό Λογισμικό: Δημιουργία εφαρμογών Επίπεδο.
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 1ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 5 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 11.
Σελ. 1 Ε.2.2 Υπηρεσίες – Λειτουργία Helpdesk Καταχώρηση και παρακολούθηση αιτημάτων μέσω web Ε Καταχώρηση αιτημάτων υποστήριξης.
MySQL + Γλώσσα Προγραμματισμού
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Δ.Π.Θ. Συνδέοντας έγγραφα - 1 Συνδέοντας έγγραφα Μια σύνδεση στο Web (link) αποτελείται από δύο μέρη : Aυτό που βλέπουμε στη σελίδα και λέγεται άγκυρα.
Microsoft Excel 4.2 Κελιά Κίκα Χρυσοστόμου.
Το Δίκτυο Ηλεκτρονικής Μάθησης για την Τάξη
Αγγίσταλης Κωνσταντίνος Α.Μ 739
PL/SQL.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 11: Intro to Applets Εβδομάδα 11: Εισαγωγή στα Applets.
ΕΠ ΚτΠ – Μέτρο 1.2 «Εισαγωγή και Αξιοποίηση των Νέων Τεχνολογιών στην Εκπαίδευση» Πράξη «Δράσεις Επιμόρφωσης Εκπαιδευτικών Πληροφορικής» Ανάδοχος: Ερευνητικό.
Πως βάζουμε τίτλους και κείμενα στα video μας σε 8 βήματα.
Τομέας Πληροφορικής ΙΕΚ ΔΕΛΤΑ Θεσσαλονίκη - Ιωάννινα
ΕΡΩΤΗΜΑΤΑ ΕΠΙΛΟΓΗΣ ΜΕ ΣΥΖΕΥΞΗ ΠΙΝΑΚΩΝ
ΕΝΟΤΗΤΑ 3 – Κεφάλαιο 9: Ζωγραφική
Βάσεις Δεδομένων Μάθημα 4.
Δημιουργία εκπαιδευτικού κόμικ
Ο οδηγός περιγράφει πώς να: - Εγγραφείτε στο Blog του HiStory (σελίδες 2-3). - Αλλάξετε την επισκόπηση χρησιμοποιώντας το ζουμ (σελίδες 4- 5). - Δημιουργήσετε.
ΕΠΑΝΑΛΗΨΗΕΠΑΝΑΛΗΨΗ ΠΡΟΓΡΑΜΜΑΤΑ. ΠΡΟΓΡΑΜΜΑ 1 ΕΞΗΓΗΣΤΕ ΤΙ ΕΞΟΔΟ ΠΑΡΑΓΕΙ ΤΟ ΠΑΡΑΚΑΤΩ ΠΡΟΓΡΑΜΜΑ #include int main() { char ch; int i; float fl; printf("dose.
Οδηγίες Εισαγωγής Ανακοινώσεων στο site του ΤΜΕΥ Με το F5 αρχίζει το animation.
Συντάκτης :Δομουχτσής Στέργιος Κατασκευή Ιστοσελίδας Αυτόματο σύστημα Σχολικού Δικτύου Iware.
ΕΠΛ 223 Θεωρία και Πρακτική Μεταγλωττιστών7-1 Πίνακας Συμβόλων Πίνακας συμβόλων: δομή δεδομένων που χρησιμοποιείται για την αποθήκευση διαφόρων πληροφοριών.
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Διασύνδεση Java Εφαρμογών με ΒΔ Π. Φιτσιλής 1.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
ΕΡΩΤΗΜΑΤΑ ΕΠΙΛΟΓΗΣ 2 ΜΑΘΗΜΑ 8. ΑΠΑΛΟΙΦΗ ΔΙΠΛΟΕΓΓΡΑΦΩΝ DISTINCT Μπορούμε να απαλείψουμε τις διπλοεγγραφές που μας επιστρέφονται και που οφείλονται στην.
Applets Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη δυνατότητα προβολής γραφικών και τη δυνατότητα υλοποίησης ενός γραφικού.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
Εγκατάσταση του joomla σε τοπικό υπολογιστή Νταλούκας Βασίλης Υπεύθυνος ΚΕ.ΠΛΗ.ΝΕ.Τ. 1 ου Γραφείου Δ.Ε. Ν.Ηλείας.
Κουλίνας Μιχαήλ Α.Μ.:774 Μπουρνάζης Χρήστος Α.Μ.:792 Ρογκάκος Γεώργιος Α.Μ.:817.
Γυμνάσιο Νέας Κυδωνίας
Οριζόντιο Έργο Υποστήριξης Σχολείων, Εκπαιδευτικών και Μαθητών στο Δρόμο για το ΨΗΦΙΑΚΟ ΣΧΟΛΕΙΟ, νέες υπηρεσίες Πανελλήνιου Σχολικού Δικτύου και Στήριξη.
Παρουσίαση Glade Νίκος Δεληγιάννης Α.Μ.: Τι είναι το Glade; Εφαρμογή για την αυτοματοποίηση της σχεδίασης ενός γραφικού περιβάλλοντος χρήστη (GUI).
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
1 Β΄ Μέρος : ΠΡΟΧΩΡΗΜΕΝΕΣ ΛΕΙΤΟΥΡΓΙΕΣ ΤΟΥ GUI Παπανίκος Νικόλαος Α.Μ Φασουράκη Ασημίνα Α.Μ 711.
ΗΥ150 – ΠρογραμματισμόςΞ. Ζαμπούλης ΗΥ-150 Προγραμματισμός Αρχεία.
Εξομοιωτής Ψηφιακών Κυκλωμάτων
Δομές Δεδομένων και Αρχεία
1. 1.Δημιουργία Νέου Αρχείου Επιλέγουμε καρτέλα File, πατούμε στην εντολή New και μετα αφου διαλέξουμε τον τύπo αρχείου (π.χ Blank Document), πατούμε.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα.
ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΣΕΡΡΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ Τμήμα Μηχανικών Πληροφορικής ΤΕ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Κατασκευή Ιστοσελίδας Χρηματοοικονομικού.
WORDPRESS ΕΓΚΑΤΑΣΤΑΣΗ ΚΟΥΡΕΑΣ ΑΡΓΥΡΗΣ ΜΗΧΑΝΙΚΟΣ – ΚΑΘΗΓΗΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 1.
ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ 2 ο ΕΡΓΑΣΤΗΡΙΟ: Μενού,Εντολές και Παράθυρα Διαλόγου Καθηγητής: Γρηγόριος Νικ. Καρατάσιος.
ΔΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙΔΩΝ Ένας Συνοπτικός Οδηγός Καμήλαλη Δέσποινα Μαθηματικός, MSc Πληροφορικής, Υποψήφια Διδάκτωρ Χαροκοπείου Πανεπιστημίου Αθηνών.
ΜΑΘΗΜΑ: ΣΥΓΧΡΟΝΟ ΛΟΓΙΣΜΙΚΟ ΟΡΓΑΝΩΣΗ ΓΡΑΦΕΙΟΥ 5 ο ΕΡΓΑΣΤΗΡΙΟ: ΕΓΚΑΤΑΣΤΑΣΗ ΕΚΤΥΠΩΤΩΝ ΚΑΘΗΓΗΤΗΣ: ΓΡΗΓΟΡΙΟΣ Ν. ΚΑΡΑΤΑΣΙΟΣ.
ΕΝΟΤΗΤΑ 3 – Κεφάλαιο 9: Ζωγραφική
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Θερινό Σχολείο, 14 – 20 Ιουλίου 2014
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Java DataBase Connectivity
Μάθημα 7 Φόρμες IΙ.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Web Services στη C# Εργαστήριο 3
Tkinter Γραφικά στην Python.
1)Αφού ακολουθήσουμε τον σύνδεσμο βρισκόμαστε εδώ
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας
Ερωτήματα Επιλογής σε ACCESS
Φόρμες Φόρμες χρησιμοποιούνται για να δημιουργήσουμε ένα φιλικό περιβάλλον για την διαχείριση των δεδομένων της βάσης. Επίσης δίνεται η δυνατότητα δημιουργίας.
Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου
ΕΝΟΤΗΤΑ 3 – Κεφάλαιο 9: Ζωγραφική
Μεταγράφημα παρουσίασης:

Databases & Qt Μανούσης Πέτρος ΑΜ: 862

Παράδειγμα ● Στη συνέχεια θα ακολουθήσει ένα παράδειγμα για το πως μπορούμε να χρησιμοποιήσουμε την Qt library και τα εργαλεία που παρέχονται μαζί της -όπως είναι το Designer- ώστε να παράγουμε κώδικα για να διαχειριζόμαστε τις εγγραφές μιας βάσης δεδομένων.

Δημιουργία Login φόρμας ● Στη φόρμα αυτή ζητούμε από το χρήστη να εισάγει το user name και το password που του έχει δοθεί από το διαχειριστή της βάσης ώστε να σιγουρευτούμε πως ο άνθρωπος που τρέχει την εφαρμογή, έχει δικαίωμα να “κάνει” ερωτήσεις στη βάση.

Σχεδίαση φόρμας ● Στο διπλανό παράθυρο εμφανίζεται η φόρμα που περιγράψαμε προηγουμένως.

Σχεδίαση φόρμας ● Στο username_lineEdit ο χρήστης γράφει το username του, ενώ στο password_lineEdit γράφει τον κωδικό του, γι αυτό και εμφανίζονται “*” αντί συμβόλων.

Συνδέσεις ● Στην παραπάνω φόρμα όπως είδαμε υπάρχουν δύο κουμπιά, τα κουμπιά αυτά πρέπει να τα συνδέσουμε με κάποιο κώδικα ώστε όταν τα πατούμε να επιτελούν κάποιες λειτουργίες.

Συνδέσεις

Στη συνέχεια; ● Αφού λοιπόν ολοκληρώσαμε όλες μας τις συνδέσεις δε μας μένει παρά να γράψουμε τον κώδικα που θέλουμε να πραγματοποιούν τα κουμπιά αφού πατηθούν. ● Για το cancel_pushButton δε θα αναφέρω κάτι αφού το μόνο που κάνουμε είναι να κλείνουμε την εφαρμογή μας με τη βοήθεια της προϋπάρχουσας συνάρτησης close() την οποία και καλούμε. ● Στη συνέχεια παρατίθεται ο πηγαίος κώδικας του έτερου κουμπιού που καλεί τη συνάρτηση main_program_Slot()

Πηγαίος κώδικας void login_form::main_program_Slot() { QSqlDatabase *db=QSqlDatabase::addDatabase("QMYSQL3"); if(!db) { QMessageBox::critical(0,"ERROR", "Could not find driver",QMessageBox::Ok, QmessageBox::NoButton, QmessageBox::NoButton); exit (EXIT_FAILURE); } db->setDatabaseName("baseis_III"); db->setHostName("localhost"); db->setUserName(username_lineEdit->text()); db->setPassword(password_lineEdit->text());

Πηγαίος κώδικας... if(!db->open()) { QMessageBox::critical(0,"ERROR", "Wrong Username or Password", QMessageBox::Ok, QMessageBox::NoButton, QMessageBox::NoButton); username_lineEdit->clear(); password_lineEdit->clear(); return; } this->hide(); main_program_form w; w.show(); w.exec(); db->close(); }

Επόμενη φόρμα ● Όπως παρατηρήσαμε στον πηγαίο κώδικα που προηγήθηκε όταν δούμε πως όλα πήγαν καλά με την εισαγωγή του χρήστη στο σύστημα διαχείρισης της βάσης δεδομένων καλούμε να εμφανιστεί ένα νέο παράθυρο τύπου main_program_form. ● Στη συνέχεια θα δούμε τη μορφή του παραθύρου αυτού και τις συνδέσεις του.

Σχεδίαση φόρμας

Συνδέσεις ● Όπως παρατηρήσαμε το παραπάνω παράθυρο αποτελείτε μόνο από κουμπιά, το μόνο που μας μένει σαν πριν είναι να συνδέσουμε τα κουμπιά αυτά με τις λειτουργίες τις οποίες θα πρέπει να εκτελούν.

Συνδέσεις

Πηγαίος κώδικας void main_program_form::epiplo_Slot() { this->setDisabled(true); epiplo_form w; w.show(); w.exec(); this->setEnabled(true); } void main_program_form::katigoria_Slot() { this->setDisabled(true); katigoria_form w; w.show(); w.exec(); this->setEnabled(true); }

Πηγαίος κώδικας ● Στην προηγούμενη διαφάνεια εμφανίστηκαν ενδεικτικά μόνο δύο συναρτήσεις από τον πηγαίο κώδικα του αρχείου το κυρίως προγράμματος... όμως όλες οι συναρτήσεις είναι ακριβώς στο ίδιο μοτίβο. ● Κάνουν ανενεργό το παρόν παράθυρο (του κυρίως προγράμματος), εμφανίζουν ένα άλλο παράθυρο που σχετίζεται κάπως με τη βάση και όταν τελειώσουν τη λειτουργία τους με το άλλο, ξανακάνουν ενεργό το παράθυρο του κυρίως προγράμματος.

Φόρμα βάσης δεδομένων ● Στη συνέχεια θα σχεδιάσουμε ένα παράθυρο που να σχετίζεται με κάποιο πίνακα της βάσης δεδομένων μας. ● Στον πίνακα της βάσης μας όμως υπάρχουν και κάποια ξένα κλειδιά για τα οποία θα πρέπει να κάνουμε κάποιους ελέγχους ώστε να μη βάζουμε στη βάση μας σκουπίδια. ● Ας ρίξουμε όμως μια ματιά στη φόρμα που σχετίζεται με τον πίνακα της βάσης μας...

Φόρμα βάσης δεδομένων

● Ήδη έχουμε στη φόρμα μας τα απαραίτητα κουμπιά για να κάνουμε ερωτήσεις στη βάση μας, το μόνο που μας μένει είναι να κάνουμε ελέγχους για το ξένο κλειδί του πίνακά μας. ● Στη συνέχεια παρατίθεται ο κώδικας που αρχικοποιεί το παράθυρό μας ώστε να αποφύγουμε τον κίνδυνο των σκουπιδιών στη βάση μας στο πεδίο που βρίσκεται το ξένο κλειδί.

Αρχικοποίηση φόρμας void epiplo_form::init() { QSqlQuery query("SELECT katigoria FROM KatigoriaEpiploy ORDER BY katigoria;"); while(query.next()) katigoria_comboBox->insertItem(query.value(0).toString()); }

Συνδέσεις

● Για τα κουμπιά δεν χρειάζεται να γράψουμε κώδικα μιας και το Qt φροντίζει να φτιάξει από μόνο του τον απαραίτητο κώδικα για τις “ερωτήσεις” στη βάση μας, εμείς το μόνο που έχουμε να κάνουμε είναι να προσέχουμε το ξένο μας κλειδί και γι αυτό...

Πριν εισάγουμε εγγραφή void epiplo_form::beforeUpdate( QSqlRecord * buffer ) { buffer->setValue("katigoria",katigoria_comboBox->currentText()); }

Πριν αλλάξουμε εγγραφή void epiplo_form::primeUpdate( QSqlRecord * buffer ) { QSqlQuery query("SELECT katigoria FROM KatigoriaEpiploy WHERE katigoria='"+ buffer->value("katigoria").toString()+"';" ); QString katigoria=""; if( query.next() ) { katigoria=query.value(0).toString(); for(int i=0; i count(); i++ ) { if (katigoria_comboBox->text(i)==katigoria ) { katigoria_comboBox->setCurrentItem(i); break; }