begin process at 2010 02 10 06:59:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

SQL Server, MSDE, SQL Express

 > 

Procédures Stockées

 > 

la colonne qui intervient dans mon update est une valeur récupéré de mon curseur et apparemment ça pose problème


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

la colonne qui intervient dans mon update est une valeur récupéré de mon curseur et apparemment ça pose problème

mardi 19 août 2008 à 15:52:11 | la colonne qui intervient dans mon update est une valeur récupéré de mon curseur et apparemment ça pose problème

yann591

Bonjour,

Voila je crée un procédure stockée qui me récupère plusieurs lignes
ensuite un curseur me fait allé de ligne en ligne
je fait un update sur chaque lecture
mais voila : la colonne(@champ) qui intervient dans mon update est une valeur récupéré de mon curseur et apparemment ça pose problème.

 CREATE PROCEDURE MAJ_UTILISATEUR
 
as
/*déclaration des variables de colonnes pour le curseur*/
DECLARE @l_employeeid varchar(50), @champ varchar(50), @modif varchar(50),@date_effet datetime

-- declaration du curseur
DECLARE MyCursor CURSOR
FOR
   SELECT l_employeeid,champs,modif,date_effet
   FROM utilisateur_temp

-- ouverture du curseur
OPEN MyCursor

-- lecture du premier enregistrement
FETCH MyCursor INTO @l_employeeid, @champ, @modif, @date_effet

-- boucle de traitement
WHILE @@fetch_Status = 0
BEGIN

UPDATE    utilisateur_dev
     SET         @champ= @modif     le probleme est ici avec la variable @champ qui n'est pas reconnu
     WHERE     employeeid = @l_employeeid

FETCH MyCursor INTO @l_employeeid, @champ, @modif,@date_effet
END

-- fermeture du curseur
CLOSE myCursor

-- libération de la mémoire
DEALLOCATE myCursor
GO


merci d'avance pour votre aide.

yann
mercredi 20 août 2008 à 08:46:05 | Re : la colonne qui intervient dans mon update est une valeur récupéré de mon curseur et apparemment ça pose problème

crn_c21

Il faut passer une commande SQL:

Declare @SQL varchar(100)


set @SQL='UPDATE    utilisateur_dev
                 SET         ' ' ' + @champ + ' ' '  =  ' ' ' + @modif  + ' ' '
                 WHERE     employeeid = ' ' ' + @l_employeeid + ''

exec (@SQL)
mercredi 20 août 2008 à 08:56:03 | Re : la colonne qui intervient dans mon update est une valeur récupéré de mon curseur et apparemment ça pose problème

crn_c21

Réponse acceptée !
set @SQL='UPDATE    utilisateur_dev
                 SET         '  + @champ +  '  =  ' ' ' + @modif  + ' ' '
                 WHERE     employeeid = ' ' ' + @l_employeeid + ' '

pardon pour la syntaxe!!
mercredi 20 août 2008 à 11:53:03 | Re : la colonne qui intervient dans mon update est une valeur récupéré de mon curseur et apparemment ça pose problème

yann591

Réponse acceptée !

Un grand merci pour ton aide !!!

J'ai du retouché un peu mais tu m'a bien mis sur la bonne voie !!

declare @SQL varchar(100)

set @SQL='UPDATE    utilisateur SET   '   + @champ + '='+ '''' + @modif + '''' + ' WHERE     employeeid =' + '''' + @l_employeeid + ''''

ca marche, les quote c la galère lol

Encore merci.

yann

mercredi 20 août 2008 à 21:46:21 | Re : la colonne qui intervient dans mon update est une valeur récupéré de mon curseur et apparemment ça pose problème

nhervagault

Administrateur CodeS-SourceS
Salut

Il est possible de faire des requetes plus propre avec
une ecriture du style

exec sp_executesql N'update dbo.matable set id=@id where id=10',N'@id varchar(255)',@id='toto'


Le profiler SQL de permet d'avoir ce type  de requete avec des requetes parametrées
ce qui evite les injections SQL et le fait su controle de type


Cette discussion est classée dans : champ, curseur, modif, employeeid, mycursor


Répondre à ce message

Sujets en rapport avec ce message

Curseur et procédure stockée erreur [ par humnanamouch ] Bonjour J'ai un problème quand je veux modifier ma procédure stockée sous sql server. J'ai l'erreur "L'utilisateur n'a pas l'autorisation d'effectuer Suppression de doublon.... [ par Ry_Yo ] Bonjour à tous,Je travail sous sqlserver et après recherche sur votre site, je n'ai pas trouvé de méthode pour supprimer des doublon ou triplon, quadr difficulté avec ma requete [ par blackout ] Bonjour,Je rencontre une petite difficulté avec une requete sql.J'ai 2 champs Nom et Date.Le champ Date correspond à la date de création d'un NomJ'ess derniere modif' d'une table [ par zebiker ] Salut !Voila je vois que sur la page d'administration de mysql on peut voir à quelle date et heure a été modifiée pour la derniere fois une table....a fonction qui retourne un curseur [ par fatou69 ] salut tout le monde, je suis en train de devellopez une fonction sous oracle qui permet de retourner un curseur et précisament une ou plusieurs lignes convertir char en mois [ par lucki ] Bonjour à tous et bonne journée Voila mon problème :J'ai un champ "freqamois" qui définit en char la fréquence, en mois, d'une opération banquaire(com Selection de champ [ par citt ] Bonjour,Je voudrait faire une requete qui me permette de me retourner le nom des champs qui contiendrais une expression donner.Je sais faire la requet MYSQL conversion d'un champ Blob vers un champ longblob [ par globule ] Bonjour,Je suis en trains de convertir une base access vers MySQL (innoDB), utf8 <p class="Ms Faire un requête insert avec une condition [ par omgirl ] Bonjour à tous,Voilà je voudrais savoir comment faire une requête insert avec une condition.Je vais essayé de vous expliquer ça :  -j'ai une table equ Commande Select [ par mcligth ] Bonjour tout le monde, je desire tout d' abord effectuer une requête dans un champ d' une table de facon a ce que celà me crée un champ decoulement de


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales