Habe jetzt mal den SQLBrowser runtergeladen, den mir Thorsten1867 gezeigt hat. Dort wird meine DB-Struktur so angezeigt:
http://antonwuerfel.an.ohost.de/PureBoa ... sql_ip.jpg
Wenn ich aber meine SQL Abfrage ausführe kommt folgender Fehler:
http://antonwuerfel.an.ohost.de/PureBoa ... sql_ip.jpg
Die DB meldet, dass es keine Spalte Namens Netzwerkgeraet in der DB Shortcuts gibt. Wie man aber an obiger Struktur erkennen kann, gibt es die Spalte Netzwerkgeraet. Was mache ich jetzt schon wieder falsch???
@Kiffi: Hier ist nochmal der gesamte Code. Vom ElseIf bis zum abschließenden ElseIf. Da kann man gut sehen, wo die Variable Anzahl herkommt.
Code: Alles auswählen
ElseIf GadgetID = #Verk_OK
If verok = 1
ClearList(Verknuepfungszahlen())
DateiName$ = SaveFileRequester("","*.lnk","Verknüpfung|*.lnk",0)
If DateiName$ <> ""
If LCase(GetExtensionPart(DateiName$)) <> "lnk"
DateiName$ + ".lnk"
EndIf
SqlString$ = "SELECT ID FROM Shortcuts"
SQLiteGetTable(DBHandle,SqlString$,Table)
If Table
SQLiteNextCol(Table)
While SQLiteNextRow(Table)
Ergebnis$ = SQLiteValue(Table)
AddElement(Verknuepfungszahlen())
Verknuepfungszahlen() = Val(Ergebnis$)
Wend
ResetList(Verknuepfungszahlen())
ok = 0
Anzahl = -1
Repeat
Anzahl + 1
ok = 1
ForEach Verknuepfungszahlen()
If Anzahl = Verknuepfungszahlen()
ok = 0
Break
EndIf
Next
Until ok = 1
EndIf
Profil$ = GetGadgetText(#Verk_Profil)
Netzwerkg$ = GetGadgetText(#Verk_Netzwerkg)
Warnung = GetGadgetState(#Verk_SWarnung)
BestMld = GetGadgetState(#Verk_BestM)
SqlString$ = "SELECT ID FROM Shortcuts WHERE Profil = '"+Profil$+"' AND Netzwerkgeraet = '"+Netzwerkg$+"' AND Warnung = "+Str(Warnung)+" AND Bestaetigung = "+Str(BestMld)
Debug SqlString$
SQLiteGetTable(DBHandle,SqlString$,Table)
ok = 0
_id = -1
; SQLiteNextCol(Table)
While SQLiteNextRow(Table)
ok = 1
Ergebnis$ = SQLiteValue(Table)
ID = Val(Ergebnis$)
Break
Wend
If ok = 0
SqlString$ = "INSERT INTO Shortcuts VALUES("+Str(Anzahl)+",'"+Profil$+"','"+Netzwerkg$+"',"+Str(Warnung)+","+Str(BestMld)+")"
SQLiteExecute(DBHandle,SqlString$,0)
_id = Anzahl
Else
_id = ID
EndIf
SqlString$ = "INSERT INTO SavedShortcuts VALUES('"+DateiName$+"',"+Str(_id)+")"
SQLiteExecute(DBHandle,SqlString$,0)
Program$ = ProgramFilename()
CreateShortcut(Program$,DateiName$,GetPathPart(Program$),Str(_id),#SW_SHOWNORMAL,"",#Null,Program$,1)
MessageRequester("Info","Die Verknüpfung wurde erfolgreich erstellt",#MB_ICONINFORMATION)
EndIf
verok = 0
HideWindow(#Verknuepfung,1)
EndIf
Und da ich die Erstellung meiner Datenbank heute Nacht nochmals aktualisiert habe, kommt hier nochmal der Code zum Erstellen:
Code: Alles auswählen
SQLiteExecute(DBHandle,"CREATE TABLE Profile(Name,IP,Subnetmask,DefaultGateway,DNS1,DNS2,dhcp,autodns)",0)
SQLiteExecute(DBHandle,"CREATE TABLE Shortcuts(ID,Profil,Netzwergeraet,Warnung,Bestaetigung)",0)
SQLiteExecute(DBHandle,"CREATE TABLE SavedShortcuts(Pfad,ID)",0)
SQLiteExecute(DBHandle,"CREATE TABLE Settings(LastDevice,LastProfile)",0)
Und nochmal @Kiffi: Wenn ich dann einen Autowert reinmache, wie muss ich dann die ID behandeln? Muss ich extra die ID im SqlString$ angeben, oder wird das automatisch gemacht? Und wie kann ich dann die ID auslesen, wenn ich sie brauche?