Entfernen von Einträgen aus SQL Array
Posted: 12 Apr 2024, 16:46
Hallo Just me,
Entschuldige, dass ich erneut um deine Hilfe bitte. Ich verwende deine Class_SQLiteDB.ahk für AHK v2.
Zu Beginn hole ich mir Inhalte aus der Datenbank durch eine SQL-Anfrage.
Die Daten werden in einer Listview geladen. Wenn ich einen Eintrag in der Listview doppelt anklicke, soll der entsprechende Eintrag aus der Listview, der Datenbank und dem Array entfernt werden.
Die Einträge werden erfolgreich aus der Listview und der Datenbank gelöscht, aber ich habe Schwierigkeiten, sie auch aus dem Array zu entfernen. Ich möchte nicht jedes Mal, wenn ich eine Zeile lösche, eine neue Anfrage an die Datenbenk senden. Ich möchte den Wert auch direkt aus dem Array entfernen, aber ich schaffe es leider nicht.
Hier ist die entsprechende Funktion:
vielen Dank
Entschuldige, dass ich erneut um deine Hilfe bitte. Ich verwende deine Class_SQLiteDB.ahk für AHK v2.
Zu Beginn hole ich mir Inhalte aus der Datenbank durch eine SQL-Anfrage.
Code: Select all
SQL := "SELECT cusId, cusName FROM allCus;"
If !DB.Exec(SQL)
MsgBox("Msg:`t" . DB.ErrorMsg . "`nCode:`t" . DB.ErrorCode, "SQLite Error", 16)
If !DB.GetTable(SQL, &Result)
MsgBox("Msg:`t" . DB.ErrorMsg . "`nCode:`t" . DB.ErrorCode, "SQLite Error", 16)
Die Daten werden in einer Listview geladen. Wenn ich einen Eintrag in der Listview doppelt anklicke, soll der entsprechende Eintrag aus der Listview, der Datenbank und dem Array entfernt werden.
Die Einträge werden erfolgreich aus der Listview und der Datenbank gelöscht, aber ich habe Schwierigkeiten, sie auch aus dem Array zu entfernen. Ich möchte nicht jedes Mal, wenn ich eine Zeile lösche, eine neue Anfrage an die Datenbenk senden. Ich möchte den Wert auch direkt aus dem Array entfernen, aber ich schaffe es leider nicht.
Hier ist die entsprechende Funktion:
Code: Select all
Cus_Del(LV, RowNum)
{
MouseGetPos(,,, &mouseOverClassNN)
cusIdCont := LV.GetText(RowNum, 1)
cusNameCont := LV.GetText(RowNum, 2)
If (cusId = "") || (RowNum = 0) || InStr(mouseOverClassNN, 'SysHeader')
Return
SQLDelete := "DELETE FROM allCus WHERE cusId = " cusIdCont ";"
If !DB.Exec(SQLDelete)
MsgBox("Msg:`t" . DB.ErrorMsg . "`nCode:`t" . DB.ErrorCode, "SQLite Error", 16)
LV.Delete(RowNum)
/*
;??
;das klappt nicht.
Loop Result.Rows.Length
{
If (Result.Rows[A_index][1] = cusIdCont)
Result.Rows.Delete(A_Index)
Result.Rows.RemoveAt(A_Index)
}
*/
}
vielen Dank