Procédure stockée dynamique ? [SQL Server 2005] - SQL/NoSQL - Programmation
Marsh Posté le 19-12-2006 à 12:30:36
C'est quoi ton problème exactement ?
SELECT * FROM cequetuveux
Pas besoin de connaître les colonnes
(bon, ok, c'est goret et j'ai tendance à découper en rondelles ceux qui font des * à tout bout de champ, mais là...)
Marsh Posté le 19-12-2006 à 12:32:40
Ben en fait j'en ai aussi besoin pour un UPDATE.
Donc tu peux toujours essayer de faire un
UPDATE Users
SET * = ...
Mais j'ai trouvé.
J'ai fait comme ceci:
CREATE PROC [dbo].[SelectUsersTest]
@ProcedureQuery VARCHAR(100)
AS
DECLARE @sql nvarchar(100)
SET @sql=@ProcedureQuery
EXEC dbo.sp_executesql @sql
Marsh Posté le 19-12-2006 à 12:39:02
ah ouais... c'est encore plus gore que ce que j'imaginais
sinon, tu peux décrire un peu plus ton problème ?
déjà, tu appelles ta base depuis quel langage ?
parcequ'à la base, tu as un paquet de moyen d'y arriver de façon plus propre que ça
Marsh Posté le 19-12-2006 à 12:41:46
Je travaille en C#.
Je dois mettre à jour les photos d'une table utilisateurs.
Dans cette table j'ai les colonnes UserId, LastName, FirstName, Email et Picture
Je dois donc mettre à jour le champ Picture mais sans savoir sur quoi je me base pour retrouver la ligne à mettre à jour.
Donc dans mon fichier config, l'utilisateur met par exemple LastName.FirstName.
Ca photo s'apellera donc [Chirac.Jacques].jpg et avec ca je dois faire mon update.
Et je sui sobligé d'utiliser une procédure stockée ...
Marsh Posté le 19-12-2006 à 12:41:49
arf, en C#.
donc, ton UPDATE, il porte sur quoi ? une table ?
pourquoi ne pas charger ta table dans un datatable ?
puis faire un fill shema.
un coup de CmdBuilder pour générer dynamiquement les requêtes d'insertion, supression, update que tu associes à ton datatable.
tu joues avec tes lignes : ajout, mise à jour, suppression dans ton datatable.
puis tu mets à jour au final avec un Update() sur un dataadapter lié à ton datatable ?
Marsh Posté le 19-12-2006 à 12:43:23
Ben en fait c'est pas si simple que ca car ce sont des images que je dois mettre à jour et donc j'affiche une liste d'images dans une listview et je dois pouvoir en cocher plusieurs et quand je clique sur update tout se fait automatiquement lol
Marsh Posté le 19-12-2006 à 12:53:28
En gros, j'ai une application qui permet de faire ça.
Mettons la requête :
|
code (syntaxe inexacte, sorry, je fais ça à l'arrache )
Code :
|
Marsh Posté le 19-12-2006 à 12:54:38
kramik a écrit : Ben en fait c'est pas si simple que ca car ce sont des images que je dois mettre à jour et donc j'affiche une liste d'images dans une listview et je dois pouvoir en cocher plusieurs et quand je clique sur update tout se fait automatiquement lol |
Justement, tu Bind ton listview avec ta datatable, c'est encore plus simple ! Tu pourras faire les Delete() / Add() / Mises à jours à la volée dans les évènements du ListView
Marsh Posté le 19-12-2006 à 16:18:12
j'essaye de faire ca pour un Update, mais je n'y arrive pas.
Voici ma stored procédure:
Code :
|
Et ma fonction Update:
Code :
|
Qui m'affiche les bons paramètres à passer:
C:\Documents and Settings\mgh\Desktop\PhotosManagement\test\[a.b].gif
UPDATE Users SET Picture = @ProcedurePicture WHERE LastName = a AND FirstName = b
Marsh Posté le 19-12-2006 à 16:45:59
L'erreur que je reçois c'est que je dois déclarer le @ProcedurePicture alors que c'est fait ...
Marsh Posté le 19-12-2006 à 11:56:14
Bonjour à tous,
j'ai un petit soucis que je n'arrive actuellement pas à résoudre.
Je dois faire un simple SELECT sur une table. Le problème, c'est que je ne connais pas à l'avance les colonnes de mon SELECT.
Je programme en C# et dans mon fichier config il y a une clé qui me donne le nom des champs de mon SELECT, par exemple LastName.FirstName ou LastName.Email, ...
J'utilise des procédures stockées, donc je ne sais pas comment je peux faire pour modifier celle-ci dynamiquement.
On m'a dit d'utiliser EXEC, mais je ne sais trop comment.
Pouvez-vous m'aider ?