Probleme bei Database
Verfasst: 07.04.2013 16:20
Hallo an alle
Ich hab mal ausgehend vom Purebasic Beispielcode für Datenbanken ein bisschen herumgespielt, bin aber auf ein Problem gestoßen. Ich habe folgenden Code:
Als Ausgabe bekommen ich nun:
Germany
France
also nur die jeweiligen Einträge der ersten Spalte.
Die gleiche Ausgabe bekomme ich bei der Anfrage "SELECT first FROM is_neighbour", und bei der Anfrage "SELECT second FROM is_neighbour" bekomme ich die Ausgabe
France
Spain
Wie bekomme ich das jetzt hin, dass ich alle Spalteneinträge ausgegeben bekomme, bzw. woran liegt es, dass ich bei der Anfrage "SELECT * FROM is_neighbour" nur die Einträge der "first" Spalte ausgegeben bekomme?
Ich hab mal ausgehend vom Purebasic Beispielcode für Datenbanken ein bisschen herumgespielt, bin aber auf ein Problem gestoßen. Ich habe folgenden Code:
Code: Alles auswählen
UseSQLiteDatabase()
Procedure CheckDatabaseUpdate(Database, Query$)
Result = DatabaseUpdate(Database, Query$)
If Result = 0
Debug DatabaseError()
EndIf
ProcedureReturn Result
EndProcedure
DatabaseFile$ = GetTemporaryDirectory()+"/Database.sqlite"
If CreateFile(0, DatabaseFile$)
CloseFile(0)
If OpenDatabase(0, DatabaseFile$, "", "")
CheckDatabaseUpdate(0, "CREATE TABLE country (name CHAR(50) PRIMARY KEY)")
CheckDatabaseUpdate(0, "CREATE TABLE is_neighbour (first CHAR(50), second CHAR(50), PRIMARY KEY (first, second), FOREIGN KEY (first) REFERENCES country(name), FOREIGN KEY (second) REFERENCES country(name))")
CheckDatabaseUpdate(0, "INSERT INTO country (name) VALUES ('Germany')")
CheckDatabaseUpdate(0, "INSERT INTO country (name) VALUES ('France')")
CheckDatabaseUpdate(0, "INSERT INTO country (name) VALUES ('Spain')")
CheckDatabaseUpdate(0, "INSERT INTO is_neighbour (first, second) VALUES ('Germany', 'France')")
CheckDatabaseUpdate(0, "INSERT INTO is_neighbour (first, second) VALUES ('France', 'Spain')")
If DatabaseQuery(0, "SELECT * FROM is_neighbour")
While NextDatabaseRow(0)
Debug GetDatabaseString(0, 0)
Wend
FinishDatabaseQuery(0)
EndIf
CloseDatabase(0)
Else
Debug "Can't open database !"
EndIf
Else
Debug "Can't create the database file !"
EndIf
Germany
France
also nur die jeweiligen Einträge der ersten Spalte.
Die gleiche Ausgabe bekomme ich bei der Anfrage "SELECT first FROM is_neighbour", und bei der Anfrage "SELECT second FROM is_neighbour" bekomme ich die Ausgabe
France
Spain
Wie bekomme ich das jetzt hin, dass ich alle Spalteneinträge ausgegeben bekomme, bzw. woran liegt es, dass ich bei der Anfrage "SELECT * FROM is_neighbour" nur die Einträge der "first" Spalte ausgegeben bekomme?