Seite 1 von 1

SQLite3: zwei Datenbanken auslesen

Verfasst: 12.09.2005 13:39
von sobi
Hallo,

wie stelle ich das an, wenn ich zwei DB gleichzeitig auslesen will? (das Beispiel von PureArea.net habe ich nicht geschnallt :oops: )

Ich habe eine DB die er Reihe für Reihe auslesen soll.
Je nach dem, was in dem dritten Feld steht, soll er in einer anderen DB nachschauen, welche Farbe diesem Wert zugewisen wird.
sieht so ähnlich aus:

Code: Alles auswählen

SQLite3_GetTable("SELECT * FROM "+db_use+" ORDER BY kategorie", @myRows, @myCols, sqlite3_dbHandle)
    For Row.l  = 1 To myRows      
          farbekat.s = DBData(Row,2)
          SQLite3_GetTable("SELECT * FROM bereiche", @myRows, @myCols, sqlite3_dbHandle)
          For Row2.l=1 To MyRows
            If DBData(Row2, 1) = farbekat
              Debug DBData(Row2,2)
            EndIf 
          Next
          SQLite3_CloseDatabase(sqlite3_dbHandle)
SQLite3_GetTable("SELECT * FROM "+db_use+" ORDER BY kategorie", @myRows, @myCols, sqlite3_dbHandle)
            
                    Debug dbdata(row,2)
          Box(x2+10,y2+y1+1,30,wert_02.f*-1/faktor, RGB(0,0,255))
       next
Habe immerhin schon eine Möglichkeit gefunden, die nicht funktioniert, kann mir jemand 'n Tipp geben, wie ich das ändern muss?
Liebe Grüße,
Simon

Re: SQLite3: zwei Datenbanken auslesen

Verfasst: 12.09.2005 14:05
von Kiffi
> wie stelle ich das an, wenn ich zwei DB gleichzeitig auslesen will?

für zwei Datenbanken musst Du natürlich auch zwei Handles haben. Mit denen Du dann auf die entsprechenden Daten zugreifen kannst.

Code: Alles auswählen

myDataBaseHandle1 = SQLite3_OpenDatabase("meineDB1.db")
myDataBaseHandle2 = SQLite3_OpenDatabase("meineDB2.db")

[...]

SQLite3_GetTable("SELECT * FROM "+db_use+" ORDER BY kategorie", @myRows, @myCols, myDataBaseHandle1) 

[...]

SQLite3_GetTable("SELECT * FROM "+db_use+" ORDER BY kategorie", @myRows, @myCols, myDataBaseHandle2) 
Grüße ... Kiffi

Re: SQLite3: zwei Datenbanken auslesen

Verfasst: 12.09.2005 14:13
von sobi
Kiffi hat geschrieben:>
für zwei Datenbanken musst Du natürlich auch zwei Handles haben. Mit denen Du dann auf die entsprechenden Daten zugreifen kannst.

Code: Alles auswählen

myDataBaseHandle1 = SQLite3_OpenDatabase("meineDB1.db")
myDataBaseHandle2 = SQLite3_OpenDatabase("meineDB2.db")
Ja, das macht Sinn. Soetwas habe ich gesucht, nur hatte ich keine Ahnung wie ich das anstellen soll.
Ich nehme mal an, dass es kein Problem ist, wenn diese zwei Tabellen in einer Datei sind? Also so:

Code: Alles auswählen

myDataBaseHandle1 = SQLite3_OpenDatabase("meineDB1.db")
myDataBaseHandle2 = SQLite3_OpenDatabase("meineDB1.db")
Danke für deine Hilfe, Kiffi.

Liebe Grüße,
Simon

Re: SQLite3: zwei Datenbanken auslesen

Verfasst: 12.09.2005 15:09
von Kiffi
> Ich nehme mal an, dass es kein Problem ist, wenn diese zwei Tabellen in
> einer Datei sind?

Moment! Willst Du 2 Datenbanken auslesen oder 2 Tabellen?

Grüße ... Kiffi

Re: SQLite3: zwei Datenbanken auslesen

Verfasst: 12.09.2005 15:13
von sobi
Kiffi hat geschrieben:> Ich nehme mal an, dass es kein Problem ist, wenn diese zwei Tabellen in
> einer Datei sind?

Moment! Willst Du 2 Datenbanken auslesen oder 2 Tabellen?

Grüße ... Kiffi
Zwei Tabellen. (ist ein Unterschied, das ist mir inzwischen auch eingefallen! :-( *sorry* das ich das nicht gleich klar gesagt / geschrieben habe)
Allerdings, wenn ich die zwei mal öffne, wie du gesagt hast, dann geht das! :-) Funktionieren tut es, aber wie mache ich das richtig? :?

Re: SQLite3: zwei Datenbanken auslesen

Verfasst: 12.09.2005 15:51
von Kiffi
> Funktionieren tut es, aber wie mache ich das richtig? :?

das ist ein klassischer Fall für ein SQL-Join.
Hierbei verknüpfst Du zwei Felder zweier Tabellen.

Ungefähr so:

Code: Alles auswählen

sSQL.s = "SELECT * FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.farbekat = Tabelle2.farbekat"
Grüße ... Kiffi