Problème extraire une ligne d'une table

bubix Messages postés 9 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 20 novembre 2005 - 18 nov. 2005 à 08:15
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 - 21 nov. 2005 à 16:23
Bonjour,


Comment on peut faire pour extraire les lignes d'une table.


Ce que j'aimerais c'est d'extraire en premier la première ligne puis la suivante jusqu'à la dernière ligne y compris de la table.


Je sais qu'on peut le faire avec un cursor et la commande fetch next mais existe-il une autre manière de faire???

Merci

9 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
18 nov. 2005 à 13:11
Salut

Un select * from matable suffit.

Je ne comprends pas trop la question ou ton probleme.
0
bubix Messages postés 9 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 20 novembre 2005
19 nov. 2005 à 11:11
Ce que je veux, c'est extraire une ligne. Travailler avec les champs de cette ligne. Puis extraire la ligne suivante puis travailler aussi avec les champs de cette ligne. Ainsi de suite, jusqu'à l'extraction de toutes lignes.

Select * from matable, me donne toutes lignes d'un coup.

Moi ce que j'aimerais c'est select ligneDesiree from matable.

Le problème c'est que je ne connais pas la valeur des champs de la ligne donc je ne peux pas le faire de cette manière:

select ligneDesiree from ma table where Condition

Le where je ne peux pas l'utiliser.

Ce que j'ai fais pour l'instant pour extraire une ligne d'une table,
c'est d'utiliser un cursor avec la commande fetch,
Mais EXISTE-T-IL UN AUTRE MOYEN??
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
19 nov. 2005 à 21:28
Salut,

Pourquoi le where tu ne peux pas l'utiliser

Sinon si tu veux travailler sur certaines lignes
,il faut utiliser des curseurs.
mais le select where
est plus rapide que les curseurs.

Explique plus ton probeleme
et une solution meilleur que les curseurs existe plutot.
0
bubix Messages postés 9 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 20 novembre 2005
20 nov. 2005 à 12:31
Merci d'avoir répondu.

Je ne peux pas utiliser le where car je ne connais pas les valeurs de chaque champ(colonne) de la ligne.

Ce que je dois faire, c'est extraire la valeur contenue dans une colonne de chaque ligne mais je ne connais pas cette valeur donc je ne peux pas utiliser le where.

J'espère que tu compdras avec ca..

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
20 nov. 2005 à 15:47
Salut,

Peux tu essayé de mettre un exemple.
Un exemple est plus parlant qu'une longue explication ;-)
0
bubix Messages postés 9 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 20 novembre 2005
20 nov. 2005 à 19:19
Voila l'exemple du trigger:

--création d'une table
create table tableTrigger(num int, nom char(30))



--Création du trigger
create trigger insertTableTrigger on tableTrigger
after insert
as
begin
declare @variable int


--Récupère une ligne de la table deleted
--Ceci me convient si seulement il y une ligne dans la table deleted
set @variable=(Select num from deleted )

--Utilise la valeur de la variable
...
end

Le select num from deleted joue s'il y a qu'une ligne. Mais lorsque plusieurs lignes on été insérées dans la table Tabletrigger, ca ne joue pas. Tu me diras, il faut créer une table locale mais ca ne change rien à mon problème.

Ce que je veux finallement, c'est extraire une à une les lignes de la table deleted de puis la 1ere à la dernière sans utiliser de cursors et de fetch next.
Ensuite à chaque extraction de ligne je dois sortir la valeur de num et l'affecter à ma variable puis l'utiliser dans mon trigger.

Je ne sais pas si c'est possible d'eviter les cursors et fetch next quand on veut extraire les lignes d'une table?????
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
20 nov. 2005 à 21:10
Ok

Je comprend mieux la je ne pense pas que c'est possible.

peut etre le select where in peut aussi d'aider.
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
21 nov. 2005 à 16:21
salut,

je ne pense pas non plus que tu puisse te passer du curseur.

sauf si tu trouve le moyen de traiter toutes les lignes en meme temps pour faire ce que tu veux. mais pour cela il faudrait que tu nous dise ce que tu veux faire avec tes données.
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
21 nov. 2005 à 16:23
.. cela dit je ne vois pas ce qui te gene dans l'utilisation des curseurs, ils sont la pour ca :)

si tu as des soucis pour les utiliser, explique nous ton probleme, on pourra peut etre plutot t'aider la dessus. ca me parait plus simple que d'essayer de chercher une solution "systeme D"pour les contourner
0
Rejoignez-nous