InsertInto (selector)
function InsertInto(const iTableName:string; const iInsertColumns:Array of string; const iInsertValues:Array of variant):Integer;
Cette méthode insère les objets de la sélection dans une table temporaire
| Paramètre | Usage |
|---|---|
| Result | Nombre d'objets affectés par l'opération |
| iTableName | Nom de table temporaire |
| iInsertColumns | Tableau de noms de colonne supplémentaires à insérer |
| iUpdatePropValues | Tableau de valeurs des colonnes supplémentaires |
Cette fonction retourne le nombre d'objets insérés par l'opération.
- iInsertPropnames,iInsertPropValues
- Ces deux tableaux doivent avoir le même nombre d'élément
| Tip : L'opération est effectué par un ordre SQL en mode auto commit, si une transaction longue est ouverte la session de la transaction longue est utilisée. |
Exemple :
Type
IvueSource = interface
....
end;
vueSource = viewOf(AClassSource,iVueSource)
....
end;
sqlClass = sqlClass(iVue)
end;
var sel:TSelector; aJob,aTempTable1:string; keepTables:boolean;
begin
Result := FALSE;
aJob := CreateGuid;
keepTables := False;
sel := vueSource.CreateSelector('','',True,[]);
sel.useCTE := True;
sel.NoFrameworks := True;
sel.NoOrderBy := True;
try
// Create a Temp table from a source selector
//
aTempTable1 := ClassManager.DefDatabase.AllocTempTable(aJob);
sel.InsertInto(aTempTable1,[],[]);
// Use the temp table as source of operation
//
sel := sqlClass.CreateSelector('','',True,[]);
sel.SourceTableName := aTempTable1;
....
....
finally
if not KeepTables then ClassManager.DefDatabase.DropTempTables(aJob);
end;
end;
Voir aussi :