Bonjour,
j'ai une table STREAM_PROCESS avec les champs suivants :
ID
ID_SRC
Name
Cette table a pour but de stocker tous les systemes de traitement d'un flux. Chaque systeme traite un flux source identifié par ID_SRC et produit un autre flux (traité) identifié par ID.
La table pointe donc sur elle même par ID_SRC.
1er systeme : ID=1, ID_SRC=1 : production d'un flux 1
2eme systeme : ID=2, ID_SRC=1 : traitement du flux 1 et production d'un flux 2
3eme systeme : ID=3, ID_SRC=2 : traitement du flux 2 et production d'un flux 3
Voila donc ma question :
J'aimerai a partir de ID=3 savoir quelle est ma source originelle. J'aimerai le savoir en faisant une requete SQL sur la table STREAM_PROCESS.
En programmation c facile, il suffit d'une fonction récursive :
FindOrigin(int idBegin, out idOrigin)
{
record = PlacementSur(idBegin)
si record.id != record.id_src alors
Find(record.id_src, idOrigin)
sinon
idOrigin = record.id;
fin
}
1 - Il y a t-il un moyen de faire traiter tout ca par le serveur directement avec une seule requete SQL ?
2 - Et si je programme sur le serveur une procedure stockee comme la fonction FindOrigin(), est-ce que cela sera beaucoup plus performant que si je la fais a l'exterieur ?
merci
Mike
Partager