# Qlik

Eine mächtige kostenpflichtige Reporting Software die sowohl als Cloud Dienst wie auch im eigenen Rechenzentrum verwendet werden kann. Sie kann aus einer Vielzahl an Quellen, sowohl lokale als auch Cloud, Daten extrahieren, sie in mehreren sog. Schritten verbinden und in interaktiven Berichten darstellen.

# In Datenbank schreiben

Im Standard kann Qlik keine Daten in Datenbanken schreiben. Um diese Einschränkung zu deaktivieren, müssen sog. _Non Select Query_ aktiviert werden. Dazu muss die Konfigurationsdatei `QvOdbcConnectorPackage.exe.config` wie folgt geändert werden. In der Konfigurationsdatei nach _allow-nonselect-queries_ suchen und den Wert von _false_ auf _true_ ändern. Die Datei befindet sich bei _Qlik Sense Enterprise_ unter folgendem Pfad: `C:\Common Files\Qlik\Custom Data\QvOdbcConnectorPackage`

Danach können u. a. auch `WITH ... AS` und `EXEC` Statements ausgeführt werden sowie `INSERT` und `UPDATE`.
>Quelle: [Qlik Documentation: Executing non-SELECT statements](https://help.qlik.com/en-US/connectors/Subsystems/ODBC_connector_help/Content/Connectors_ODBC/How-to-load-without-SELECT.htm)

>Beispiel 1
>```sql
>SQL INSERT INTO [dbo].[Table_1]
>	([val])
>VALUES
>	(123)
>!EXECUTE_NON_SELECT_QUERY;
>```

>Beispiel 2
>```sql
>LIB CONNECT TO 'MongoDB_log01';
>LOAD * RESIDENT XML;
>LET v_noRows = NoOfRows('XML');
>FOR v_row = 0 TO $(v_noRows) - 1
>	LET v_ID= v_row;
>	LET v_Name= Peek('Name',v_row);
>	LET v_LogAktiv = Peek('LogAktiv',v_row);
>	SQL INSERT INTO Log.[tmp_test] ([_id],[Name],[LogAktiv])
>	VALUES ('$(v_ID)', '$(v_Name)','$(v_LogAktiv)')
>	!EXECUTE_NON_SELECT_QUERY;
>NEXT;
>```