_SQLite_Exec Update / Insert

  • Nabend!
    Ich habe ein problemchen mit dem Updatebefehl in SQLight...
    Und zwar habe ich mir eine Hilfedatei von der SQLight Seite geladen, komme aber damit iwie nicht ganz zurrecht weil da keine Anwendungsbeispiele bei sind :D

    Nunja, ich habe eine SQLight DB worin Stündlich etwa 1500 Einträge zu machen sind. Bis jetzt lese ich die DB als 2D-Array aus, und suche ob von den Daten bereits was vorhanden ist (diese Änderungen führe ich direkt im Array durch) und füge die neuen Daten zusammen. Anschkliessend lasse ich die die DB löschen und Inserte das gesammte Array...

    Spoiler anzeigen
    [autoit]

    dim $_SQLite_Exec="BEGIN TRANSACTION;"&@CRLF

    [/autoit] [autoit][/autoit] [autoit]

    for $j = 0 to UBound($aSTORE,1)-1
    dim $Data=""
    for $k = 0 to UBound($aSTORE,2)-1
    $Data &= "'"&$aSTORE[$j][$k] & "',"
    Next
    $Data = StringTrimRight($Data,1)
    $_SQLite_Exec &= "Insert into '"&$aStorage[$i]&"' values ("&$Data&");"&@CRLF
    ;$_SQLite_Exec &= "Update '"&$aStorage[$i]&"' values ("&$Data&");"&@CRLF
    Next
    $_SQLite_Exec &= @CRLF&"COMMIT;"
    $sql_loschen = "DELETE FROM '" & $aStorage[$i] & "'; "
    _SQLite_Exec($h_SQL_Storage, $sql_loschen)
    _SQLite_Exec($h_SQL_Storage, $_SQLite_Exec)

    [/autoit]


    So mache ich das momentan, ist aber voll Zeitintensiv! Anfangs wo die DB noch klein ist (bis 1MB) gehts noch, aber wenn die DB erstmal 3MB hat - dann denkste das das Programm abgestürzt ist, weil sich ziemlich lange nichts mehr tut...

    Also wie muß ich den _SQLite_Exec Befehl füttern das er im Prinzip das so macht:
    If not Exist (...) then
    Insert into '"&$aStorage[$i]&"' values ("&$Data&");
    else
    Update '"&$aStorage[$i]&"' values ("&$Data&");
    endif

    wobei ich sagen muß das ich Denke das ich den Update nicht richtig 'Formuliert' habe ?(

    Grüsse!

    Einmal editiert, zuletzt von Techmix (15. März 2012 um 23:24)