schreibe gerade eine etwas umfangreichere Desktop-App mit PyCharm unter Manjaro-Linux mit PyQt und komme wegen der genialen Unkompliziertheit von Python und Qt super vorran.
Jetzt geht es darum, Daten, die momentan über Files gehändelt werden, in einer Datenbank zu halten. Das Ganze hatte ich früher schon unter C# mit einer MSSQL-Datenbank realisiert und eigentlich wollte ich die Daten jetzt auch aus dieser Datenbank übernehmen, wovon ich aber abgekommen bin, da ich mich mit Datenbanken nicht so sonderlich (eigentlich gar nicht ...) auskenne und einen Export nach MySQL nicht hinbekommen habe.
Also werde ich jetzt alles von Grund auf neu aufbauen und die Daten dann aus den Files in die neue Datenbank einlesen (es handelt sich um maximal 100 Datensätze).
Jetzt habe ich versucht, mit QtSql auf eine einfache MariaDB-Test-Datenbank zuzugreifen und erhalte immer den Fehler: "Driver not loaded Driver not loaded", obwohl db.drivers() "['QSQLITE', 'QSQLITE3', 'QMYSQL3', 'QMYSQL', 'QODBC3', 'QODBC', 'QPSQL7', 'QPSQL']" ausgibt.
Mein Test-Programm aus einem Beispiel:
Code: Alles auswählen
from PyQt4.QtGui import *
from PyQt4.QtSql import *
import sys
def main():
app = QApplication(sys.argv)
table = QTableWidget()
table.setWindowTitle("Connect to Mysql Database Example")
db = QSqlDatabase()
db.addDatabase("QMYSQL")
db.setHostName("localhost")
db.setDatabaseName("test")
db.setUserName("root")
db.setPassword("password")
if not db.open():
QMessageBox.critical(None, "Database Error", db.lastError().text())
print(db.lastError().text())
print(db.drivers())
query = QSqlQuery(db)
query.exec("SELECT * FROM test")
table.setColumnCount(query.record().count())
table.setRowCount(query.size())
index = 0
while query.next():
table.setItem(index, 0, QTableWidgetItem(query.value(0).toString()))
print(QTableWidgetItem(query.value(0).toString()))
table.setItem(index, 1, QTableWidgetItem(query.value(1).toString()))
index += 1
table.show()
return app.exec_()
if __name__ == '__main__':
main()
Wegen der Einfachheit meiner Daten (eine Tabelle mit momentan ca. 25 Columns) frage ich mich, ob nicht erst mal mit einer, wohl auch von Qt gut supporteten SQLite-Datenbank arbeiten sollte. Ich weiss aber nicht, ob ich irgendwann doch Relationen und mehrere Tabellen brauche und ob ich dann die SQLite-Datenbank problemlos in eine MariaDB-Datenbank exportieren (oder anders herum importieren) kann.
Einem Tip aus diesem Forum zufolge würde u.U. auch der Einsatz von SQLAlchemie sinnvoll sein.
Momentan bin ich da ein wenig ratlos. Vielleicht kann mir ja hier jemand ein paar Tips geben ?
Grüße
mephisto-online