Entfernen von Einträgen aus SQL Array

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Entfernen von Einträgen aus SQL Array

Re: Entfernen von Einträgen aus SQL Array

Post by Nussbeisser » 15 Apr 2024, 14:30

Ich habe meinen Denkfehler gefunden.

Entfernen von Einträgen aus SQL Array

Post by Nussbeisser » 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.

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

Top