De la même façon que l'on peut utiliser des paramètres au sein d'une requête pour faciliter sa réutilisation, LDSQL permet d'utiliser des procédures comportant des paramètres.
Ces paramètres peuvent être utilisés par exemple pour choisir le nom du fichier dans lequel des données doivent être exportées.
Lorsqu'une procdure comporte des paramètres, la valeur des paramètres doit être saisie à chaque exécution de la procédure.
La saisie des paramètres au sein d'une procédure doit respecter une syntaxe précise, propre à LDSQL, identique à celle utilisée pour les requêtes SQL.
Ces paramètres doivent être saisis entre accolades, sous la forme {Nom:Type:ValeurDéfaut}. Le détail de cette syntaxe est décrit au chapitre Requêtes avec paramètres.
Il y a quand même quelques différences pour les paramètres des procédures :
PROCEDURE MonScript( {Mon paramètre 1}, {Mon paramètre 2:DATE:20190101}, {MonParamètre3:NUM-8d})
A chaque exécution, la fenêtre de saisie des paramètres est présentée, comme dans le cas de l'exécution d'une requête avec paramètres :
Si on ré-exécute plusieurs fois la même procédure, on retrouve les valeurs de paramètres utilisées lors de l'exécution précédente.
En exécution automatique d'un script, les valeurs des paramètres doivent être portées directement dans le fichier .sqla, lors de l'appel de la procédure. Il suffit d'inscrire les valeurs du ou des paramètres entre parenthèses, suite au nom du fichier script à exécuter :
SCRIPT=Test script avec paramètres.swd("Test", DateSys(), 12345)
Notez l'usage de la valeur DateSys() ci-dessus. On peut en effet indiquer non seulement des constantes de type chaîne (à indiquer entre guillemets) ou numérique, mais aussi faire appel à des fonctions Windev ou des variables globales de LDSQL, l'appel de la procédure avec les paramètres demandé étant lui-même effectué par de la compilation dynamique.
Remarque : le passage de paramètres n'est pas possible lorsque le code source de la procédure est contenue directement dans le fichier .sqla, mais il n'a pas d'intérêt dans ce cas particulier.