SQL-query's met parameters: Ondersteuning voor SQL-templates in DatabaseSpy

SQL-query's met parameters, ook wel SQL-templates genoemd, zijn een flexibele en efficiënte oplossing voor repetitieve rapportage van gegevens. Ze stellen gebruikers bijvoorbeeld in staat om complexe JOIN-statements met meerdere sets van waarden eenvoudig uit te voeren. DatabaseSpy, het multi-database query-, ontwerp- en bewerkingstool van Altova, biedt uitgebreide ondersteuning voor het ontwikkelen, uitvoeren en verfijnen van complexe SQL-query's met parameters, ook wel bekend als SQL-templates.

Het maken van prototypes van SQL-query's met parameters in DatabaseSpy kan zelfs de ontwikkeling van query's versnellen die nodig zijn voor andere projecten, zoals database-mappingen in MapForce of database-gegevensbronnen voor mobiele applicaties die op meerdere platforms werken (MobileTogether).

De DatabaseSpy SQL-editor en het resultatenvenster hieronder tonen een query om alle bestellingen van een specifiek product door een specifieke klant weer te geven:

Deze query kan aanzienlijk uitgebreider worden gemaakt door de productnaam 'sprockets' en het klantnummer 525 te vervangen door parameters, zoals te zien is in het SQL-editorvenster hieronder. In de query worden op regel 6 en 7 de parameters :pname en :custnum gebruikt in plaats van de productnaam en het klantnummer.

Wanneer de query met parameters wordt uitgevoerd via de gele "Uitvoeren"-knop linksboven in het venster van de SQL-editor, opent DatabaseSpy een dialoogvenster waarin de gebruiker waarden kan invoeren voor de uitvoering. Het resultaat dat rechtsonder wordt weergegeven, wordt dan gegenereerd.

SQL-templates voor DatabaseSpy kunnen worden opgeslagen in een speciale projectmap en dynamisch worden uitgevoerd. Het voorbeeld van directe uitvoering, zoals hierboven getoond, is geschikt als de gebruiker al de gewenste parameterwaarden kent. Vaak moet een gebruiker echter queries maken die testresultaten genereren om onbekende data te onderzoeken. Nadat een testquery is uitgevoerd, kan de gebruiker waarden selecteren uit de resultaat tabel en deze als parameters aan een SQL-template leveren die is opgeslagen in de map met projecttemplates.

Een nieuw venster voor de SQL-editor wordt geopend. Hierin wordt automatisch een query gegenereerd op basis van een sjabloon, waarbij de geselecteerde waarden worden toegewezen aan de parameters. De gegenereerde query wordt uitgevoerd en de resultaatweergave wordt weergegeven.

SQL-query's met parameters gebruiken in andere projecten

Nadat een SQL-query met parameters is aangemaakt in DatabaseSpy, kan deze eenvoudig worden toegepast in een ander project, zoals een mobiele app die is ontwikkeld met MobileTogether, het platform van Altova voor cross-platform snelle mobiele app-ontwikkeling (RMAD).

Bijvoorbeeld, onze voorbeeldquery kan slechts een klein onderdeel zijn van een complexe applicatie voor verkooprapportage. Een mobiele ontwikkelaar kan de query eenvoudig kopiëren en plakken in het venster "SQL-statementeditor" in de MobileTogether Designer en de parameterwaarden definiëren, zoals hier te zien is.

Met behulp van de drag-and-drop paginalay-outtools in The MobileTogether Designer kan de ontwikkelaar een invoerveld creëren waarmee de gebruiker een klantnummer kan invoeren, en een keuzelijst om de productnaam te selecteren. Dit wordt gebruikt om de parameters voor de SQL-query in te stellen wanneer de app wordt uitgevoerd.

Ons voorbeeld van een zoekopdracht, ingebouwd in de mobiele app, zou op een Android-apparaat er als volgt uitzien:

Het MapForce-tool voor data-mapping, -conversie en ETL bevat een SQL-editor dialoogvenster, vergelijkbaar met het DatabaseSpy-dialoogvenster dat hierboven wordt weergegeven. Parameters voor een MapForce gegevenskoppeling Kan tijdens runtime worden geleverd of intern worden gegenereerd binnen de mapping.

Alle functionaliteiten van DatabaseSpy die hier worden beschreven voor het maken van SQL-query's met parameters – en nog veel meer – worden ondersteund voor de databases die hieronder staan vermeld. DatabaseSpy stelt gebruikers zelfs in staat om tegelijkertijd verbindingen te openen met meerdere databases van verschillende types, en zelfs om de structuren en inhoud van deze databases met elkaar te vergelijken.

Ondersteunde databases:

  • Vuurvogel
  • IBM DB2 voor iSeries®
  • IBM DB2®
  • Informix®
  • Microsoft Access™
  • Microsoft® Azure SQL
  • Microsoft® SQL Server®
  • MySQL®
  • Oracle®
  • PostgreSQL
  • Progress OpenEdge
  • SQLite
  • Sybase®

(Klik hier voor de actuele, gedetailleerde lijst van ondersteunde versies voor elke database.) U kunt DatabaseSpy, MobileTogether of een ander Altova-product 30 dagen gratis uitproberen.