Changes between Version 1 and Version 2 of Documentatie/Beheerder/Schermen/SqlQueries


Ignore:
Timestamp:
Jul 26, 2013 11:00:07 AM (13 years ago)
Author:
adriaan
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Documentatie/Beheerder/Schermen/SqlQueries

    v1 v2  
    1 === SQL queries === 
     1= SQL Query = 
    22 
    3 In dit scherm kunt u één of meer SQL-queries definiëren en uitvoeren.  Queries die u aanmerkt 
    4 als '''publiek''' zijn voor alle gebruikers van OpenAC toegankelijk die toegang hebben tot 
    5 managementrapportages. 
     3[[Image(sqlq1.png, class=inline-right)]]Het ''SQL Query'' scherm maakt het mogelijk om willekeurige 
     4queries op de database uit te voeren. De queries kunnen ook 
     5worden opgeslagen voor hergebruik, of beschikbaar gesteld  
     6worden aan gebruikers (bijvoorbeeld voor een zelf-gemaakte rapportage 
     7of controlelijst). De queries worden opgeslagen in de  
     8database en worden door backups bewaard. De uitvoer van een 
     9query kan worden geexporteerd naar Excel zoals elke andere 
     10rapportage. 
     11 
     12Het is mogelijk om in een query bijzondere beheer-acties 
     13uit te voeren die onder andere omstandigheden niet mogelijk zijn; 
     14deze functionaliteit is voorbehouden aan de OpenAC beheerder. 
     15 
     16Het ''SQL Query'' scherm wordt opgeroepen met de knop in 
     17de beheers-box van het startscherm. 
     18 
     19== Lijstweergave == 
     20 
     21Het ''SQL Query'' scherm laat de lijstweergave maar weinig zien: 
     22een knop [[Image(wiki:WikiStart:callout-1.png)]] ''Nieuwe query invoeren'' 
     23om queries in te voeren en een lijst [[Image(wiki:WikiStart:callout-2.png)]] 
     24van reeds aangemaakte queries. Dubbelklik op een bestaande query 
     25om die query uit te voeren of te bewerken. De OpenAC beheerder kan 
     26ook queries verwijderen. 
     27 
     28[[Image(sqlq2.png)]] 
     29 
     30== Query Bewerken == 
     31 
     32In het scherm om queries te bewerken kan je een ''naam'' [[Image(wiki:WikiStart:callout-1.png)]] invoeren 
     33voor de query -- deze naam is zichtbaar voor gebruikers als ''publiek'' 
     34[[Image(wiki:WikiStart:callout-2.png)]] ook is aangevinkt. 
     35Queries waarvoor ''publiek'' aanstaat, zijn voor '''alle''' gebruikers 
     36te gebruiken vanuit het hoofdscherm onder de knop ''Query''[[Image(sqlq4.png, class=inline-right)]]. 
     37 
     38[[Image(sqlq3.png)]] 
     39 
     40De query zelf is in te vullen in het grote tekstvak [[Image(wiki:WikiStart:callout-3.png)]]. 
     41Hier moet een geldige query staan in het SQL dialect van de database server die door 
     42OpenAC gebruikt wordt (dit is met name van belang bij queries die data-bewerkingen uitvoeren 
     43in de query zelf). 
     44De query mag over meerdere regels verspreid worden. 
     45Er hoeft geen puntkomma (`;`) aan  het eind te staan. 
     46In enkele gevallen (`DELETE` en `UPDATE` queries) is het mogelijk om meerdere 
     47SQL statements in te voeren, gescheiden door puntkommas, maar dit wordt zelden gebruikt. 
     48 
     49Het is mogelijk om ''query parameters'' te gebruiken; dit zijn waardes 
     50die OpenAC bij het uitvoeren van de query aan de gebruiker vraagt 
     51and dan in de SQL statement ingevuld worden. Query parameters  
     52worden aangegeven met een ''parameter naam'' tussen dubbele accolades 
     53(`{{` en `}}`). Dezelfde parameter naam mag meerdere malen gebruikt 
     54worden in de query, dan wordt die maar een keer gevraagd, en het is mogelijk om meerdere  
     55query parameters te gebruiken. 
     56 
     57Onder het tekstvak voor de query is een veld ''maximum aantal'' waarmee 
     58de uitvoer van de query wordt beperkt. OpenAC gebruikt dan de eerste 
     59zoveel records die uit de query komen om de rapportagesheet op te stellen. 
     60'''Let op''' dat hiermee niet de query zelf beperkt wordt; gebruik daarvoor 
     61in de query (afhankelijk van het dialect) `LIMIT` of `TOP`. Als je dat niet doet, 
     62wordt een query als `SELECT * FROM patient_data` erg langzaam, zelfs als je maar 
     6310 records in de sheet opneemt. 
     64 
     65Een query kan vanuit dit bewerkingsscherm worden opgeslagen voor hergebruik, 
     66of ook direct worden uitgevoerd door op de knop ''uitvoeren'' te klikken. 
     67Hiermee kan een query ook worden getest voordat die wordt opgeslagen. 
     68 
     69== Query Voorbeeld == 
     70 
     71Deze hele eenvoudige query vertelt hoeveel patienten er in de 
     72database staan: 
     73 
     74{{{ 
     75SELECT COUNT(1) FROM patient_data 
     76}}} 
     77 
     78Deze query vertelt hoeveel patienten er zijn met de geboortedatum 
     797 februari 1976 (in de database staan datums in ''YYYY-MM-DD'' opgeschreven): 
     80 
     81{{{ 
     82SELECT COUNT(1) FROM patient_data 
     83WHERE patient_geboortedatum = '1976-02-07' 
     84}}} 
     85 
     86Het is natuurlijk onhandig om deze query om de haverklap aan te passen 
     87om de datum te veranderen (bijvoorbeeld om patienten te vinden 
     88van 29 december 1971), dus we kunnen de query aanpassen zodat 
     89OpenAC er om vraagt voordat de query wordt uitgevoerd: 
     90 
     91{{{ 
     92SELECT COUNT(1) FROM patient_data 
     93WHERE patient_geboortedatum = '{{geboortedatum}}' 
     94}}} 
     95 
     96Merk op dat de parameter naam '''binnen''' de SQL-aanhalingstekens staat: 
     97anders zou je als onderdeel van de geboortedatum die ook moeten invoeren. 
     98OpenAC vervangt alleen de parameter naam met datgene door de gebruiker 
     99wordt ingevoerd. 
     100 
     101== Publieke Queries == 
     102 
     103[[Image(sqlq4.png, class=inline-right)]]Queries die ''publiek'' zijn worden aan '''alle''' gebruikers beschikbaar 
     104gesteld. Deze queries zijn te vinden onder de knop ''Query'' in het hoofdscherm. 
     105Als op deze knop gedrukt wordt, kan de gebruiker een keus maken 
     106uit alle beschikbare queries: 
     107 
     108[[Image(sqlq5.ong)]] 
     109 
     110Als de query is uitgekozen en de gebruiker op OK klikt, 
     111dan worden de parameters van de query (als die er zijn) 
     112gevraagd. In dit voorbeeld is het een query met twee 
     113parameters, ''geboortedatum'' en ''achternaam''. Als die zijn  
     114ingevuld wordt de query uitgevoerd en de resultaten getoond. 
     115 
     116[[Image(sqlq6.png)]]