TDataViewsQuery.SelectAsJSON

TDataViewsQuery = class (TObject)Interface de TDataViewsQueryExemples de TDataViewsQuery

Qubes 6.8 Description de SelectAsJSON

Syntaxe

class function SelectAsJSON(select: String; initialDVName: String = ''): String (Qubes 9.0)
class function SelectAsJSON(const select: String): String
const select: Requête SQL
initialDVName: nom de vue maintenue

Remarques

Fonction pour extraire des données des vues maintenues au format JSON.
select est la requête SQL que l'on souhaite exécuter.
La requête peut inclure des jointures entre plusieurs vues maintenues.
La requête doit être en lecture seulement. Les INSERT, UPDATE, DELETE, ... ne sont pas autorisés.
Le nom des tables dans la requête est le nom qui a été donnée aux vues maintenues lors de leurs créations.
On peut dans le cas où on fait la requête sur une vue maintenue dont on connait le nom le préciser dans le paramètre initialDVName pour un gain en performance.

Pour les vues issues de source qui retournent les données au format JSON, il faut utiliser la fonction SQLite JSON_EXTRACT

Il s'agit d'une classe fonction, elle s'utilise directement en faisant TDataViewsQuery.SelectAsJSON(....). Il ne faut pas instancier d'objet du type TDataViewsQuery

Exemples

uses SysUtils, QubesDataViews, QubesDataViewsSources.Processus2, QubesDataViewsSources.Lots, QubesDataViewsQuery;

// création vue des lots
var srcLots := TDataViewSourceLots.Create([]);
var dvLot := DeclareView('Lots', srcLots, ['LOT_GPAO_ID=GPAO_ID', 'ITEM_GPAOID']);

// creattion vue processus
var srcProcessus := TDataViewSourceProcessus2.Create('RUD_du_Processus', ['DateLancement float=DateLancement', 'NomControle String=Variables.NomControle', 'numeroLot String=Paramètres.numeroLot']);
var dvProcessus := DeclareView('Processus', srcProcessus, ['ExecutionNo', 'Status', 'NomControle', 'numeroLot', 'DateLancement']);

// initialisation des vues
srcLots.Restart(dvLot);
srcProcessus.Restart(dvProcessus);

// requête jointure entre vues des lots et processus
var queryResult := JSON.Parse(TDataViewsQuery.SelectAsJSON('select p.NomControle, p.DateLancement, l.* from Processus p join Lots l on l.LOT_GPAO_ID=p.numeroLot'));

Classification

QubesDataViewsQuery TDataViewsQuery