TDataViewsQuery.SelectAsJSON
| TDataViewsQuery = class (TObject) | Interface de TDataViewsQuery | Exemples 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
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
// 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'));