2016-06-30 8 views
0

Gibt es einen Weg, wie ich einen SQLite-Datenbanknamen in Python bekommen kann.Wie bekomme ich einen SQLite-Datenbanknamen in Python?

ich den folgenden Code bin mit dem Datenbanknamen zu erhalten:

con=sqlite3.connect(":memory:") 
cursor = con.cursor() 
cursor.execute("PRAGMA database_list;") 
curr_table = cursor.fetchall() 

Aber der Ausgang ich erhalte, ist:

[(0, u'main', u'')] 

Als ich

[(0,u'main',u'/Users/testdb.db'),       
(2,u'test',u'/Users/testdb.db')] 
wie

etwas zu bekommen
+0

was? ... Ich verstehe nicht die Frage ... sqlite hat einen Dateinamen (oder in: Speicher) als der Name der Datenbank ... meinst du die Tabellennamen zu bekommen? –

+0

Ich benutzte diesen Code con = sqlite3.connect (": memory:") cursor = con.cursor() cursor.execute ("PRAGMA database_list;") Aber es ist nicht die richtigen Datenbanken – anonymous

+0

was meinst du? Was heißt es und was erwartest du? ... das ist kein reproduzierbares Beispiel wie es steht ... –

Antwort

0
werden sollte

Sie sollten sich mit der eigentlichen Datei verbinden - andernfalls können Sie die darin enthaltenen Datenbanken nicht anzeigen.

So müssen Sie nur Ihren Code, dies zu ändern:

con=sqlite3.connect('/Users/testdb.db') 
cursor = con.cursor() 
cursor.execute("PRAGMA database_list;") 
curr_table = cursor.fetchall() 
+0

Aber das wird nicht geben alle Datenbanken, die es mir nur die Ausgabe als: [(0, u'main ', u'/Users/testdb.db ')] – anonymous

+0

@anonymous - Sie können nur die Datenbanken innerhalb der sehen Datei, mit der Sie verbunden sind. SQLite ist eine dateibasierte Datenbank, sodass Sie keine Verbindung zu einem Server herstellen. Ist Ihre Datei 'testdb.db' eine SQLite-Datenbankdatei? – Nicarus

+1

Wenn Sie nur eine Datenbank sehen, liegt das daran, dass es nur eine gibt. – Nicarus