In SQLite eine Tabelle mit vielen Spalten erstellen

  1. last week

    Hallo,

    ich programmiere noch nicht lange in Xojo, doch ich bin mit meinem Programm schon sehr weit gekommen. Aber nun habe ich doch eine Frage. Und zwar bin ich gerade dabei eine SQLite Datenbank zu erstellen. Dazu habe ich mir erst mal ein kleines Testprogramm geschrieben. Das funktioniert so auch ganz zufriedenstellend. Meine Frage betrifft folgende Zeile:

    db.SQLExecute("create table daten( da_Programm_Normal String, da_Programmierung_Benutzer String, da_Visu_Ja String, da_Visu_Nein String, da_tf_Benutzer_Gebäudestruktur String, da_tf_Benutzer_Gruppenadressen String, da_tf_Benutzer_Gerät_einfügen String, da_tf_Benutzer_Parametrierung String, da_tf_Benutzer_Verknüpfung String, da_tf_Gerät_programmieren String, da_id integer primary key);")

    Eigentlich kommen da noch mehr Einträge hinzu. All diese hintereinander zu schreiben stelle ich mir sehr unübersichtlich vor. Gibt es da eine Möglichkeit die Einträge untereinander zu schreiben?

    In etwa so:

    db.SQLExecute("create table daten(
    da_Programm_Normal String,
    da_Programmierung_Benutzer String,
    da_Visu_Ja String, da_Visu_Nein String,
    da_tf_Benutzer_Gebäudestruktur String,
    da_tf_Benutzer_Gruppenadressen String,
    da_tf_Benutzer_Gerät_einfügen String,
    da_tf_Benutzer_Parametrierung String,
    da_tf_Benutzer_Verknüpfung String,
    da_tf_Gerät_programmieren String,
    da_id integer primary key);")

    Ich habe es schon so probiert, aber da wimmelt es dann nur so von Fehlermeldungen.

    Vielleicht kann mir da jemand einen Tipp geben.

    Vielen Dank und bleibt gesund.
    Mit freundlichen Grüßen

  2. brian f

    May 19 Testers, Xojo Pro Chilly California

    Try using line continuation :) Xojo Line Continuation

  3. Markus R

    May 19 Testers, Xojo Pro Europe / Germany / Lower Saxon...
    Edited last week

    Dafür gibt es Programme wie DB Browser für SQLite.
    Damit kann man eine Datenbank Datei erstellen aber auch Inhalte einsehen.

    Von deinem Programm in Xojo dann mit der Datenbank Klasse öffnen und benutzen.

    Diese DB Datei könntest Du auch als Vorlage nutzen
    wenn beim Benutzer nach der Installation noch keine existiert.

  4. 5 days ago

    Hallo,

    danke für eure Antworten. Das mit dem Line Continuation scheint nicht zu funktioniere.

    Ich möchte später die Datenbank per Programmcode anpassen, daher ist ein externes Programm nicht der optimale Weg.

    ich habe es nun so gelöst:

    db.SQLExecute("create table daten(da_id integer primary key);")
    db.SQLExecute("alter table daten add da_Programm_Normal String")
    db.SQLExecute("alter table daten add da_Programmierung_Benutzer String")
    db.SQLExecute("alter table daten add da_Visu_Ja String")
    db.SQLExecute("alter table daten add da_Visu_Nein String")
    db.SQLExecute("alter table daten add da_tf_Benutzer_Gebäudestruktur String")
    db.SQLExecute("alter table daten add da_tf_Benutzer_Gruppenadressen String")
    db.SQLExecute("alter table daten add da_tf_Benutzer_Gerät_einfügen String")
    db.SQLExecute("alter table daten add da_tf_Benutzer_Parametrierung String")
    db.SQLExecute("alter table daten add da_tf_Benutzer_Verknüpfung String")
    db.SQLExecute("alter table daten add da_tf_Gerät_programmieren String")

    Doch nun habe ich ein anderes Problem:

    ich habe einer Check Box ein Action-Event hinzugefügt. Beim anklicken wird nun der darin enthaltene Code ausgeführt. Wie kann ich das Action-Event für diese Check Box per Code ablösen?

    Nochmals danke für eure Antworten und Unterstützung. Und denkt daran, ich bin noch neu in Xojo.

  5. Christian M

    May 22 Xojo Pro Germany

    Hallo, ich hoffe ich habe die Frage richtig verstanden:
    Gehe im Menü auf „Insert“ und wähle „Method“ und füge deinem Fenster eine neu Methode* mit dem Namen „tuEtwas“ hinzu. Nun kannst du diese Methode mit Befehlen befüllen (z.b. indem du den Code aus dem Action-Event der Checkbox in die Methode übeträgst).
    Von jeder Stelle in deinem Fenster kannst du nun im Code durch den Befehl „tuEtwas“ diese Methode ausführen lassen.

    * in anderen Programmiersprachen heißen diese auch Funktion oder Prozedur

  6. Hallo,

    danke für die Antwort und den Hinweis mit den Methoden. Das werde ich ausprobieren.
    Schönes Wochenende

  7. 2 days ago

    dim sql as string = "create table daten("
    sql=sql+"feld_1 text,"
    sql=sql+"feld_2 text,"
    sql=sql+"feld_3 text,"
    ...
    sql=sql+"feld_n text"

    sql=sql+") values ("

    sql=sql+"'"+data_1+"',"
    sql=sql+"'"+data_2+"',"
    sql=sql+"'"+data_3+"',"
    ...
    sql=sql+"'"+data_n+"'"
    sql=sql+")"

    sqlExecute(sql)

or Sign Up to reply!