SQLite Fragen zur Datenbankprogrammierung

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

SQLite Fragen zur Datenbankprogrammierung

Beitrag von Mijikai »

Fragen zur SQLite Datenbankprogrammierung

Testen ob ein Table existiert!
Ist der Code so ok?

Code: Alles auswählen

Procedure.i TableExists(*Database,Table.s)
  Protected query.i
  query = DatabaseQuery(*Database,"SELECT 1 FROM " + Table + ";")
  FinishDatabaseQuery(*Database)
  ProcedureReturn query
EndProcedure
Wann und wie die Datenbank bereinigen?
Vor jedem beenden?

Code: Alles auswählen

Procedure.i Cleanup(*Database)
  ProcedureReturn DatabaseUpdate(*Database,"VACUUM")
EndProcedure
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: SQLite Fragen zur Datenbankprogrammierung

Beitrag von RSBasic »

Mijikai hat geschrieben:Testen ob ein Table existiert!

Code: Alles auswählen

SELECT 1 FROM " + Table + ";")
Damit prüfst du nur, ob in der Tabelle Datensätze vorhanden sind, aber du möchtest eigentlich prüfen, ob die Tabelle existiert oder?
Wenn ja, dann:

Code: Alles auswählen

IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = N'" + Table + "')
BEGIN
    PRINT 'Tabelle existiert'
END
Aber ich weiß nicht, ob es in SQLLite sowas möglich ist.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: SQLite Fragen zur Datenbankprogrammierung

Beitrag von mk-soft »

Habe mal hier gesucht... http://www.sqlitetutorial.net/sqlite-tu ... ow-tables/

Code: Alles auswählen


UseSQLiteDatabase()

Procedure CheckDatabaseUpdate(Database, Query$)
  Result = DatabaseUpdate(Database, Query$)
  If Result = 0
    Debug DatabaseError()
  EndIf
  
  ProcedureReturn Result
EndProcedure

Define DatabaseFile$ = ":memory:"
Define sql.s
If CreateFile(0, DatabaseFile$)
  CloseFile(0)
  
  If OpenDatabase(0, DatabaseFile$, "", "")
    
    CheckDatabaseUpdate(0, "CREATE TABLE IF NOT EXISTS food (name CHAR(50), weight INT)")
    
    CheckDatabaseUpdate(0, "INSERT INTO food (name, weight) VALUES ('apple', '10')")
    CheckDatabaseUpdate(0, "INSERT INTO food (name, weight) VALUES ('pear', '5')")
    CheckDatabaseUpdate(0, "INSERT INTO food (name, weight) VALUES ('banana', '20')")
    
    CheckDatabaseUpdate(0, "CREATE TABLE name (name CHAR(50), city CHAR(50))")
    CheckDatabaseUpdate(0, "CREATE TABLE title (name CHAR(50), city CHAR(50))")
    
    ;sql = "SELECT * FROM food WHERE weight > 7"
    ;sql = "Select name FROM sqlite_master WHERE type = 'table' And name Not LIKE 'sqlite_%';"
    sql = "Select count(name) FROM sqlite_master WHERE type = 'table' And name = 'food';"
    If DatabaseQuery(0, sql)
      
      While NextDatabaseRow(0)
        Debug GetDatabaseString(0, 0)
      Wend
      
      FinishDatabaseQuery(0)
    Else
      Debug DatabaseError()
    EndIf
    
    CloseDatabase(0)
  Else
    Debug "Can't open database !"
  EndIf
Else
  Debug "Can't create the database file !"
EndIf
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Antworten