TDataViewsQuery.SelectAsCSV
| TDataViewsQuery = class (TObject) | Interface de TDataViewsQuery | Exemples de TDataViewsQuery |
Qubes 6.8 Extraction en CSV
Syntaxe
Prototype changé!!! class function SelectAsCSV(select: String; separator: String = ','; initialDVName: String = ''): String (Qubes 9.0)
class function SelectAsCSV(const select: String; separator: String = ','): String
const select: Requête SQL
separator: caractère de séparation des données
Remarques
Fonction pour extraire des données des vues maintenues au format CSV.
Le séparateur est la virgule (,).
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.
Il s'agit d'une classe fonction, elle s'utilise directement en faisant TDataViewsQuery.SelectAsCSV(....). Il ne faut pas instancier d'objet du type TDataViewsQuery.
Exemples
uses SysUtils, QubesDataViews, QubesDataViewsSources.Processus, 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 := TDataViewSourceProcessus.Create(cProcessLIMSRUD, ['DateLancement float=DateLancement', 'NomControle String=Variables.NomControle', 'numeroLot String=Paramètres.numeroLot']);
var dvLIMSProcessus := DeclareView('Processus', srcProcessus, ['ExecutionNo', 'Status', 'NomControle', 'numeroLot', 'DateLancement']);
// initialisation des vues
srcLots.Restart(dvLot);
srcProcessus.Restart(dvLIMSProcessus);
// requête jointure entre vues des lots et processus
var queryResult := TDataViewsQuery.SelectAsCSV('select p.NomControle, p.DateLancement, l.* from Processus p join Lots l on l.LOT_GPAO_ID=p.numeroLot'));
// 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 := TDataViewSourceProcessus.Create(cProcessLIMSRUD, ['DateLancement float=DateLancement', 'NomControle String=Variables.NomControle', 'numeroLot String=Paramètres.numeroLot']);
var dvLIMSProcessus := DeclareView('Processus', srcProcessus, ['ExecutionNo', 'Status', 'NomControle', 'numeroLot', 'DateLancement']);
// initialisation des vues
srcLots.Restart(dvLot);
srcProcessus.Restart(dvLIMSProcessus);
// requête jointure entre vues des lots et processus
var queryResult := TDataViewsQuery.SelectAsCSV('select p.NomControle, p.DateLancement, l.* from Processus p join Lots l on l.LOT_GPAO_ID=p.numeroLot'));