2014-03-25 54 views
0

我寫了自己的類打開擴展QSqlDatabase:PyQt5 QSqlDatabase不無任何文字錯誤

class Model(QSqlDatabase): 

    def __init__(self): 
     QSqlDatabase.__init__(self, 'QSQLITE') 
     self.setDatabaseName(QSettings().value('DB_PATH')) 
     if not self.open(): 
      print(self.lastError().text()) 
      raise DBConnectError() 

但open()返回False,並且lastError()不顯示任何內容。我的錯誤是什麼?

的Python 3.3 PyQt的5

+0

打印出QSettings()。value('DB_PATH')的值 - 它可能不是您認爲的值。 –

+0

C:\ Users \ User \ YandexDisk \ Projects \ Strains \ db.sqlite - 完整路徑 – TrueCryer

+0

您是否嘗試過使用推薦的構造函數方法? http://qt-project.org/doc/qt-5.1/qtsql/qsqldatabase.html#addDatabase –

回答

0

我已經找到了問題。我不知道爲什麼,但方法addDatabaseName不接受完整路徑。當我寫成相對路徑(只有'db.sqlite')數據庫連接成功。

有人知道爲什麼嗎?

+0

不得不問明顯的問題:那是正確的完整路徑?即該路徑的「dir」有效嗎? –