Hallo.
Ich möchte eine exitierende SQLite Datenbank mit AutoIt bearbeiten. Grundsätzlich ist mir die SQL Syntax halbwegs klar, auch mit AutoIt kann ich ein wenig umgehen. Doch jetzt habe ich ein Problem, das ich ohne Hilfe nicht lösen kann. In der DB, die ich bearbeite werden GUID in der Form "37DD9D24-9A85-4E5B-BBBF-D8C283C1E144" verwendet. Die Entsprechende Zelle ist vom Typ "Text" was ich auch nicht ändern kann.
AutoIt liest das aber immer als mathematische Operation, sprich als Subtraktion von Hex- Zahlen, mit dem Ergebnis, das man mit der Ausgabe nichts mehr anfangen kann...
Statt 37DD9D24-9A85-4E5B-BBBF-D8C283C1E144 wird etwas wie 0xaa12d1..... ausgegeben, teilweise auch als negativer Wert, je nach dem wie groß die Werte im String sind.
Meine Queries funktionieren einwandfrei, solange ich irgendeine andere Zelle auslese. Nur bei den GUID geht das schief. Ich bin aber auf die GUID angewiesen, da sie die Verbindung zwischen diversen Tabellen herstellen...
Local $hQuery, $aRow, $MI_ID
$query = "SELECT M_MEDIAITEM.MEDIA_ITEM_ID FROM M_MEDIAITEM INNER JOIN M_SERIESITEM ON M_MEDIAITEM.MEDIA_ITEM_ID = M_SERIESITEM.MEDIA_ITEM_ID INNER JOIN NM_EPISODE ON NM_EPISODE.MEDIA_ITEM_ID = M_SERIESITEM.MEDIA_ITEM_ID INNER JOIN V_EPISODE ON NM_EPISODE.ID = V_EPISODE.ID WHERE ATTRIBUTE_VALUE = " & $Episode & " AND SEASON = " & $Season & " AND TVDBID = " & $TVDBID
_SQLite_Query(-1, $query, $hQuery)
While _SQLite_FetchData($hQuery, $aRow, False, False,) = $SQLITE_OK ; Read Out the next Row
;_ArrayDisplay($aRow)
$MI_ID = $aRow[0]
$query2 = 'UPDATE M_MEDIAITEM SET PLAYCOUNT=1 WHERE M_MEDIAITEM.MEDIA_ITEM_ID = "' & $MI_ID & '" ;'
_SQLite_Exec(-1, $query2) ; INSERT Data
Wend
Alles anzeigen
Das Problem entsteht bei "_SQLite_FetchData" was eben aus der GUID eine Hex- Zahl macht. Wenn ich statt "M_MEDIAITEM.MEDIA_ITEM_ID" z.B. M_MEDIAITEM.TITLE" verwende (in beiden Queries natürlich) , klappt alles wie gewünscht. M_MEDIAITEM.TITLE ist auch vom Typ "Text" beinhaltet aber "richtigen" Text, also auch Buchstaben jenseits des "F"... Auch die While - WEnd Schleife kann ich ganz weg lassen oder anders positionieren, das ändert nichts am grundsätzlichem Problem, das "_SQLite_FetchData" aus der GUID eine Hex- Zahl berechnet.
Weiß jemand Rat?
Danke schon mal und Guten Rutsch.