SQL query: dataset

Met deze actie kunt u een dataset ophalen via een SQL-query op een database, gebruik makend van een ODBC- of OLEDB-connectie.


De resulterende dataset zal in een geheugenveld worden gezet, waarna deze in volgende acties van de taak gebruikt kan worden.

Beschrijving parameters        

Omschrijving (optioneel)

Uitleg voor deze parameter vind u hier.

Type connectie

Hier geeft u aan welk type database-connectie u wilt gebruiken voor het uitvoeren van de SQL-query. U heeft de keuze uit ODBC of OLEDB.

Connectiestring (verplicht)

Hier geeft u de database connectiestring op voor ODBC of OLEDB (afhankelijk van wat u bij de parameter Type connectie heeft gekozen). Deze connectiestring kunt u helemaal zelf invoeren of laten samenstellen via het venster Wijzigen/aanmaken connectiestring ODBC of Wijzigen/aanmaken connectiestring OLEDB, via de knop

Query (verplicht)

De SQL-query welke u wilt laten uitvoeren om de gewenste gegevens uit de database op te halen.


Tip: gebruik nooit SELECT *


Het is aan te raden om, zo mogelijk, nooit alle mogelijke kolommen op te vragen middels een zogenaamde "SELECT *" query. Bij de meeste databases zal dit namelijk een negatieve invloed hebben op de performance. Het is beter om altijd de gewenste kolommen te specificeren.


Dus bij voorkeur niet

SELECT        

   *

FROM

   Invoice


Maar in plaats daarvan (stel u heeft alleen deze 3 kolommen nodig):


SELECT

   InvoiceId,

   InvoiceDate,

   Total

FROM

   Invoice


Tip: gebruik kolom aliassen


Zorg ervoor dat elke kolom in de dataset een (voor u) duidelijke naam krijgt d.m.v. de opgave van een kolomalias. In de meeste gevallen zal dat al automatisch het geval zijn, maar soms niet.


Voorbeeld van een query welke duidelijke kolomnamen als resultaat geeft:


SELECT

   InvoiceId,

   InvoiceDate,

   Total

FROM

   Invoice


De kolomnamen zijn hier: InvoiceId, InvoiceDate en Total.


Voorbeeld van een query welke een of meer onduidelijke kolomnamen als resultaat geeft:


SELECT

   InvoiceId,

   InvoiceDate,

   Total * 1.21

FROM

   Invoice


De eerste twee kolomnamen zijn duidelijk: InvoiceId en InvoiceDate. De derde kolomnaam is hier echter: "21" (of "Total * 1.21"). Dergelijke onduidelijke kolomnamen komen vaak voor indien u in de SELECT een bewerking gebruikt, zoals in dit voorbeeld "Total * 1.21". In dat geval kunt u beter een kolomalias gebruiken, zoals in onderstaand voorbeeld:


SELECT

   InvoiceId,

   InvoiceDate,

   Total * 1.21 AS TotalInclVat

FROM

   Invoice


NB: Kolomnamen moeten bij voorkeur geen spaties bevatten.

Query time out

Hiermee bepaalt u hoeveel seconden er gewacht mag worden op antwoord van de database. Indien u een zware query laat uitvoeren, kan het voorkomen dat de database lange tijd nodig heeft om het resultaat op te halen. Het kan ook zijn dat er enige tijd nodig is, omdat op dat moment bijvoorbeeld de databaseserver druk bezig is met het afhandelen van verzoeken van andere gebruikers.


Indien het antwoord van de database langer op zich laat wachten dan het door u opgegeven aantal seconden, zal er een time-out foutmelding worden gegenereerd. Indien u niets opgeeft, zal er standaard 60 seconden worden gewacht.

Plaats resultaat in dit geheugenveld

Dit is het geheugenveld van het type dataset, waarin u het resultaat van de query wilt laten zetten.

Test Query

Met deze knop kunt u de ingevoerde query testen. Nadat de query (correct) is uitgevoerd, zal het resultaat ervan worden getoond in het venster Test SQL query.



NB: Om performance redenen worden alleen de eerste 150 records getoond. In dit voorbeeld ziet u dat dit ook zo wordt aangegeven (Alleen de eerste 150 regels worden getoond).


NB: Indien u in de query BPM Server velden heeft opgenomen, zal eerst het venster Invoer veld waarden worden getoond waarin u de, voor deze test query te gebruiken, testwaarden kunt invoeren.

Actie bij fout

Uitleg voor deze parameter vind u hier.