MitsakosGR Δημοσ. 16 Μαΐου 2011 Δημοσ. 16 Μαΐου 2011 Καλησπέρα, χρησιμοποιώ τις τελευταίες μέρες το Qt και προσπαθώ να συνδεθώ σε μία βάση της Access (.mdb). Έχω κάνει εγκατάσταση από το (Software Manager) το unixODBC και το libqt4-sql-odbc και χρησιμοποιώ τον ακόλουθο κώδικα για να κάνω την σύνδεση: >QSqlDatabase accessDB; QString s = QFileDialog::getOpenFileName(this, "Choose a File", "/", "Access Files (*.mdb)"); accessDB = QSqlDatabase::addDatabase( "QODBC", "second" ); accessDB.setDatabaseName(s); if(accessDB.open()) ui->txtLabel->setText("DB opened"); else ui->txtLabel->setText(accessDB.lastError().text()); Όπου το txtLabel είναι ένα label στην φόρμα. Όταν τρέχω τον κώδικα αυτόν μου βγάζει σφάλμα: [unixODBC][Driver Manager]Data source name not found, and no default driver specified QODBC3: Unable to connect Τι κάνω λάθος;;;; Σε όλα τα παραδείγματα που βρίσκω χρησιμοποιούν ακριβώς τον ίδιο κώδικα...
ΠάρηςΓ Δημοσ. 16 Μαΐου 2011 Δημοσ. 16 Μαΐου 2011 QSqlDatabase mgDb = QSqlDatabase::addDatabase("QODBC"); // Open connection. mgDb.setHostName("localhost"); mgDb.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=MissileLogDB_USMTF.mda"); if(mgDb.open() == false) { qDebug() << "ODBC::open() : error opening connection : " << mgDb.lastError().text() << "\n"; } Δοκιμασε κυριος
MitsakosGR Δημοσ. 16 Μαΐου 2011 Μέλος Δημοσ. 16 Μαΐου 2011 QSqlDatabase mgDb = QSqlDatabase::addDatabase("QODBC"); // Open connection. mgDb.setHostName("localhost"); mgDb.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=MissileLogDB_USMTF.mda"); if(mgDb.open() == false) { qDebug() << "ODBC::open() : error opening connection : " << mgDb.lastError().text() << "\n"; } Δοκιμασε κυριος Το δοκίμασα και έτσι αλλά εξακολουθώ να έχω το ίδιο ακριβώς μήνυμα λάθους... Μήπως ξεχνάω να κάνω κάτι;;; Για να συνδεθώ στην MySQL έπρεπε στο .pro αρχείο να προσθέσω το sql στο "qt+=". Εδώ μήπως θέλει τίποτα άλλο;;
ΠάρηςΓ Δημοσ. 17 Μαΐου 2011 Δημοσ. 17 Μαΐου 2011 Μηπως θελει sql server να την κανει attach; Αν και η Access εχει νομιζω Jet Engine καπως δεν ξερω απο M$
MitsakosGR Δημοσ. 17 Μαΐου 2011 Μέλος Δημοσ. 17 Μαΐου 2011 Δουλεύω σε Kubuntu οπότε δεν μπορώ να φορτώσω SQL Server αλλά δεν μπορώ να κάνω υλοποίηση με βάση SQL Server έτσι και αλλιώς... Στην ουσία το πρόγραμμα που φτιάχνω θα δέχεται ένα αρχείο access θα διαβάζει τα δεδομένα και θα τα εισάγει (με διάφορες ενδιάμεσες λειτουργίες) σε βάση MySQL ή Oracle. Κάτι δεν έχω κάνει σωστά στο configuration αλλά δεν μπορώ να βρω πουθενά τι πρέπει να κάνω. Όλοι γράφουν σαν παράδειγμα μόνο αυτό που μου παρέθεσες πιο πάνω. Ενώ μου αρέσει πολύ σαν framework και περιβάλλον το Qt, αυτή η δυσκολία στο να βρω ολοκληρωμένα tutorial και βοήθεια σε τέτοια θεματάκια με δυσκολεύει πάρα πολύ. Αντίστοιχα πολύ χρόνο μου πήρε και το να βρω ότι πρέπει να βάλω το qt += sql στο .pro αρχείο για να δουλέψω με database. Με μικρά βήματα βοήθειας τα κατάφερα μετά από 1-2 μέρες. Ακόμα και τα tutorial στη nokia δεν περιγράφονται όλα αυτά...
ΠάρηςΓ Δημοσ. 17 Μαΐου 2011 Δημοσ. 17 Μαΐου 2011 Εγω προσωπικα το QT μονο για τα παραθυρια κτλ θα το χρησιμοποιούσα... Τωρα λογικα θα θελει drivers... Εδω ειδα κατι αλλα δεν βοηθα ιδιαιτερα.. http://sourceforge.net/projects/mdbtools/ Αυτο πρεπει να εχει παντως αυτο που ζητας http://www.unixodbc.org/drivers.html Δες και αυτο.,.. http://stackoverflow.com/questions/256459/populate-a-ms-access-database-in-linux http://forums.devshed.com/linux-help-33/access-database-on-linux-683443.html
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.