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.