Κ.Π. Γιαλούρης
Στόχοι του σημερινού μαθήματος Ρύθμιση του υπολογιστή για την χρήση ΒΔ με Python. Χειρισμός ΒΔ με Python 2
Ρύθμιση τουodbc Click Start(εναρξη), επιλέγουμε Settings(ρυθμίσεις), και στη συνέχεια Control Panel. 3
4
5
Ρυθμιση του odbc σε περιβάλλον windows 6
Εγκατάσταση pypyodbc Κατεβάζουμε το pypyodbc Αποσυμπιέζουμε το zip αρχείο Καλούμε το command prompt Πηγαίνουμε στο folder του pypyodbc Γραφούμε: Python setup.py install 7
Εγκατάσταση pypyodbc 8
Εγκατάσταση pypyodbc 9
Δομή της Βάσης 10
import pypyodbc db_file = "f:\edafos\edafos.mdb" user = 'admin' password = '' 11
import pypyodbc db_file = "f:\edafos\edafos.mdb" user = 'admin' password = '' odbc_conn_str = 'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};dbq=%s;uid=%s;pwd=%s' %\ (db_file, user, password) syndesi = pypyodbc.connect(odbc_conn_str) 12
import pypyodbc db_file = "f:\edafos\edafos.mdb" user = 'admin' password = '' odbc_conn_str = 'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};dbq=%s;uid=%s;pwd=%s' %\ (db_file, user, password) syndesi = pypyodbc.connect(odbc_conn_str) entoli='select * from edafos' edaf_db = syndesi.cursor() edaf_db.execute(sql) 13
import pypyodbc db_file = "f:\edafos\edafos.mdb" user = 'admin' password = '' odbc_conn_str = 'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};dbq=%s;uid=%s;pwd=%s' %\ (db_file, user, password) syndesi = pypyodbc.connect(odbc_conn_str) entoli='select * from edafos' edaf_db = syndesi.cursor() edaf_db.execute(sql) eggrafi=edaf_db.fetchall() for pedio in eggrafi:# επεξεργασία & ενημέρωση πεδίου της ΒΔ kodikos=str(pedio[0]) axia=.# υπολογισμός μιας τιμή στη μεταβλητή axia print(i," **** ", pedio[0], pedio[1], pedio[2]) ent="update edafos set axiol="+"'"+axia+ "' where OBJECTID="+kodikos edaf_db.execute(ent) edaf_db.close() # κλείσιμο της ΒΔ syndesi.commit()# διακοπή της σύνδεσης και ενημέρωση της ΒΔ με τις αλλαγές 14
import pypyodbc db_file = '''f:\edafos\edafos.mdb''' user = 'admin' password = '' odbc_conn_str = 'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};dbq=%s;uid=%s;pwd=%s' %\ (db_file, user, password) conn = pypyodbc.connect(odbc_conn_str) sql=''' select Caco3, Erosion, slope, drain from edafos''' edafos = conn.cursor() edafos.execute(sql) i=0 for pedio in edafos.fetchall(): i=i+1 print(i," **** ",pedio[0],pedio[1],pedio[2]) edafos.close() conn.commit() 15
import pypyodbc db_file = '''f:\edafos\edafos.mdb''' user = 'admin' password = '' odbc_conn_str = 'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};dbq=%s;uid=%s;pwd=%s' %\ (db_file, user, password) syndesi = pypyodbc.connect(odbc_conn_str) sql=''' select Caco3, Erosion, slope, drain from edafos''' edaf_db = syndesi.cursor() edaf_db.execute(sql) i=0 for pedio in edaf_db.fetchall(): i=i+1 print(i," **** ",pedio[0],pedio[1],pedio[2]) edaf_db.close() syndesi.commit() 16
SQL Παραδείγματα 'entoli='select * from edafos' edaf_db = syndesi.cursor() edaf_db.execute(entoli) sql= "select Caco3, Erosion, slope, drain from edafos " edaf_db = syndesi.cursor() edaf_db.execute(sql) 17
SQL Παραδείγματα Εκτέλεση εντολή με μεταβλητή που η τιμή θα δοθεί από τον χρήστη. Η μεταβλητή είναι τύπου string timi=input("δωσε την παράμετρο") sql="select Caco3, Slope, Drain from edafos where Slope=" +"'"+timi+"' edaf_db = syndesi.cursor() edaf_db.execute(sql) 18
SQL Παραδείγματα Εκτέλεση εντολή με μεταβλητή που η τιμή θα δοθεί από τον χρήστη. Η μεταβλητή είναι τύπου float timi=input("δωσε την παράμετρο") timi=float(timi) sql="select Caco3, Erosion, from edafos where Caco3=" +str(timi) edaf_db = syndesi.cursor() edaf_db.execute(sql) 19
SQL Παραδειγματα import pypyodbc db_file = "f:\edafos\edafos.mdb" user = 'admin' password = '' odbc_conn_str = 'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};dbq=%s;uid=%s;pwd=%s' %\ (db_file, user, password) syndesi = pypyodbc.connect(odbc_conn_str) sql='select * from edafos' edaf_db = syndesi.cursor() edaf_db.execute(sql) for pedio in edaf_db.fetchall(): # axia=axiologisi(,,,,,,,,,) kodikos=pedio[0] ent="update edafos set axiologisi_a="+"'"+axia+ "' where OBJECTID="+kodikos edaf_db.execute(ent) edaf_db.close() syndesi.commit() 20