German Frage zu SQLiteLight3 Beispiel

Joe73

Active Member
Licensed User
Hallo,

Nachdem ich mich nun etwas mit diesem Beispielprogramm beschäftigt habe wollte ich eine
zusätzliche Spalte in der Tabelle einfügen.
Habe daraufhin die Werte ColNumber auf 5 und ColNames(4), ColAliasNames(4) sowie ColDataTypes(4)
zugewiesen.

Nachdem ich das Programmöffnen will läuft alles Fehlerfrei bis das Programm auf das Smartphone übertragen wird.
Das Programm bricht dann ab und der Cursor bleibt in der Sub ExecuteHtml

Sub ExecuteHtml(SQL As SQL, Query As String, StringArgs() As String, Limit As Int, Clickable As Boolean) As String
Dim cur As Cursor
If StringArgs <> Null Then
cur = SQL.ExecQuery2(Query, StringArgs)
Else
cur = SQL.ExecQuery(Query) <----- hier !!!!
End If

stehen.

Hat das eventuell damit etwas zu tun, dass die Beispieltabelle welche ja geöffnet wird, nur
4 Spalten hat?

Vielleicht kann mir jemand einen Tipp geben.

Vielen Dank
mfg Jürgen aus Halle/Saale
 

klaus

Expert
Licensed User
Longtime User
Leider gibst Du viel zu wenig Angaben um eine konkrete Antwort geben zu können !

Welchen Fehler bekommst Du ?
Was für eine Datenbank willst Du laden
Hat deine Datenbank 5 Spalten ?
unw.
Poste Deinen Code als zip Datei dann können wir sehen was Du genau gemacht hast und wo das Problem liegt.
 
Last edited:

Joe73

Active Member
Licensed User
Hallo,
Wenn nötig werde ich den Code heute Nachmittag hochladen.
Muss gleich los...
Nur noch soviel:
Den Code habe ich vom Beispiel übernommen.
Nur die o.g. Variablen von 4 auf 5 (Spalten) geändert bzw. zusätzlich zugewiesen.
Ich versuche die im Beispiel vorgegebene Datenbank einzulesen. Macht ja das
Beispielprogramm beim Start.
Vielleicht liegt da der Fehler?
Kann ein Programm welches eine Tabelle mit 5 Spalten erwarten eine Tabelle mit
4 Spalten einlesen und läßt die fehlende Spalte frei?
Eine Fehlermeldung gibt es nicht bzw. habe noch keine gefunden.
Ich starte mit F5, das Programm wird auf dem Smartphone installiert und kurz danach bricht es ab.

mfg Jürgen
 

klaus

Expert
Licensed User
Longtime User
Kann ein Programm welches eine Tabelle mit 5 Spalten erwarten eine Tabelle mit
4 Spalten einlesen und läßt die fehlende Spalte frei?
So wie SQLiteLight3 geschrieben ist: NEIN.
Weil das Programm die 5te Spalte, die es nicht gibt, sucht
Du kannst aber das Programm ändern. In diesem Fall muss die Query geändert werden.
Eine Fehlermeldung gibt es nicht bzw. habe noch keine gefunden.
In welchem Modus kompilierst Du das Programm ?
Debug oder Release. Um Fehlermeldungen zu bekommen musst Du das Programm im Debug Modus komplieren.
 

Joe73

Active Member
Licensed User
Hallo,
Habe jetzt nochmals drauf geschaut.
Dachte eigentlich, der Debug-Mode war immer eingestellt.
Aber nun sehe ich doch einiges was vorher nicht da war....
Also auf dem Smartphone wurde das Programm installiert und gestartet.
Es bleibt dann hängen mit der Meldung: Program paused on line: 221
cur = SQL.ExecQuery(Query)

Ähnliches an Meldungen sind auch auf dem PC zu sehen.
Die Zeile 221 ist gelb unterlegt.

Im Fenster Debug steht:

ExecuteHtml (main) : 221
ShowTable (main) : 136
Activity Resume (main) : 99

Das sind dann sicher die betreffenden Stellen welche geändert werden müssen.

Werde dann mal weiter schauen....

Viele Güße von Jürgen
 

Joe73

Active Member
Licensed User
Hallo,

Habe es nun geschafft eine weitere Spalte hinzuzufügen.
Einen Fehler den ich beging war, die Beispiel-Datei nicht zu löschen.
Dadurch wurde auch keine Neue erzeugt.
Hatte die Datei aus dem Verzeichnis Files mit dem Namen persons.db zwar geändert
aber die Datei auf dem Smartphone nicht gelöscht.
Habe dann im Anwendungsmanager die Daten gelöscht und das hat dann geholfen.
Die Beispieldatei habe ich mit dem Programm SQLite Expert Personal 4.0 geändert.
Das gefiel mir recht gut... (Gibt es was Besseres?)

So, nun werde ich weiter Experimentieren....

Gruß Jürgen
 

klaus

Expert
Licensed User
Longtime User
Die Beispieldatei habe ich mit dem Programm SQLite Expert Personal 4.0 geändert.
Das gefiel mir recht gut... (Gibt es was Besseres?)
Wie immer, das ist Alles Geschmacksache, eine andere Möglichkeit wäre eine neue Datenbank im Code zu generieren.
Da müsstest Du einige Variablen anpassen und die CreateDataBase Routine beim ersten Durchlauf aufrufen.
 
Top