﻿#include "included_Base64_db.au3"
#include <SQLite.au3>

Global $sWorkDir = @ScriptDir & "\Data\", $aSQLContent, $iRows, $iColumns, $aNewData, $hQuery, $aQueryResults; $sWorkDir wegen SQLite3.dll.Siehe Hilfe zu _SQLite_Startup.

If Not FileExists($sWorkDir & "SQLite3_x86.dll") Then _sqlite3_x86dll(True, $sWorkDir)

_FileReadToArray(@ScriptDir & "\Webdaten.txt", $aNewData, 0, ";")
_ArrayDisplay($aNewData, "Deine Daten von der Website")


_SQliteStart()
_SQliteFillDB()
_SQliteSearchItem("Handy")



Func _SQliteStart()
	FileChangeDir($sWorkDir)

	_SQLite_Startup($sWorkDir & "SQLite3_x86.dll", False, 1)
	ConsoleWrite("Skriptzeile: " & @ScriptLineNumber & " " & "_SQLite_LibVersion=" & _SQLite_LibVersion() & @CRLF)
;~ 	_SQLite_Open($sWorkDir & "DB.db") ; erstellt eine Datenbank im $sWorkDir. Sinnvoll, wenn man die Datenbank behalten später weiter nutzen möchte.
	_SQLite_Open() ; erstellt eine Datenbank im Speicher

	_SQLite_Exec(-1, "CREATE TABLE IF NOT EXISTS ROHDATEN (Datum,Herstellernummer,EAN,Lieferantenname,EK,Hersteller,Produkt,Beschreibung1,URL);")

	$iRval = _SQLite_GetTable2d(-1, "SELECT * FROM ROHDATEN;", $aSQLContent, $iRows, $iColumns)
	If $iRval <> $SQLITE_OK Then ConsoleWrite("Skriptzeile: " & @ScriptLineNumber & " " & "SQLite Error: " & $iRval & " - " & _SQLite_ErrMsg() & @CRLF)
	_ArrayDisplay($aSQLContent, "Die neue Datenbank")
EndFunc   ;==>_SQliteStart


Func _SQliteFillDB()
	Local $sQuery = ""
	For $i = 1 To UBound($aNewData) - 1
		$sQuery &= "INSERT INTO ROHDATEN(Datum,Herstellernummer,EAN,Lieferantenname,EK,Hersteller,Produkt,Beschreibung1,URL) VALUES ("
		$sQuery &= StringFormat("'%s','%s','%s','%s','%s','%s','%s','%s','%s'", $aNewData[$i][0], $aNewData[$i][1], $aNewData[$i][2], $aNewData[$i][3], $aNewData[$i][4], $aNewData[$i][5], $aNewData[$i][6], $aNewData[$i][7], $aNewData[$i][8]) & ");"
	Next
	_SQLite_Exec(-1, $sQuery) ; Ergebnisse werden in die DB geschrieben.

	$iRval = _SQLite_GetTable2d(-1, "SELECT * FROM ROHDATEN;", $aSQLContent, $iRows, $iColumns)
	If $iRval <> $SQLITE_OK Then ConsoleWrite("Skriptzeile: " & @ScriptLineNumber & " " & "SQLite Error: " & $iRval & " - " & _SQLite_ErrMsg() & @CRLF)
	_ArrayDisplay($aSQLContent, "Die gefüllte Datenbank")
EndFunc   ;==>_SQliteFillDB


Func _SQliteSearchItem($sSeachItem)
;~ 	$iRval = _SQLite_GetTable2d(-1, "SELECT * FROM ROHDATEN WHERE Produkt = '" & $sSeachItem & "' ORDER BY EK;", $aQueryResults, $iRows, $iColumns)
	$iRval = _SQLite_GetTable2d(-1, "SELECT Herstellernummer,Hersteller,Produkt,Beschreibung1,EK FROM ROHDATEN WHERE Produkt = '" & $sSeachItem & "' ORDER BY EK;", $aQueryResults, $iRows, $iColumns)
	If $iRval <> $SQLITE_OK Then ConsoleWrite("Skriptzeile: " & @ScriptLineNumber & " " & "SQLite Error: " & $iRval & " - " & _SQLite_ErrMsg() & @CRLF)
	_ArrayDisplay($aQueryResults, 'Alle Artikel ' & $sSeachItem & ' aus Spalte "Produkt" sortiert nach "EK"')
EndFunc   ;==>_SQliteSearchItem

_SQLite_Exec(-1, "DROP TABLE ROHDATEN;") ; Tabelle wird gelöscht
_SQLite_Close()
_SQLite_Shutdown()
Exit
